Destination Lookup API
Convert free-form location names into Booking.com destination IDs for precise hotel searches.
Overview
GraphQL-Powered
This endpoint uses Booking.com's official GraphQL API to provide fast, reliable destination suggestions with support for multiple location types (cities, districts, airports, landmarks).
The Destination Lookup endpoint uses Booking.com's GraphQL API to resolve free-form location queries (like "Barcelona", "Paris", or "New York") into destination IDs and types. It provides instant, accurate destination suggestions including cities, districts, airports, and landmarks - useful when you don't know the exact destination ID but want to search for hotels in a specific location.
Updated Behavior
The API now returns success: true whenever a valid dest_id is found and returned. When multiple destinations match, it automatically uses the first suggestion as default while still returning all options. The success field now simply indicates whether a usable destination ID was found.
Endpoint URL
Use Case
Use this endpoint to find the dest_id before calling the Hotel Search endpoint. This two-step workflow allows users to search by familiar location names instead of numeric IDs.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Required | Location name to search for (e.g., "Barcelona", "Paris", "New York", "Phuket") |
| language | string | Optional | Language code for results (default: "en-us"). Examples: "en-us", "fr", "de", "es" |
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | True when a valid dest_id is found and returned, false only when no destinations found or an error occurs |
| query | string | The original query string provided |
| dest_id | integer | Booking.com destination ID (populated with first suggestion when multiple matches exist) |
| dest_type | string | Type of destination: "CITY", "REGION", "DISTRICT", "AIRPORT", "LANDMARK" (populated with first suggestion when multiple matches exist) |
| normalized_query | string | Normalized location name from Booking.com (populated with first suggestion's label when multiple matches exist) |
| suggestions | array | List of alternative destinations if query is ambiguous |
| message | string | Descriptive message about the result |
Code Examples
Common Workflow
Two-Step Hotel Search
-
1
Lookup Destination ID
Call this endpoint with a location name to get the
dest_id.GET /v1/booking/destinations/lookup?query=Barcelona -
2
Search Hotels
Use the returned
dest_idto search for hotels.GET /v1/booking/search?dest_id=20014181&dest_type=CITY
💡 Pro Tip: Cache destination IDs on your end to avoid repeated lookups for popular locations.
Key Features
GraphQL-Powered
Uses Booking.com's official AutoComplete GraphQL API for accurate, real-time destination suggestions.
Rich Location Types
Returns cities, districts, airports, landmarks, and regions - not just cities. Get comprehensive location suggestions.
Smart Matching
Single unambiguous matches return destination ID directly. Multiple matches return suggestions for user selection.
Detailed Labels
Returns up to 5 suggestions with full location labels (e.g., "Paris, Ile de France, France") to help users choose correctly.