Expedia API endpoint
Returns the sort and filter facets (amenities, star rating, neighborhood, nightly price range, sort options) available for a Stays search.
/expedia/properties/filtersRequest body (top-level JSON fields — do not nest these under an option key):
destination (string): required. Free-text destination, e.g. Miami.check_in (string): required. Check-in date, YYYY-MM-DD.check_out (string): required. Check-out date, YYYY-MM-DD, must be after check_in.adults (integer): optional. Total adults across all rooms, 1-9, default 2.rooms (integer): optional. Number of rooms, 1-8, default 1.currency (string): optional. ISO currency code, default USD.locale (string): optional. Locale string, default en_US.Example request body:
{
"destination": "Miami",
"check_in": "2026-08-04",
"check_out": "2026-08-05",
"adults": 2,
"rooms": 1
}
Each data.sections[].fields[] entry's type is one of: multi_select, single_select, dropdown, range. For the selection types, options[] lists the selectable values; for range, range_min/range_max bound the field instead. Each option's filter_id (e.g. amenities, star_rating, regionId) and value are the upstream selection keys these facets represent -- exposed for reference; expedia-properties-search does not yet accept a filter-selection input.
| Field | Filled in, of 6 checked | Values in the sample |
|---|---|---|
| filter_id | 6 | |
| value | 6 | “RECOMMENDED” and 5 other values |
| label | 6 | “Recommended for you” and 5 other values |
| selected | 1 | true in 1 of 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| option (body) | object | Yes | Property filters payload | ||
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/expedia/properties/filters" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"adults":2,"check_in":"2026-08-04","check_out":"2026-08-05","currency":"USD","destination":"Miami","locale":"en_US","rooms":1}'{
"adults": 2,
"check_in": "2026-08-04",
"check_out": "2026-08-05",
"currency": "USD",
"destination": "Miami",
"locale": "en_US",
"rooms": 1
}{
"code": 200,
"msg": "OK",
"data": {
"destination": "Miami, Florida, United States of America",
"region_id": "2297",
"sections": [
{
"title": "Filter by",
"fields": [
{
"type": "range",
"label": "Nightly price",
"range_min": 0,
"range_max": 1000
},
{
"type": "multi_select",
"label": "Popular filters",
"options": [
{
"filter_id": "amenities",
"value": "92",
"label": "Airport shuttle included (92)"
}
]
}
]
}
],
"sort_options": [
{
"filter_id": "sort",
"value": "RECOMMENDED",
"label": "Recommended for you",
"selected": true
}
]
}
}Request schema
#/definitions/expedia.PropertyFiltersOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| adults | integer | No | 2 | |||
| check_in | string | Yes | 2026-08-04 | |||
| check_out | string | Yes | 2026-08-05 | |||
| currency | string | No | USD | |||
| destination | string | Yes | Miami | |||
| locale | string | No | en_US | |||
| rooms | integer | No | 1 |
Response schema
#/definitions/expedia.expediaPropertyFiltersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | expedia.PropertyFiltersResponse | No | ||||
| data.destination | string | No | ||||
| data.region_id | string | No | ||||
| data.sections | array | No | ||||
| data.sections[].fields | array | No | ||||
| data.sections[].fields[].label | string | No | ||||
| data.sections[].fields[].options | array | No | ||||
| data.sections[].fields[].options[].filter_id | string | No | ||||
| data.sections[].fields[].options[].label | string | No | ||||
| data.sections[].fields[].options[].selected | boolean | No | ||||
| data.sections[].fields[].options[].value | string | No | ||||
| data.sections[].fields[].range_max | number | No | ||||
| data.sections[].fields[].range_min | number | No | ||||
| data.sections[].fields[].type | string | No | ||||
| data.sections[].title | string | No | ||||
| data.sort_options | array | No | ||||
| data.sort_options[].filter_id | string | No | ||||
| data.sort_options[].label | string | No | ||||
| data.sort_options[].selected | boolean | No | ||||
| data.sort_options[].value | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/properties/filters" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"adults":2,"check_in":"2026-08-04","check_out":"2026-08-05","currency":"USD","destination":"Miami","locale":"en_US","rooms":1}'