Tripadvisor data, ready when you are.
Hotels, restaurants, attractions and reviews from Tripadvisor.
- See the price before every call
- Pay only for records that come back
- No subscription. Your balance never expires
What you can get.
- $0.0018per recordTry it →
Hotels
Full cards for up to ten hotels by Tripadvisor URL. Rating breakdown, rank, class, rooms, amenities, price range, OTA offers for the stay.
- $0.0018per recordTry it →
Restaurants
Full cards for up to ten restaurants by URL. Cuisines, dishes, hours, menu link, price level, rating breakdown, rank.
- $0.0018per recordTry it →
Attractions
Full cards for up to ten attractions by URL. Types, ticket offers, booking links, rating breakdown, rank.
- $0.0018per recordTry it →
Search hotels
Hotels for a destination. Every hit a full card, priced for the stay when dates are given.
- $0.0018per recordTry it →
Search restaurants
Restaurants for a destination or dish. Every hit a full card.
- $0.0018per recordTry it →
Search attractions
Things to do for a destination. Every hit a full card.
- $0.0018per recordTry it →
Reviews
Reviews for up to ten places of any kind. Text, rating, dates, trip type, sub-ratings, owner response, reviewer.
What the data looks like.
| name | kind | city | country | rating | reviews | rank | rankOutOf | priceRange | hotelClass | rooms | taId | tripadvisorUrl | photos | menuUrl | bookingUrl | details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hotel Aurel Riverside | hotel | Prague | Czechia | 4.5 | 2,140 | 12 | 610 | $$$ | 4 | 86 | 1304212484 | https://www.tripadvisor.com/hotel-aurel-riverside-1000 |
| https://www.tripadvisor.com/hotel-aurel-riverside-1000 | https://www.tripadvisor.com/hotel-aurel-riverside-1000 |
|
| Casa Lumen Rooms | hotel | Seville | Spain | 4.7 | 864 | 8 | 420 | $$ | 3 | 14 | 1920270898 | https://www.tripadvisor.com/casa-lumen-rooms-1001 |
| https://www.tripadvisor.com/casa-lumen-rooms-1001 | https://www.tripadvisor.com/casa-lumen-rooms-1001 |
|
| Northfold Suites | hotel | Edinburgh | United Kingdom | 4.4 | 1,305 | 31 | 380 | $$$ | 4 | 52 | 336978667 | https://www.tripadvisor.com/northfold-suites-1002 |
| https://www.tripadvisor.com/northfold-suites-1002 | https://www.tripadvisor.com/northfold-suites-1002 |
|
For developers
API reference.
One endpoint, POST /v1/tripadvisor. Open an operation to see its fields.
Hotelshotels
Full cards for up to ten hotels by Tripadvisor URL. Rating breakdown, rank, class, rooms, amenities, price range, OTA offers for the stay.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Tripadvisor place URLs (Hotel_Review / Restaurant_Review / Attraction_Review). |
| language | string · BCP-47 | |
| currency | string · ISO 4217 | |
| stay | object | |
| stay.checkIn | string · YYYY-MM-DD | First night, YYYY-MM-DD. Only read together with checkOut. |
| stay.checkOut | string · YYYY-MM-DD | Departure day, YYYY-MM-DD, after checkIn. Leave both out for a card without prices. |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"hotels","subjects":["https://www.tripadvisor.com/Hotel_Review-<place-id>-Reviews-The_Plaza-New_York_City_New_York.html"],"currency":"USD","stay":{"checkIn":"2027-03-12","checkOut":"2027-03-15"}}'Example response rows
[
{
"name": "Hotel Aurel Riverside",
"kind": "hotel",
"city": "Prague",
"country": "Czechia",
"rating": 4.5,
"reviews": 2140,
"rank": 12,
"rankOutOf": 610,
"priceRange": "$$$",
"hotelClass": 4,
"rooms": 86,
"taId": "1304212484",
"tripadvisorUrl": "https://www.tripadvisor.com/hotel-aurel-riverside-1000",
"photos": [
"https://img.tripadvisor.com/hotel-aurel-riverside.jpg"
],
"menuUrl": "https://www.tripadvisor.com/hotel-aurel-riverside-1000",
"bookingUrl": "https://www.tripadvisor.com/hotel-aurel-riverside-1000",
"details": {}
},
{
"name": "Casa Lumen Rooms",
"kind": "hotel",
"city": "Seville",
"country": "Spain",
"rating": 4.7,
"reviews": 864,
"rank": 8,
"rankOutOf": 420,
"priceRange": "$$",
"hotelClass": 3,
"rooms": 14,
"taId": "1920270898",
"tripadvisorUrl": "https://www.tripadvisor.com/casa-lumen-rooms-1001",
"photos": [
"https://img.tripadvisor.com/casa-lumen-rooms.jpg"
],
"menuUrl": "https://www.tripadvisor.com/casa-lumen-rooms-1001",
"bookingUrl": "https://www.tripadvisor.com/casa-lumen-rooms-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Restaurantsrestaurants
Full cards for up to ten restaurants by URL. Cuisines, dishes, hours, menu link, price level, rating breakdown, rank.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Tripadvisor place URLs (Hotel_Review / Restaurant_Review / Attraction_Review). |
| language | string · BCP-47 | |
| currency | string · ISO 4217 |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"restaurants","subjects":["https://www.tripadvisor.com/Restaurant_Review-<place-id>-Reviews-Katz_s_Delicatessen-New_York_City_New_York.html"]}'Example response rows
[
{
"name": "Casa Lumen",
"kind": "restaurant",
"city": "Seville",
"country": "Spain",
"rating": 4.7,
"reviews": 864,
"rank": 8,
"rankOutOf": 2210,
"priceRange": "$$",
"cuisines": [
"Spanish",
"Tapas"
],
"taId": "729433221",
"tripadvisorUrl": "https://www.tripadvisor.com/casa-lumen-1000",
"photos": [
"https://img.tripadvisor.com/casa-lumen.jpg"
],
"menuUrl": "https://www.tripadvisor.com/casa-lumen-1000",
"bookingUrl": "https://www.tripadvisor.com/casa-lumen-1000",
"details": {}
},
{
"name": "The Copper Pot",
"kind": "restaurant",
"city": "Edinburgh",
"country": "United Kingdom",
"rating": 4.5,
"reviews": 1210,
"rank": 41,
"rankOutOf": 1980,
"priceRange": "$$$",
"cuisines": [
"British",
"Seafood"
],
"taId": "3523809370",
"tripadvisorUrl": "https://www.tripadvisor.com/the-copper-pot-1001",
"photos": [
"https://img.tripadvisor.com/the-copper-pot.jpg"
],
"menuUrl": "https://www.tripadvisor.com/the-copper-pot-1001",
"bookingUrl": "https://www.tripadvisor.com/the-copper-pot-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Attractionsattractions
Full cards for up to ten attractions by URL. Types, ticket offers, booking links, rating breakdown, rank.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Tripadvisor place URLs (Hotel_Review / Restaurant_Review / Attraction_Review). |
| language | string · BCP-47 | |
| currency | string · ISO 4217 |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"attractions","subjects":["https://www.tripadvisor.com/Attraction_Review-<place-id>-Reviews-Statue_of_Liberty-New_York_City_New_York.html"]}'Example response rows
[
{
"name": "Old Town Walking Tour",
"kind": "attraction",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.9,
"reviews": 3120,
"rank": 3,
"rankOutOf": 640,
"priceRange": "$",
"lowestTicketPrice": 25,
"taId": "3543572718",
"tripadvisorUrl": "https://www.tripadvisor.com/old-town-walking-tour-1000",
"photos": [
"https://img.tripadvisor.com/old-town-walking-tour.jpg"
],
"menuUrl": "https://www.tripadvisor.com/old-town-walking-tour-1000",
"bookingUrl": "https://www.tripadvisor.com/old-town-walking-tour-1000",
"details": {}
},
{
"name": "Castle Hill Gardens",
"kind": "attraction",
"city": "Prague",
"country": "Czechia",
"rating": 4.6,
"reviews": 5420,
"rank": 11,
"rankOutOf": 720,
"priceRange": null,
"lowestTicketPrice": null,
"taId": "2312642660",
"tripadvisorUrl": "https://www.tripadvisor.com/castle-hill-gardens-1001",
"photos": [
"https://img.tripadvisor.com/castle-hill-gardens.jpg"
],
"menuUrl": "https://www.tripadvisor.com/castle-hill-gardens-1001",
"bookingUrl": "https://www.tripadvisor.com/castle-hill-gardens-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Search hotelssearchHotels
Hotels for a destination. Every hit a full card, priced for the stay when dates are given.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | A destination, or a dish for restaurants. |
| language | string · BCP-47 | |
| currency | string · ISO 4217 | |
| limit | integer · 1-100 | |
| stay | object | |
| stay.checkIn | string · YYYY-MM-DD | First night, YYYY-MM-DD. Only read together with checkOut. |
| stay.checkOut | string · YYYY-MM-DD | Departure day, YYYY-MM-DD, after checkIn. Leave both out for a card without prices. |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"searchHotels","query":"Lisbon","currency":"EUR","limit":20,"stay":{"checkIn":"2027-03-12","checkOut":"2027-03-15"}}'Example response rows
[
{
"name": "Hotel Alfama View",
"kind": "hotel",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.6,
"reviews": 1840,
"rank": 9,
"rankOutOf": 540,
"priceRange": "$$$",
"hotelClass": 4,
"rooms": 64,
"taId": "241348951",
"tripadvisorUrl": "https://www.tripadvisor.com/hotel-alfama-view-1000",
"photos": [
"https://img.tripadvisor.com/hotel-alfama-view.jpg"
],
"menuUrl": "https://www.tripadvisor.com/hotel-alfama-view-1000",
"bookingUrl": "https://www.tripadvisor.com/hotel-alfama-view-1000",
"details": {}
},
{
"name": "Baixa Boutique Inn",
"kind": "hotel",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.4,
"reviews": 960,
"rank": 22,
"rankOutOf": 540,
"priceRange": "$$",
"hotelClass": 3,
"rooms": 18,
"taId": "2808829158",
"tripadvisorUrl": "https://www.tripadvisor.com/baixa-boutique-inn-1001",
"photos": [
"https://img.tripadvisor.com/baixa-boutique-inn.jpg"
],
"menuUrl": "https://www.tripadvisor.com/baixa-boutique-inn-1001",
"bookingUrl": "https://www.tripadvisor.com/baixa-boutique-inn-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Search restaurantssearchRestaurants
Restaurants for a destination or dish. Every hit a full card.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | A destination, or a dish for restaurants. |
| language | string · BCP-47 | |
| currency | string · ISO 4217 | |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"searchRestaurants","query":"Rome","limit":20}'Example response rows
[
{
"name": "Taberna do Rio",
"kind": "restaurant",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.7,
"reviews": 2310,
"rank": 6,
"rankOutOf": 4800,
"priceRange": "$$",
"cuisines": [
"Portuguese",
"Seafood"
],
"taId": "1280646348",
"tripadvisorUrl": "https://www.tripadvisor.com/taberna-do-rio-1000",
"photos": [
"https://img.tripadvisor.com/taberna-do-rio.jpg"
],
"menuUrl": "https://www.tripadvisor.com/taberna-do-rio-1000",
"bookingUrl": "https://www.tripadvisor.com/taberna-do-rio-1000",
"details": {}
},
{
"name": "Pasteis & Co",
"kind": "restaurant",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.5,
"reviews": 1520,
"rank": 28,
"rankOutOf": 4800,
"priceRange": "$",
"cuisines": [
"Bakery",
"Cafe"
],
"taId": "1383105578",
"tripadvisorUrl": "https://www.tripadvisor.com/pasteis-co-1001",
"photos": [
"https://img.tripadvisor.com/pasteis-co.jpg"
],
"menuUrl": "https://www.tripadvisor.com/pasteis-co-1001",
"bookingUrl": "https://www.tripadvisor.com/pasteis-co-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Search attractionssearchAttractions
Things to do for a destination. Every hit a full card.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | A destination, or a dish for restaurants. |
| language | string · BCP-47 | |
| currency | string · ISO 4217 | |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| taId | string |
| kind | string |
| name | string |
| tripadvisorUrl | string |
| description | string |
| address | any |
| city | string |
| country | string |
| latitude | number |
| longitude | number |
| phone | string |
| string | |
| website | string |
| rating | number |
| reviews | integer |
| ratingBreakdown | any |
| reviewTags | any |
| rank | integer |
| rankOutOf | integer |
| photos | list of string |
| photoCount | integer |
| subcategories | list of string |
| hotelClass | string |
| rooms | integer |
| priceRange | string |
| priceLevel | string |
| amenities | list of string |
| hotelOffers | any |
| roomTips | any |
| categoryRatingBreakdown | any |
| nearbyTransit | any |
| cuisines | list of string |
| mealTypes | list of string |
| dietaryRestrictions | list of string |
| establishmentTypes | list of string |
| features | list of string |
| popularDishes | list of string |
| menuUrl | string |
| openingHours | any |
| timezone | string |
| neighborhood | any |
| closed | boolean |
| orderOnline | any |
| categoryRatings | any |
| attractionTypes | list of string |
| ticketOffers | any |
| lowestTicketPrice | number |
| bookingUrl | string |
| nearestMetroStations | any |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"searchAttractions","query":"Kyoto","limit":20}'Example response rows
[
{
"name": "Tram 28 Heritage Ride",
"kind": "attraction",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.3,
"reviews": 9840,
"rank": 14,
"rankOutOf": 640,
"priceRange": "$",
"lowestTicketPrice": 3,
"taId": "3617795509",
"tripadvisorUrl": "https://www.tripadvisor.com/tram-28-heritage-ride-1000",
"photos": [
"https://img.tripadvisor.com/tram-28-heritage-ride.jpg"
],
"menuUrl": "https://www.tripadvisor.com/tram-28-heritage-ride-1000",
"bookingUrl": "https://www.tripadvisor.com/tram-28-heritage-ride-1000",
"details": {}
},
{
"name": "Belém Tower",
"kind": "attraction",
"city": "Lisbon",
"country": "Portugal",
"rating": 4.6,
"reviews": 41200,
"rank": 2,
"rankOutOf": 640,
"priceRange": "$",
"lowestTicketPrice": 10,
"taId": "997333992",
"tripadvisorUrl": "https://www.tripadvisor.com/bel-m-tower-1001",
"photos": [
"https://img.tripadvisor.com/bel-m-tower.jpg"
],
"menuUrl": "https://www.tripadvisor.com/bel-m-tower-1001",
"bookingUrl": "https://www.tripadvisor.com/bel-m-tower-1001",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Reviewsreviews
Reviews for up to ten places of any kind. Text, rating, dates, trip type, sub-ratings, owner response, reviewer.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Tripadvisor place URLs of any kind. |
| since | string · YYYY-MM-DD | |
| ratings | list of integer · each 1-5 | Star values to keep, 1-5. |
| languages | list of string · each BCP-47 | Keep reviews written in these languages (BCP-47 codes, "en", "fr"). Empty = every language. |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| reviewId | string |
| reviewUrl | string |
| reviewTitle | string |
| reviewText | string |
| rating | number |
| postedDate | string |
| travelDate | string |
| tripType | string |
| language | string |
| helpfulVotes | integer |
| subratings | any |
| photos | list of string |
| ownerResponse | any |
| reviewerName | string |
| reviewerProfile | string |
| reviewerLocation | string |
| reviewerContributions | integer |
| reviewerAvatar | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/tripadvisor \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"reviews","subjects":["https://www.tripadvisor.com/Attraction_Review-<place-id>-Reviews-Statue_of_Liberty-New_York_City_New_York.html"],"since":"2026-01-01","languages":["en"],"limit":25}'Example response rows
[
{
"reviewerName": "Hannah W.",
"reviewerLocation": "Berlin, Germany",
"rating": 5,
"reviewTitle": "Worth every penny",
"reviewText": "River view rooms are stunning. Ask for floor 5.",
"tripType": "Couples",
"travelDate": "2026-09",
"postedDate": "2026-10-02",
"helpfulVotes": 12,
"reviewId": "2801231053",
"reviewUrl": "https://www.tripadvisor.com/worth-every-penny-1000",
"photos": [
"https://img.tripadvisor.com/worth-every-penny.jpg"
],
"details": {}
},
{
"reviewerName": "Arjun S.",
"reviewerLocation": "Pune, India",
"rating": 4,
"reviewTitle": "Great breakfast, slow check-in",
"reviewText": "Breakfast was excellent; check-in took 40 minutes.",
"tripType": "Friends",
"travelDate": "2026-09",
"postedDate": "2026-09-28",
"helpfulVotes": 4,
"reviewId": "1539881488",
"reviewUrl": "https://www.tripadvisor.com/great-breakfast-slow-check-in-1001",
"photos": [
"https://img.tripadvisor.com/great-breakfast-slow-check-in.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Historyhistoryfree
Stored rating/review-count/rank series of places already held. Free.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | |
| metric | enum | rating · reviews · rank |
| days | integer · 1-730 |