List bookings#
/v1/bookingsBulk bookings feed, scoped to the agent group the API credential resolves to. Pass bookingIds to fetch a specific set (max 100), externalBookingIds to look bookings up by the reference YOU supplied when creating them (POST /v1/bookings's externalBookingId — this is how a 202 PROCESSING booking is discovered once it resolves), or page with cursor. Pass status to filter by booking status, checkInFrom/checkInTo to filter by the check-in date window, and updatedSince to receive only bookings changed since that instant — the incremental sync feed. A booking belonging to another agent group is never returned, whether requested by id, externalBookingId, or through the page — an externalBookingId is unique per agent group, not globally, so two groups may coincidentally use the same one without ever seeing each other's booking. Never fetch bookings one at a time.
Request
curl -X GET 'https://partner-api.elivaas.com/v1/bookings' \
-u "$ELIVAAS_API_KEY:" \
-H 'Content-Type: application/json'const res = await fetch('https://partner-api.elivaas.com/v1/bookings', {
method: 'GET',
headers: {
Authorization: 'Basic ' + Buffer.from(process.env.ELIVAAS_API_KEY + ':').toString('base64'),
'Content-Type': 'application/json',
},
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json();import os, requests
res = requests.get(
"https://partner-api.elivaas.com/v1/bookings",
auth=(os.environ["ELIVAAS_API_KEY"], ""),
timeout=30,
)
res.raise_for_status()
data = res.json(){
"data": [
{
"bookingId": "bkg_20Etl54TyDHROM",
"code": "EV-100234",
"status": "CONFIRMED",
"checkIn": "2026-08-10",
"checkOut": "2026-08-13",
"totalAmount": 29553,
"outstandingAmount": 0,
"paidAmount": 29553,
"createdAt": "2026-02-15T22:00:57.719717Z",
"updatedAt": "2026-05-21T11:09:03.024811Z"
}
],
"nextCursor": "string"
}Query parameters#
bookingIdsstring[]Booking ids to fetch. Max 100 per request.
externalBookingIdsstring[]Your own reference(s) from
POST /v1/bookings'sexternalBookingId, to fetch by. Max 100 per request.statusstring[]Booking statuses to filter by, e.g. CONFIRMED, CANCELLED.
checkInFromstring<date>Only return bookings checking in on or after this date (ISO 8601).
checkInTostring<date>Only return bookings checking in on or before this date (ISO 8601).
updatedSincestring<date-time>Return only bookings updated at or after this instant (ISO 8601).
cursorstringKeyset cursor: the
nextCursorfrom the previous page.sizeinteger<int32>Page size, max 100.
Responses#
| Status | Meaning |
|---|---|
200 | OK |
400 | Validation failure. The message names the offending parameter. Limits are rejected, never silently clamped: an over-length id list, a page size above 100 or a date window longer than 365 days all land here rather than coming back quietly truncated. |
401 | Missing, malformed, revoked or unknown API key, or an agent group whose distribution access is disabled. Pass the key as the HTTP Basic username with an empty password. |
429 | Rate limit exhausted for this credential. Wait Retry-After seconds before retrying; the budget is per credential, not per IP. |
See Errors for the error body shape and which statuses are worth retrying.