TripAdvisor API endpoint
Searches TripAdvisor places in the area given by the required `geo_id`, for the required `type`: `hotel`, `restaurant`, `attraction`, `all`, or an attraction category type from `/tripadvisor/enums`. Hotel and restaurant filters, `offset`, `limit`, `locale`, `currency` and `sort` are optional. Each result has title, URL, rating, review count, rank, price and location. Unsupported entity-only types return a validation error.
/tripadvisor/searchMCP tool: tripadvisor_search
Query parameters: geo_id and type are required. Supported type values include hotel, restaurant, attraction, all, and the supported attraction category types returned by /api/v1/tripadvisor/enums. Optional parameters include hotel filters, restaurant availability filters, offset, limit, locale, currency, and sort.
Returns TripAdvisor place listings. Hotel, restaurant, and supported attraction category searches are available. Unsupported entity-only types return a typed validation error instead of an empty success payload.
| Field | Filled in, of 3 checked | Values in the sample |
|---|---|---|
| id | 3 | |
| title | 3 | “Kushiro” and 2 other values |
| type | 3 | “restaurant” |
| url | 3 | tripadvisor.com |
| image | 3 | dynamic-media-cdn.tripadvisor.com |
| rating | 3 | 4.6 to 4.9, median 4.9 |
| review_count | 3 | 223 to 799, median 331 |
| price_level | 3 | “$$$$” |
| cuisines | 3 | median 2 entries |
| tags | 3 | median 2 entries |
| rank | 2 | 1 to 2, median 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| geo_id | integer | Yes | TripAdvisor geo id | 294217 | |
| type | string | Yes | Listing type | restaurant | |
| filter_id | string | No | Optional hotel filter id | ufe | |
| class | integer | No | Hotel class filter | 5 | |
| amenities | array<integer> | No | Hotel amenity filter ids Repeat this query parameter for multiple values. | ||
| price_min | integer | No | Minimum hotel price filter | 1000 | |
| price_max | integer | No | Maximum hotel price filter | 3205 | |
| pricing_mode | string | No | Hotel pricing mode | ALL_IN_RATE | |
| travelers_choice | boolean | No | Filter Travelers' Choice hotels | ||
| travelers_choice_botb | boolean | No | Filter Best of the Best hotels | ||
| restaurant_date | string | No | Restaurant availability date | 2026-05-20 | |
| restaurant_time | string | No | Restaurant availability time | 1900 | |
| restaurant_guests | integer | No | Restaurant guest count | 3 | |
| establishment_types | array<integer> | No | Restaurant establishment type ids Repeat this query parameter for multiple values. | ||
| online_options | array<integer> | No | Restaurant online option ids Repeat this query parameter for multiple values. | ||
| offset | integer | No | Zero-based result offset | 0 | |
| limit | integer | No | Maximum results | 3 | |
| locale | string | No | TripAdvisor locale | en-HK | |
| currency | string | No | Currency code | HKD | |
| sort | string | No | Sort value | POPULARITY | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tripadvisor/search?geo_id=294217&type=restaurant&travelers_choice=true&travelers_choice_botb=true&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"geo_id": 294217,
"type": "restaurant",
"offset": 0,
"limit": 3,
"locale": "en-HK",
"currency": "HKD",
"sort": "POPULARITY",
"source": "graphql",
"results": [
{
"id": "1887114",
"title": "Sumac Restaurant and Lounge",
"type": "restaurant",
"url": "https://en.tripadvisor.com.hk/Restaurant_Review-g294217-d1887114-Reviews-Sumac_Restaurant_and_Lounge-Hong_Kong.html",
"image": "https://dynamic-media-cdn.tripadvisor.com/media/photo.jpg",
"rating": 4.5,
"review_count": 1217,
"rank_label": "#12 of 12,000 restaurants in Hong Kong",
"price_level": "$$ - $$$",
"address": "Hong Kong",
"parent": "Hong Kong",
"categories": [
"Lebanese",
"Mediterranean"
],
"booking_url": "https://en.tripadvisor.com.hk/Commerce?p=Restaurants_SevenRooms"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/tripadvisor.tripadvisorSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tripadvisor.SearchResponse | No | ||||
| data.currency | string | No | HKD | Currency code the prices are shown in, for example `HKD`. | ||
| data.geo_id | integer | No | 294217 | TripAdvisor geo id of the location the places are listed for. | ||
| data.limit | integer | No | 30 | Maximum number of places returned on this page. | ||
| data.locale | string | No | en-HK | Locale code the results were returned in, for example `en-HK`. | ||
| data.offset | integer | No | 0 | Result offset of this page. | ||
| data.results | array | No | Places on this page, one entry per place. | |||
| data.results[].address | string | No | Street address of the place. | |||
| data.results[].booking_url | string | No | URL where TripAdvisor lets you book or reserve the place. | |||
| data.results[].categories | array | No | Categories TripAdvisor lists for the place. | |||
| data.results[].cuisines | array | No | Cuisines a restaurant serves. | |||
| data.results[].currency | string | No | HKD | Currency code of the listed price, for example `HKD`. | ||
| data.results[].id | string | No | 5493196 | TripAdvisor location id of the place. Use it with the place and reviews endpoints. | ||
| data.results[].image | string | No | URL of the place's main image. | |||
| data.results[].latitude | number | No | 22.28331 | Latitude of the place in decimal degrees. | ||
| data.results[].longitude | number | No | 114.15874 | Longitude of the place in decimal degrees. | ||
| data.results[].parent | string | No | Hong Kong | Name of the city or area the place is in. | ||
| data.results[].phone | string | No | Phone number of the place. | |||
| data.results[].price | string | No | HK$7,793 | Price shown on the listing, formatted with the currency symbol, for example `HK$7,793`. | ||
| data.results[].price_level | string | No | $$ - $$$ | Price band as TripAdvisor shows it, for example `$$ - $$$`. | ||
| data.results[].provider | string | No | Agoda | Booking or reservation provider shown on the listing, for example `Agoda`. | ||
| data.results[].rank | integer | No | 12 | Place's position in TripAdvisor's ranking for the location. | ||
| data.results[].rank_label | string | No | #12 of 12000 restaurants in Hong Kong | Ranking text as TripAdvisor shows it, for example `#12 of 12000 restaurants in Hong Kong`. | ||
| data.results[].rating | number | No | 4.5 | Average traveller rating out of 5. | ||
| data.results[].review_count | integer | No | 1217 | Number of traveller reviews the place has. | ||
| data.results[].review_rating | number | No | Rating given in the review shown on the listing. | |||
| data.results[].review_snippet | string | No | Excerpt of a review shown on the listing. | |||
| data.results[].review_title | string | No | Title of the review shown on the listing. | |||
| data.results[].star_rating | number | No | 5 | Official star class of the place, for example `5`. Shown for hotels. | ||
| data.results[].tags | array | No | Short labels TripAdvisor shows on the listing. | |||
| data.results[].title | string | No | Hong Kong Asian Cuisine | Place name as shown on the listing. | ||
| data.results[].type | string | No | restaurant | Listing type, for example `restaurant`. | ||
| data.results[].url | string | No | TripAdvisor page URL of the place. | |||
| data.sort | string | No | POPULARITY | Sort order that was applied, for example `POPULARITY`. | ||
| data.source | string | No | html_listing | Label for the kind of TripAdvisor listing the results came from. | ||
| data.type | string | No | restaurant | Listing type that was searched, for example `restaurant`. | ||
| data.unsupported_types | array | No | vacation_rental,tour,airline | Entity types that this search does not cover, for example `airline`. Omitted when none. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tripadvisor/search?geo_id=294217&type=restaurant&travelers_choice=true&travelers_choice_botb=true&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"