Search properties, check live availability, create bookings, cancel or modify orders, and test requests directly from the browser with a live or demo key.
Base URLhttps://api.bookingclub.net/v1OpenAPI/v1/openapi.jsonUpdated 2026-06-17
Demo and Live keysDemo keys create isolated demo bookings. Live keys use the real operational booking flow.
Hotel, tour, transferOne JSON API for internal contracts, enabled provider stock and visible WTX products.
Built-in controlsScopes, IP rules, rate limits, request logging, billing and API commissions are handled per key.
Authentication
Every API request uses a client API key. Demo keys create demo bookings. Live keys create normal operational bookings.
God Mode can set scopes, allowed IPs, logging mode, request limits, billing mode, request cost and API commission per key.
Common Rules
Rule
Details
Response format
All responses are JSON: success, requestId, data, errors.
Dates
Use YYYY-MM-DD.
Currency
Any endpoint returning a new price requires currency. Booking detail, cancel quote and cancel return the original booking currency and do not accept currency.
Nationality
nationalityId is optional. Use GET /reference/nationalities to list values.
Children
Send childrenAges only when there are children. If children exist, ages are required and must match booking guests.
Idempotency
Write endpoints require Idempotency-Key. Retrying the exact same request with the same key returns the saved response without creating a duplicate booking.
Visibility
Products include supervisor internal contracts, enabled TL/TL2 products and WTX products visible to the supervisor.
Billing
God Mode request billing counts successful requests. Depending on key settings, requests may be free, per-request paid, or monthly quota plus paid extra.
Simulator
Requests are sent directly from this browser to https://api.bookingclub.net/v1. The API key is not saved by this page.
{}
Reference Data
Endpoint
Query
Scope
GET/reference/countries
q, language, page, limit
reference:read
GET/reference/regions
countryId, q, language, page, limit
reference:read
GET/reference/cities
countryId, regionId, q, language, page, limit
reference:read
GET/reference/airports
countryId, regionId, cityId, q, language, page, limit
reference:read
GET/reference/currencies
q, page, limit
reference:read
GET/reference/currency-rates
None
reference:read
GET/reference/nationalities
q, page, limit
reference:read
GET/reference/languages
q, language, page, limit
reference:read
GET/reference/meal-plans
q, page, limit
reference:read
Properties
Endpoint
Required
Optional
Scope
GET/properties
None
q, countryId, cityId, source, page, limit
properties:read
GET/properties/{propertyId}
propertyId
None
properties:read
A propertyId may represent an internal hotel, TL/TL2 hotel, or WTX product. Use the returned ID exactly as received.
If price changed, booking returns PRICE_CHANGED. If availability is not enough, booking returns INSUFFICIENT_AVAILABILITY or NOT_AVAILABLE. Request availability again and use the new rateToken.
Cancel
Endpoint
Required
Optional
Scope
POST/bookings/{bookingNumber}/cancel-quote
bookingNumber
itemIds
bookings:cancel
POST/bookings/{bookingNumber}/cancel
bookingNumber, Idempotency-Key
itemIds
bookings:cancel
cancel-quote calculates penalty only. cancel applies cancellation. Both use the original booking currency.
Call modify-quote first, then send the same intended changes with confirm=true. Price-changing modify supports direct internal pending hotel items and direct TL2 API bookings when provider penalty is zero and only date/occupancy changes are requested. WTX-backed items, room/rate/property/nationality changes, paid items or commission-paid items return MODIFY_PRICE_CHANGE_NOT_SUPPORTED or MODIFY_REQUIRES_MANUAL_REVIEW. If date, room, occupancy, nationality or currency is changed, currency is required. If occupancy is changed, send the full guests list matching the new occupancy. PATCH /bookings/{bookingNumber} is kept as a compatibility alias.