Expedia API endpoint
Returns Expedia destination and property suggestions for a free-text `term` (required, 100 characters or fewer), with optional `currency` and `locale`. Each item has its type, geo type, primary and secondary text, full location name, coordinates, and `region_id`, `property_id` or `airport_code` where they exist.
/expedia/locations/searchRequest body (top-level JSON fields — do not nest these under an option key):
term (string): required. Free-text search term, e.g. Miami. 100 characters or fewer.currency (string): optional. ISO currency code, default USD.locale (string): optional. Locale string, default en_US.Example request body:
{
"term": "Miami",
"currency": "USD",
"locale": "en_US"
}
Each data.items[] entry's region_id (when present) can be passed as the destination context to expedia-properties-search/expedia-properties-filters/expedia-activities-search, which resolve free-text destinations through this same typeahead internally.
| Field | Filled in, of 9 checked | Values in the sample |
|---|---|---|
| type | 9 | SearchLocationBasicItem in all 9 |
| geo_type | 8 | “CITY” and 4 other values |
| region_id | 8 | |
| primary_text | 9 | “Miami Beach” and 8 other values |
| secondary_text | 8 | Florida, United States (4), Miami Beach, Florida, United St… (2), Miami, Florida, United States (2) |
| location_full_name | 9 | |
| latitude | 8 | |
| longitude | 8 | |
| airport_code | 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| option (body) | object | Yes | Location search payload | ||
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/expedia/locations/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"currency":"USD","locale":"en_US","term":"Miami"}'{
"currency": "USD",
"locale": "en_US",
"term": "Miami"
}{
"code": 200,
"msg": "OK",
"data": {
"term": "Miami",
"items": [
{
"type": "SearchLocationBasicItem",
"geo_type": "CITY",
"primary_text": "Miami",
"secondary_text": "Florida, United States",
"location_full_name": "Miami, FL, United States",
"region_id": "178289",
"latitude": 25.77427,
"longitude": -80.19366
}
]
}
}Request schema
#/definitions/expedia.LocationSearchOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| currency | string | No | USD | |||
| locale | string | No | en_US | |||
| term | string | Yes | Miami |
Response schema
#/definitions/expedia.expediaLocationSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | expedia.LocationSearchResponse | No | ||||
| data.items | array | No | ||||
| data.items[].airport_code | string | No | ||||
| data.items[].geo_type | string | No | ||||
| data.items[].latitude | number | No | ||||
| data.items[].location_full_name | string | No | ||||
| data.items[].longitude | number | No | ||||
| data.items[].primary_text | string | No | ||||
| data.items[].property_id | string | No | ||||
| data.items[].region_id | string | No | ||||
| data.items[].secondary_text | string | No | ||||
| data.items[].type | string | No | ||||
| data.term | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X POST "https://api.crawlora.net/api/v1/expedia/locations/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"currency":"USD","locale":"en_US","term":"Miami"}'