GET

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

GET https://api.stayapi.com/v1/booking/destinations/lookup

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

Request
curl -X GET "https://api.stayapi.com/v1/booking/destinations/lookup?query=Barcelona" \
  -H "x-api-key: YOUR_API_KEY"
Response
{
  "success": true,
  "query": "Barcelona",
  "normalized_query": "Barcelona, Catalonia, Spain",
  "dest_id": -372490,
  "dest_type": "CITY",
  "suggestions": [],
  "message": "Resolved destination"
}

Common Workflow

Two-Step Hotel Search

  1. 1

    Lookup Destination ID

    Call this endpoint with a location name to get the dest_id.

    GET /v1/booking/destinations/lookup?query=Barcelona
  2. 2

    Search Hotels

    Use the returned dest_id to 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.

Related Endpoints