Apinoa Docs

Reviews

Get a place's reviews from Tripadvisor.

View raw .mdx
GET | POST /v1/tripadvisor/reviews

Send parameters as a query string with GET, or as a JSON body with POST. Both are equivalent.

Request

curl "https://gateway.apinoa.com/v1/tripadvisor/reviews?place=143336&limit=5" \
  -H "x-api-key: $APINOA_API_KEY"

Parameters

ParameterTypeRequiredNotes
cursorstringThe previous page's cursor. Pass it alone for the next page.
languagestringOnly reviews in this language — Tripadvisor counts its machine translations into it (each review says when it is one). All languages by default.
limitinteger 1–100Results wanted (default 20, at most 100). More than one page is charged per page.
monthsstringOnly reviews of visits in these months, e.g. 6,7,8 or june.
placestringThe place's id, as places returns it (a Tripadvisor link is taken too).
qstringOnly reviews that mention this text.
ratingstringOnly reviews with these stars, e.g. 5 or 1,2.
sortenumReview order: Tripadvisor's own (default), newest first, or the most detailed first. relevant newest detailed
visitTypestringOnly reviews by these travellers: families, couples, solo, business, friends (comma-separated).

The same parameters, and every response type, are in the OpenAPI document.

Response

Returns PlaceReviewsPage in data. A real response, shortened: arrays keep their first entries and long text is cut.

{
  "success": true,
  "data": {
    "engine": "tripadvisor",
    "placeId": "143336",
    "summary": {
      "average": 3.9,
      "count": 40012,
      "distribution": {"1": 6.93, "2": 7.08, "3": 14.87, "4": 29.89, "5": 41.24}
    },
    "starCounts": {"1": 2772, "2": 2833, "3": 5948, "4": 11959, "5": 16500},
    "sort": "newest",
    "page": {"index": 1, "size": 5, "total": 40012},
    "reviews": [
      {
        "id": "1083706294",
        "author": "Richie J",
        "authorId": "DEE03B589798E25B6D9C7B158ED1E551",
        "authorUrl": "https://www.tripadvisor.com/Profile/536richiej",
        "authorAvatarUrl": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/f2/11/default-avatar-2020-23.jpg?w=1200&h=1200&s=1",
        "rating": 3,
        "title": "Multiple issues derailed experience",
        "body": "The shower only had cold water. There was no body wash bc the canister was broken. Called housekeeping and a bag of soaps were left on bathroom counter. This is…",
        "date": "2026-10-29T22:42:49.097Z",
        "helpfulCount": 0,
        "images": [],
        "language": "en",
        "pinned": false,
        "ext": {
          "url": "https://www.tripadvisor.com/ShowUserReviews-g45963-d143336-r1083706294-Paris_Las_Vegas-Las_Vegas_Nevada.html",
          "visit": {"type": "couples", "date": "2026-10"},
          "photoCount": 0,
          "trustSafetyAlert": false,
          "reviewer": {"username": "536richiej", "contributions": 1, "helpfulVotes": 0}
        }
      },
      {
        "id": "1083555734",
        "author": "Dorothy I",
        "authorId": "A12310ACFD286DA674866408BEEA29DC",
        "authorUrl": "https://www.tripadvisor.com/Profile/dorothyi321",
        "authorAvatarUrl": "https://dynamic-media-cdn.tripadvisor.com/media/photo-s/01/2e/70/69/avatar047.jpg?w=450&h=450&s=1",
        "rating": 5,
        "title": "Lovely",
        "body": "Initially they put me in Versailles tower, I was a bit disappointed, great view but loud and elevator issues, it’s not quite as elegant as I expected from this…",
        "date": "2026-10-28T16:59:35.842Z",
        "helpfulCount": 0,
        "images": [
          "https://dynamic-media-cdn.tripadvisor.com/media/v2/photo-o/35/0f/26/ce/image.jpg?w=3024&h=4032&s=1",
          "https://dynamic-media-cdn.tripadvisor.com/media/v2/photo-o/35/0f/26/d0/image.jpg?w=3024&h=4032&s=1"
        ],
        "language": "en",
        "pinned": false,
        "ext": {
          "url": "https://www.tripadvisor.com/ShowUserReviews-g45963-d143336-r1083555734-Paris_Las_Vegas-Las_Vegas_Nevada.html",
          "visit": {"type": "solo", "date": "2026-10"},
          "photoCount": 3,
          "photoCaptions": ["Perfect view"],
          "trustSafetyAlert": false,
          "reviewer": {"username": "dorothyi321", "contributions": 8, "helpfulVotes": 0}
        }
      }
    ],
    "cursor": "CLGdsXzj_3O3ElOeWzJoq8nqyzEjXq15aaxleTqAcTLFSh2SehSKQB2jIsWOaf8IfICs6nJDR5VnR9U0GpzUQSOAoVlzyvpvL9RzaURF88Z0S5LTXzqHsxc3nH0AOmvJCgsfOSRzVgAZi5qoJ_WLj_8Yg12i9w",
    "fetchedAt": "2026-10-30T01:02:47.016Z",
    "ext": {
      "place": {
        "name": "Paris Las Vegas",
        "type": "hotel",
        "url": "https://www.tripadvisor.com/Hotel_Review-g45963-d143336-Reviews-Paris_Las_Vegas-Las_Vegas_Nevada.html"
      },
      "subRatings": {
        "activitiesAndGym": 3.5,
        "cleanliness": 4.2,
        "dining": 3.9,
        "location": 4.7,
        "pool": 3.7,
        "room": 4,
        "service": 3.9,
        "sleep": 4.2,
        "value": 3.9
      },
      "languages": {
        "de": 13697,
        "no": 16161,
        "fi": 92,
        "ru": 19635,
        "pt": 5745,
        "zhTW": 13079,
        "fr": 10019,
        "hu": 93,
        "sk": 92,
        "sr": 92,
        "zhCN": 12377,
        "sv": 12000,
        "ko": 13790,
        "in": 13751,
        "el": 13880,
        "en": 36553,
        "it": 17367,
        "es": 17965,
        "iw": 161,
        "cs": 93,
        "ar": 9357,
        "vi": 170,
        "th": 13062,
        "ja": 10254,
        "pl": 10764,
        "da": 10191,
        "nl": 16104,
        "tr": 7945
      }
    }
  }
}

Errors

StatusCodeMeaning
400INVALID_CURSORThe cursor is not one this operation returned. Start again without it.
400INVALID_PARAMSA parameter is missing, unknown or out of range, or the engine does not take it. The message names it.
401UNAUTHORIZEDThe x-api-key header is missing, or the key is revoked or unknown.
402INSUFFICIENT_BALANCEThe balance does not cover this call. Top up in the dashboard.
404NOT_FOUNDThe place does not exist.
429MARKETPLACE_SATURATEDToo many concurrent calls. Retry after the Retry-After seconds.
502UPSTREAM_ERRORThe engine answered with something unusable. Retry with backoff.
503SERVICE_UNAVAILABLEA temporary failure. Retry with backoff.

Every code is listed in Errors. Failed calls are not billed.

Pricing

Price $0.0012 per call, plus $0.0012 for each extra call it makes — at most 4 more, so $0.006 in total. List price; the rate steps down above 1,000 calls a day.

Notes

  • Pass the place's id from places as place.
  • Filter by rating, visitType, months, language or text in q. With language, Tripadvisor counts its machine translations, and each review says when it is one.

On this page