curl --request GET \
--url https://staging.api.prexsell.com/v2/bookings \
--header 'x-api-key: <api-key>'import requests
url = "https://staging.api.prexsell.com/v2/bookings"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://staging.api.prexsell.com/v2/bookings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.api.prexsell.com/v2/bookings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.api.prexsell.com/v2/bookings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.prexsell.com/v2/bookings")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.prexsell.com/v2/bookings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"bookings": [
{
"id": "bkg_1",
"createdAt": "2026-06-14T00:05:00.000Z",
"updatedAt": "2026-06-14T00:05:00.000Z",
"departureDate": "2026-06-15T03:30:00.000Z",
"onboardingDateTime": "2026-06-15T03:30:00.000Z",
"status": "Upcoming",
"bookingRequiredBy": "2026-06-14T00:25:00.000Z",
"paymentRequiredBy": "2026-06-14T00:25:00.000Z",
"tickets": [
{
"id": "ord_abc",
"bookingId": "bkg_1",
"note": null,
"status": "Processing",
"paymentStatus": "Unpaid",
"departureDate": "2026-06-15T00:00:00.000Z",
"source": "PrexSell",
"refundAmount": null,
"passenger": {
"id": "pass_1",
"firstName": "ะะฒะฐะฝ",
"lastName": "ะะตััะตะฝะบะพ",
"email": "ivan@example.com",
"phones": [
{
"id": "ph_1",
"phone": "+380501234567",
"messengers": [
"Viber"
]
}
]
},
"price": {
"id": "price-1",
"amount": 1450,
"currency": "UAH"
},
"discount": {
"id": "disc-1",
"name": "ะกััะดะตะฝัััะบะฐ ะทะฝะธะถะบะฐ",
"rule": "Percent",
"amount": 100,
"startDate": "2026-06-01T00:00:00.000Z",
"endDate": "2026-12-31T23:59:59.000Z"
},
"slices": [
{
"id": "sl_abc",
"duration": 480,
"departureDate": "2026-06-15T00:00:00.000Z",
"arrivalDate": "2026-06-15T08:00:00.000Z",
"seat": {
"id": "seat_1",
"label": "12A"
},
"bus": {
"id": "bus-1",
"seatsQty": 50,
"registrationNumber": "AA1234BB",
"brand": "Mercedes-Benz",
"model": "Tourismo",
"images": [
{
"id": "img-1",
"url": "https://example.com/bus.jpg",
"name": "Bus exterior"
}
]
},
"carriage": {
"id": "carriage-1",
"name": "ะะฒัะพะฟะฐัะบ โ1",
"phones": [
"+380501234567"
]
},
"route": {
"id": "route-1",
"name": "ะะธัะฒ โ ะะฐััะฐะฒะฐ",
"slug": "kyiv-warsaw",
"description": "ะฉะพะดะตะฝะฝะธะน ะฝััะฝะธะน ัะตะนั",
"company": {
"id": "company-1",
"name": "PrexSell Lines",
"slug": "prexsell-lines",
"ceo": "ะะปะตะฝะฐ ะะพะฒะฐะปั",
"partnerCompany": null,
"logoUrl": "https://example.com/logo.png",
"email": "ops@prexsell-lines.com",
"website": "https://prexsell-lines.com",
"rules": "ะะฐัะฐะถะธั ะผะฐั ะฟัะธะฑััะธ ะทะฐ 20 ั
ะฒะธะปะธะฝ ะดะพ ะฒัะดะฟัะฐะฒะปะตะฝะฝั.",
"socials": [
"https://facebook.com/prexsell.lines"
]
},
"permissions": [
{
"id": "perm-1",
"role": "Agent",
"accesses": [
"book",
"cancel"
],
"type": "Partner"
}
],
"services": [
{
"id": "svc-1",
"name": "Wi-Fi"
},
{
"id": "svc-2",
"name": "ะะพะฝะดะธััะพะฝะตั"
}
]
},
"stops": [
{
"id": "stop-1",
"departureTime": "06:30",
"arrivalTime": null,
"platform": "3",
"arrivalDate": null,
"place": "ะฆะตะฝััะฐะปัะฝะธะน ะฐะฒัะพะฒะพะบะทะฐะป",
"latitude": 50.4501,
"longitude": 30.5234,
"city": {
"id": "city-kyiv",
"name": "ะะธัะฒ",
"slug": "kyiv",
"country": "UA",
"timeZone": "Europe/Kyiv"
}
},
{
"id": "stop-2",
"departureTime": null,
"arrivalTime": "08:00",
"platform": "5",
"arrivalDate": "2026-06-15T08:00:00.000Z",
"place": "Dworzec Zachodni",
"latitude": 52.2297,
"longitude": 21.0122,
"city": {
"id": "city-warsaw",
"name": "ะะฐััะฐะฒะฐ",
"slug": "warsaw",
"country": "PL",
"timeZone": "Europe/Warsaw"
}
}
]
}
]
}
]
}
],
"total": 1
}
}{
"errors": [
{
"message": "AUTH_INVALID_CREDENTIALS",
"errorCode": "UNAUTHORIZED"
}
]
}List bookings
Returns a paginated list of the callerโs bookings, newest first. Authenticated via the api-key header; data scoped to the callerโs partner. Optionally filter to a single departure date, matched against the bookingโs UTC onboarding instant for that calendar day. Omit it to list all your bookings. Only the callerโs own tickets are included in each booking.
curl --request GET \
--url https://staging.api.prexsell.com/v2/bookings \
--header 'x-api-key: <api-key>'import requests
url = "https://staging.api.prexsell.com/v2/bookings"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://staging.api.prexsell.com/v2/bookings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.api.prexsell.com/v2/bookings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.api.prexsell.com/v2/bookings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.prexsell.com/v2/bookings")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.prexsell.com/v2/bookings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"bookings": [
{
"id": "bkg_1",
"createdAt": "2026-06-14T00:05:00.000Z",
"updatedAt": "2026-06-14T00:05:00.000Z",
"departureDate": "2026-06-15T03:30:00.000Z",
"onboardingDateTime": "2026-06-15T03:30:00.000Z",
"status": "Upcoming",
"bookingRequiredBy": "2026-06-14T00:25:00.000Z",
"paymentRequiredBy": "2026-06-14T00:25:00.000Z",
"tickets": [
{
"id": "ord_abc",
"bookingId": "bkg_1",
"note": null,
"status": "Processing",
"paymentStatus": "Unpaid",
"departureDate": "2026-06-15T00:00:00.000Z",
"source": "PrexSell",
"refundAmount": null,
"passenger": {
"id": "pass_1",
"firstName": "ะะฒะฐะฝ",
"lastName": "ะะตััะตะฝะบะพ",
"email": "ivan@example.com",
"phones": [
{
"id": "ph_1",
"phone": "+380501234567",
"messengers": [
"Viber"
]
}
]
},
"price": {
"id": "price-1",
"amount": 1450,
"currency": "UAH"
},
"discount": {
"id": "disc-1",
"name": "ะกััะดะตะฝัััะบะฐ ะทะฝะธะถะบะฐ",
"rule": "Percent",
"amount": 100,
"startDate": "2026-06-01T00:00:00.000Z",
"endDate": "2026-12-31T23:59:59.000Z"
},
"slices": [
{
"id": "sl_abc",
"duration": 480,
"departureDate": "2026-06-15T00:00:00.000Z",
"arrivalDate": "2026-06-15T08:00:00.000Z",
"seat": {
"id": "seat_1",
"label": "12A"
},
"bus": {
"id": "bus-1",
"seatsQty": 50,
"registrationNumber": "AA1234BB",
"brand": "Mercedes-Benz",
"model": "Tourismo",
"images": [
{
"id": "img-1",
"url": "https://example.com/bus.jpg",
"name": "Bus exterior"
}
]
},
"carriage": {
"id": "carriage-1",
"name": "ะะฒัะพะฟะฐัะบ โ1",
"phones": [
"+380501234567"
]
},
"route": {
"id": "route-1",
"name": "ะะธัะฒ โ ะะฐััะฐะฒะฐ",
"slug": "kyiv-warsaw",
"description": "ะฉะพะดะตะฝะฝะธะน ะฝััะฝะธะน ัะตะนั",
"company": {
"id": "company-1",
"name": "PrexSell Lines",
"slug": "prexsell-lines",
"ceo": "ะะปะตะฝะฐ ะะพะฒะฐะปั",
"partnerCompany": null,
"logoUrl": "https://example.com/logo.png",
"email": "ops@prexsell-lines.com",
"website": "https://prexsell-lines.com",
"rules": "ะะฐัะฐะถะธั ะผะฐั ะฟัะธะฑััะธ ะทะฐ 20 ั
ะฒะธะปะธะฝ ะดะพ ะฒัะดะฟัะฐะฒะปะตะฝะฝั.",
"socials": [
"https://facebook.com/prexsell.lines"
]
},
"permissions": [
{
"id": "perm-1",
"role": "Agent",
"accesses": [
"book",
"cancel"
],
"type": "Partner"
}
],
"services": [
{
"id": "svc-1",
"name": "Wi-Fi"
},
{
"id": "svc-2",
"name": "ะะพะฝะดะธััะพะฝะตั"
}
]
},
"stops": [
{
"id": "stop-1",
"departureTime": "06:30",
"arrivalTime": null,
"platform": "3",
"arrivalDate": null,
"place": "ะฆะตะฝััะฐะปัะฝะธะน ะฐะฒัะพะฒะพะบะทะฐะป",
"latitude": 50.4501,
"longitude": 30.5234,
"city": {
"id": "city-kyiv",
"name": "ะะธัะฒ",
"slug": "kyiv",
"country": "UA",
"timeZone": "Europe/Kyiv"
}
},
{
"id": "stop-2",
"departureTime": null,
"arrivalTime": "08:00",
"platform": "5",
"arrivalDate": "2026-06-15T08:00:00.000Z",
"place": "Dworzec Zachodni",
"latitude": 52.2297,
"longitude": 21.0122,
"city": {
"id": "city-warsaw",
"name": "ะะฐััะฐะฒะฐ",
"slug": "warsaw",
"country": "PL",
"timeZone": "Europe/Warsaw"
}
}
]
}
]
}
]
}
],
"total": 1
}
}{
"errors": [
{
"message": "AUTH_INVALID_CREDENTIALS",
"errorCode": "UNAUTHORIZED"
}
]
}Authorizations
Partner API key, sent in the x-api-key request header. Required for bookable offer search and all booking operations. To obtain a key, register as a PREXSELL partner in the backoffice (backoffice.prexsell.com, or staging.backoffice.prexsell.com for staging) and contact support if you need help.
Query Parameters
Filter to bookings whose UTC onboarding instant falls on this calendar day (YYYY-MM-DD). Omit to list all your bookings, newest first.
"2024-01-20"
Number of bookings to return (max 50).
1 <= x <= 5050
Number of bookings to skip.
x >= 00
Response
Paginated booking list.
Paginated booking list result.
Show child attributes
Show child attributes
