API console
Try it
Send a real request to the sandbox API and inspect the response.
Credentials
Log in to pick from your saved API keys instead of pasting them.
Query parameters
6 fieldsGDS provider
Transfer content selector. Currently only 0.
Reservation ID
Reservation identifier returned when the booking was created. On the unified details endpoint, send only one of reservationId, confirmationNumber or searchId.
Confirmation number
Confirmation number returned when the booking was created. On the unified details endpoint, send only one of reservationId, confirmationNumber or searchId.
Search ID
Search identifier used to create the booking. Required for reservations that include amenities. On the unified details endpoint, send only one of reservationId, confirmationNumber or searchId.
Currency
Currency of the returned amounts. Must match the offer or reservation when one already exists.
Language
Legacy language field. Prefer the LANG or Accept-Language header.
cURL request
curl -X GET 'https://api.sandbox.travelandz.com/v1/transfers/reservations/details?gdsprovider=0¤cy=USD' \
-H 'Authorization: Bearer YOUR_SECRET_KEY' \
-H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE'Add your credentials to send a request.
This request needs identifiers or tokens from an earlier call. Run the previous step first, then paste its values here.
Response
Click "Try it!" to send a request and see the response here.
Read a reservation using whichever identifier your application has.
Authentication and headers
| Header | Description |
|---|---|
Authorization | Bearer <secret_key>. Keep the secret on the server and never write it to client logs. |
X-Travelandz-Id | <public_key>:<profile_code>, where the persisted profile code has the form dp_<12 alphanumeric>. |
LANG | Preferred locale header. Accept-Language is also supported. |
Content-Type | application/json for requests with a JSON body. |
Request
This endpoint takes no body. The query requires gdsprovider and exactly one of reservationId, confirmationNumber or searchId. Sending none or more than one is rejected.
Reservations that include amenities must be read with searchId.
Request Query Params Schema
gdsprovider0.reservationIdreservationId, confirmationNumber or searchId.confirmationNumberreservationId, confirmationNumber or searchId.searchIdcurrencyUSD on a new search and is inherited afterwards.languageLANG or Accept-Language header.Success response
Returns the reservation envelope. Treat the reservation as usable only when completed is true and reservations is not empty.
Response Body Schema
statuscompletedreservations is not empty.timedOutreservationsreservations[]gdsproviderreservations[]reservationIdreservations[]confirmationNumberreservations[]statusreservations[]cancelledreservations[]totalAmountreservations[]currencyreservations[]pickupInstructionsreservations[]ticketUrlreservations[]selectedScheduleIndexreservations[]departureDatetimereservations[]arrivalDatetimereservations[]selectedAmenitiesreservations[]selectedAmenities[]keyselectedAmenities.reservations[]selectedAmenities[]namereservations[]selectedAmenities[]descriptionreservations[]selectedAmenities[]imageUrlreservations[]selectedAmenities[]pngImageUrlreservations[]selectedAmenities[]inputTypereservations[]selectedAmenities[]includedreservations[]selectedAmenities[]selectablereservations[]selectedAmenities[]selectederrorstatus is failed.metadatametadatauseSearchIdForDetailssearchId instead of reservationId.metadatadetailsIdentifiermetadatadetailsSearchIddetailsIdentifier is searchId.metadatamessageResponse examples
{
"status": "completed",
"completed": true,
"timedOut": false,
"reservations": [
{
"gdsprovider": 0,
"reservationId": "f390daff1fdf4cccb19b7abd825dc011",
"confirmationNumber": "TZ-6202191",
"status": "completed",
"cancelled": false,
"totalAmount": 181.97,
"currency": "USD",
"pickupInstructions": "The driver will call you when he arrives.",
"selectedScheduleIndex": 0,
"departureDatetime": "2026-08-16T14:40:00-04:00",
"arrivalDatetime": "2026-08-16T15:06:00-04:00",
"selectedAmenities": [
{
"key": "baby_seats",
"name": "Baby seats",
"description": "Your vehicle will have a child safety seat to keep children under age 4 safe.",
"imageUrl": "https://api.sandbox.travelandz.com/v1/assets/transfers/images/0/amenities/baby-seats.svg",
"pngImageUrl": "https://api.sandbox.travelandz.com/v1/assets/transfers/images/0/amenities/baby-seats.png",
"inputType": "numeric",
"included": false,
"selected": true,
"selectable": true
},
{
"key": "child_booster",
"name": "Child booster",
"description": "Your vehicle will have a child booster seat to keep children from age 4-8 safe.",
"imageUrl": "https://api.sandbox.travelandz.com/v1/assets/transfers/images/0/amenities/child-booster.svg",
"pngImageUrl": "https://api.sandbox.travelandz.com/v1/assets/transfers/images/0/amenities/child-booster.png",
"inputType": "numeric",
"included": false,
"selected": true,
"selectable": true
}
]
}
]
}Errors
| HTTP | Code | Meaning | Recommended action |
|---|---|---|---|
400 | The body, query or path is invalid, or contains an unknown property. | Fix the request using the message array. | |
400 | transfer_invalid_currency | The currency is outside the supported list. | Use a supported currency. |
400 | transfer_invalid_language | The requested language is not supported. | Use one of the documented language values. |
429 | transfer_provider_error | The service is temporarily rate limited. | Retry with exponential backoff. |
502 | transfer_provider_error | The request could not be completed. | Do not assume success. Keep your identifiers and read the reservation when the operation could have been created. |
400 | transfer_currency_mismatch | The currency does not match the offer, the quote or the reservation. | Reuse the currency returned by the previous step, or omit the field to inherit it. |
503 | The price could not be confirmed right now. | Retry later. Do not book and do not charge the traveller. | |
400 | transfer_booking_not_found | The request did not carry exactly one reservation identifier. | Send exactly one of reservationId, confirmationNumber or searchId. |
Usage notes
If you sent currency, it must match the currency the reservation was charged in. Omit it to receive the reservation in its own currency.
Keep the returned reservationId and confirmationNumber: cancellation, tracking and driver details are all keyed on them.
cURL example
curl --request GET \
--url "https://api.sandbox.travelandz.com/v1/transfers/reservations/details?gdsprovider=0&searchId=73a5670b476649a985f0535db1077c05¤cy=USD" \
-H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
-H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE"