API reference
Catalog
Look up places and products: autocomplete for search boxes, destination codes for activities and transfers, and rich hotel content for your product pages.
Autocomplete places
/api/v1/catalog/suggestCities, hotels and airports matching what the traveller has typed. Query: q and limit (1–15 per group, default 6). q is trimmed and cut to 100 characters; under 2 characters returns empty groups rather than an error. Debounce keystrokes by about 200 ms.
| Field | Description |
|---|---|
cities[]object | name, countryCode, stateName, hotelCount, cityRegionId, cityRegionIds. Use the region IDs in a hotel search. |
hotels[]object | canonicalId, name, cityName, starRating, countryCode. Use canonicalId as hotelId, or as a transfer hotel location. |
pois[]object | kind (airport or destination), name, code, countryCode. Airport codes work for flights and transfers; a destination is an activity destination, and its code works as destinationCode. |
Activity and transfer destinations
/api/v1/destinations| Query | Description |
|---|---|
productType | activity or transfer. Any other value returns an empty list. |
q | Name prefix, case-insensitive. |
country | ISO alpha-2 filter. |
limit, cursor | Default 20, up to 100 per page; next page from data.nextCursor. |
Returns data.items: code, name, cityName, countryCode, kind (activity_destination; for transfers, transfer_airport or transfer_destination). Use code as an activity search's destinationCode.
Browse a destination's activities
/api/v1/destinations/:code/activitiesThe activity catalogue for a destination, without prices: data.items with activityKey, name, cityName, countryCode, imageUrl. Paged with limit and cursor. Search to get prices and availability.
Hotel content
/api/v1/products/hotel/:canonicalIdDescriptions, photos, amenities, check-in and check-out times, policies, fees and room descriptions for your hotel pages. Content changes rarely: cache it and refresh daily.
{
"data": {
"canonicalId": "c9b1e2f4a7d34b0e",
"name": "Example Marina Hotel",
"starRating": 5,
"cityName": "Dubai",
"countryCode": "AE",
"address": "1 Marina Walk",
"geo": { "type": "Point", "coordinates": [55.1403, 25.0806] },
"chainName": "Example Hotels",
"content": {
"description": "A waterfront hotel on Dubai Marina…",
"images": [{ "url": "https://…/hero.jpg", "caption": "Exterior", "heroImage": true }],
"amenities": ["Pool", "Spa", "Free WiFi"],
"checkin": { ... },
"checkout": { ... },
"policies": { ... },
"fees": { ... },
"rooms": [ ... ]
}
},
"meta": {},
"error": null
}geo is a GeoJSON point: coordinates are [lng, lat]. content is null when no rich content is available for the hotel, image captions can be null, and the shape of checkin, checkout, policies and fees varies by hotel.
For an activity, use GET /api/v1/products/activity/:activityKey. Errors: 404 not_found.
Hotel thumbnails
/api/v1/products/hotel-thumbnailsOne listing image per hotel for up to 60 hotels at once. Query: ids, comma-separated canonicalIds; IDs after the 60th are ignored without an error. Hotels without an image map to null.
{
"data": {
"c9b1e2f4a7d34b0e": "https://…/thumb.jpg",
"a41f0d9e2c7b5a13": null
},
"meta": {},
"error": null
}