Expedia API endpoint
Searches Expedia things to do (activities and tours) for a free-text `destination` between `start_date` and `end_date` (`YYYY-MM-DD`), all required in the JSON body. Optional `page`, `page_size` (1-50, default 20), `currency` (default `USD`) and `locale` (default `en_US`). Each activity has its id, name, duration, price, review score and label, review count, free-cancellation flag and thumbnail.
/expedia/activities/searchRequest body (top-level JSON fields — do not nest these under an option key):
destination (string): required. Free-text destination, e.g. Miami.start_date (string): required. Range start date, YYYY-MM-DD.end_date (string): required. Range end date, YYYY-MM-DD, must be after start_date.page (integer): optional. 1-based result page, default 1.page_size (integer): optional. Results per page, 1-50, default 20.currency (string): optional. ISO currency code, default USD.locale (string): optional. Locale string, default en_US.Example request body:
{
"destination": "Miami",
"start_date": "2026-08-04",
"end_date": "2026-08-17"
}
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| name | 20 | “Miami Biscayne Bay Sightseeing Cruise: Celebrity Homes & Sk…” and 19 other values |
| thumbnail_url | 20 | mediaim.expedia.com |
| duration | 19 | “1h 30m” and 14 other values |
| review_score | 13 | “8.6/10” and 9 other values |
| review_count | 13 | 6 to 1,053, median 140 |
| review_label | 13 | Excellent (5), Good (4), Very Good (2) and 2 more |
| price | 20 | “$26” and 15 other values |
| free_cancellation | 18 | true in 18 of 18 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| option (body) | object | Yes | Activity search payload | ||
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/expedia/activities/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"currency":"USD","destination":"Miami","end_date":"2026-08-17","locale":"en_US","page":1,"page_size":20,"start_date":"2026-08-04"}'{
"currency": "USD",
"destination": "Miami",
"end_date": "2026-08-17",
"locale": "en_US",
"page": 1,
"page_size": 20,
"start_date": "2026-08-04"
}{
"code": 200,
"msg": "OK",
"data": {
"destination": "Miami Beach, Florida, United States of America",
"region_id": "8833",
"page": 1,
"total_count": 689,
"activities": [
{
"id": "263283",
"name": "Boat Tour in Miami",
"thumbnail_url": "https://mediaim.expedia.com/localexpert/263283/0c1991a1-d38c-4ae9-8ca1-e514b9622290.jpg",
"duration": "1h 30m",
"review_score": "8.6/10",
"review_count": 1037,
"review_label": "Excellent",
"price": "$29",
"free_cancellation": true
}
]
}
}Request schema
#/definitions/expedia.ActivitySearchOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| currency | string | No | USD | |||
| destination | string | Yes | Miami | |||
| end_date | string | Yes | 2026-08-17 | |||
| locale | string | No | en_US | |||
| page | integer | No | 1 | |||
| page_size | integer | No | 20 | |||
| start_date | string | Yes | 2026-08-04 |
Response schema
#/definitions/expedia.expediaActivitySearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | expedia.ActivitySearchResponse | No | ||||
| data.activities | array | No | ||||
| data.activities[].duration | string | No | ||||
| data.activities[].free_cancellation | boolean | No | ||||
| data.activities[].id | string | No | ||||
| data.activities[].name | string | No | ||||
| data.activities[].price | string | No | ||||
| data.activities[].review_count | integer | No | ||||
| data.activities[].review_label | string | No | ||||
| data.activities[].review_score | string | No | ||||
| data.activities[].thumbnail_url | string | No | ||||
| data.destination | string | No | ||||
| data.page | integer | No | ||||
| data.region_id | string | No | ||||
| data.total_count | integer | 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/activities/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"currency":"USD","destination":"Miami","end_date":"2026-08-17","locale":"en_US","page":1,"page_size":20,"start_date":"2026-08-04"}'