Skip to content

Developers

TravelCore API documentation

Written for the person who will actually integrate this, including the parts that will go wrong. The hotel surface is in design-partner preview; the rest is documented so you can design against it before it exists.

Quick start

From credentials to a confirmed booking in five calls.

Five calls take you from credentials to a confirmed booking. Everything below runs against the sandbox, which returns structurally complete responses so you can build the whole flow before any commercial agreement is signed.

1. Get a token

curl
curl -X POST https://api.travelcore.tech/v1/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=$TRAVELCORE_CLIENT_ID" \
-d "client_secret=$TRAVELCORE_CLIENT_SECRET" \
-d "scope=hotels.search hotels.book"
Note:Tokens live for 15 minutes. Cache one and reuse it. Requesting a token per API call is the single most common way integrations hit the rate limiter.

2. Search

curl
curl -X POST https://api.travelcore.tech/v1/hotels/search \
-H "Authorization: Bearer $TOKEN" \
-H "X-TravelCore-Tenant: $TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"destination": { "type": "city", "code": "DXB" },
"checkIn": "2026-11-12",
"checkOut": "2026-11-16",
"occupancies": [{ "adults": 2 }],
"currency": "AED",
"nationality": "EG"
}'

Inspect the suppliers array in the response before you render. If partial is true, at least one supplier missed its budget; show what you have rather than blocking the page, and decide separately whether to re-query.

3. Re-validate the rate

curl
curl -X POST https://api.travelcore.tech/v1/hotels/rates/rt_01JQ8Y3M9F/check \
-H "Authorization: Bearer $TOKEN" \
-H "X-TravelCore-Tenant: $TENANT_ID"
Note:Never skip this call. Suppliers reprice between search and booking. This is where you discover it, before you charge a customer rather than after.

4. Book

curl
curl -X POST https://api.travelcore.tech/v1/hotels/bookings \
-H "Authorization: Bearer $TOKEN" \
-H "X-TravelCore-Tenant: $TENANT_ID" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"rateId": "rt_01JQ8Y3M9F",
"searchId": "srch_01JQ8Y3M4K7B2R",
"holder": { "firstName": "Sara", "lastName": "Hassan", "email": "sara@example.com" },
"rooms": [{ "guests": [{ "type": "adult", "firstName": "Sara", "lastName": "Hassan" }] }],
"clientReference": "OTA-2026-000148"
}'

5. Retrieve and issue the voucher

curl
curl https://api.travelcore.tech/v1/hotels/bookings/bkg_01JQ8YB4T2N6 \
-H "Authorization: Bearer $TOKEN" \
-H "X-TravelCore-Tenant: $TENANT_ID"
Note:The base URL, credentials and tenant id above are illustrative. Sandbox credentials are issued per account; the API is in design-partner preview and is not open for self-service signup yet.