hotel reviews API

  • Data from Google Hotels
  • Data from Booking.com
  • Data from Expedia
  • Data from Hotels.com
  • Data from Tripadvisor

Hotel reviews API: guest reviews from five sites in one shape

Read a hotel’s guest reviews from Google Hotels, Booking.com, Expedia, Hotels.com and Tripadvisor with the same fields on every row: rating and its scale, text, author, date and the hotel’s reply. Structured JSON, priced per page.

1,000 free credits a month · Failed requests are free · Free during the beta

Endpoints and prices checked against the API on

Hotels and the agencies that manage their reputation answer reviews on several sites, and each site holds a different set. Even Expedia and Hotels.com, which answer the same reviews query, keep separate pools of reviews for the same hotel. Collecting them by hand means five ID schemes and five ways to page. This API returns every source’s reviews in one shape, so one parser and one table cover all five.

Ratings are not on one scale. Booking.com, Expedia and Hotels.com rate out of 10 and Tripadvisor out of 5, while Google mixes its own reviews with Tripadvisor’s, Priceline’s and others’, each on its provider’s scale. The API keeps every rating in the scale the site uses and says which, with rating_scale on the page and provider on Google’s rows, instead of converting silently. The hotel’s answer comes back as management_reply on the same row.

What you get

  • reviews[].rating — the guest’s rating, in the source’s own scale
  • rating_scale — 10 for Booking.com, Expedia and Hotels.com, 5 for Tripadvisor
  • reviews[].text, title, author, date — the review, its headline where the site has one, the guest’s name and the publication date
  • reviews[].management_reply — the hotel’s published answer to the review
  • reviews[].provider — on Google rows, the site the review came from, such as Tripadvisor or Priceline
  • reviews[].stay_date, room_type, trip_type — stay details, where the source publishes them
  • total — the source’s own count of reviews for the property
  • next_page_token — Google’s cursor to continue past the pages already fetched

One call, structured JSON

POST /v1/ota/booking/reviews — 2 credits per successful call.

curl -X POST "https://api.scrapercompany.com/v1/ota/booking/reviews" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "pagename": "newbury-guest-house"
  }'
Response (trimmed)
{
  "source": "booking",
  "pagename": "newbury-guest-house",
  "hotel_id": 236725,
  "ufi": 20061717,
  "country": "us",
  "total": 523,
  "skip": 0,
  "limit": 10,
  "sort": "MOST_RELEVANT",
  "rating_scale": 10,
  "count": 2,
  "reviews": [
    {
      "source": "booking",
      "review_id": "48b4dc6c098c149e",
      "rating": 8,
      "title": "Good value, warm and inviting staff and very neat and clean rooms.",
      "text": "No breakfast but coffee/tea in lobby, location very good-on fanciest street in Boston and room was clean neat and comfortable.",
      "date": "2026-10-28",
      "author": "Anna",
      "author_country": "United States",
      "stay_date": "2026-10-28",
      "room_type": "Deluxe Room",
      "management_reply": "Hello Anna, we are pleased that you enjoyed your stay. We value your kind words and feedback.",
      "language": "xu",
      "helpful_votes": 0,
      "url": "48b4dc6c098c149e"
    },
    {
      "source": "booking",
      "review_id": "23d02bc7e442bfa9",
      "rating": 10,
      "title": "I will be returning to this hotel",
      "text": "This location was excellent. close to food and shops.",
      "negative_text": "getting to parking was tricky but doable",
      "date": "2027-04-15",
      "author": "Deborah",
      "author_country": "United States",
      "stay_date": "2027-04-13",
      "room_type": "Luxury Double",
      "language": "xu",
      "helpful_votes": 0,
      "url": "23d02bc7e442bfa9"
    }
  ],
  "rating_scores": [
    {
      "name": "Staff",
      "value": 9.3,
      "count": 258
    }
  ],
  "sorters": [
    {
      "value": "MOST_RELEVANT",
      "name": "Most relevant"
    },
    {
      "value": "NEWEST_FIRST",
      "name": "Newest first"
    }
  ],
  "provenance": {
    "schema_version": 1,
    "observation_id": "rateobs_99462a8ea61e5fc7aea1b45a237f615c",
    "collection_id": "ratecol_0123456789abcdef0123456789abcdef",
    "observed_at": "2026-08-07T01:23:45.678Z",
    "source": "booking_com",
    "source_kind": "reviews",
    "collector": "scrapingme.ota.booking",
    "source_property_id": "newbury-guest-house",
    "egress_mode": "direct",
    "price_basis": "unknown",
    "derivation": "upstream"
  },
  "wire_bytes": 14973,
  "elapsed_s": 0.521,
  "collection_id": "ratecol_0123456789abcdef0123456789abcdef",
  "observed_at": "2026-08-07T01:23:45.678Z"
}

Endpoints and price per call

Credits per successful call, and what one call costs on the Starter, Growth, Scale plans. Failed requests cost nothing. See all plans.

EndpointWhat it returnsCreditsStarter · Growth · Scale
Google Hotels
POST /v1/hotels/reviews
Reviews Google shows for a property token, 10 per page and up to 10 pages per callfrom 2 credits$0.0020 · $0.0012 · $0.0008
Booking.com
POST /v1/ota/booking/reviews
Up to 25 per page, by relevance or date, with an optional keyword filter2 credits$0.0020 · $0.0012 · $0.0008
Expedia
POST /v1/ota/expedia/reviews
Up to 25 per page, newest first, from the US or Canadian site2 credits$0.0020 · $0.0012 · $0.0008
Hotels.com
POST /v1/ota/hotels/reviews
Up to 25 per page, newest first, from 11 Hotels.com points of sale2 credits$0.0020 · $0.0012 · $0.0008
Tripadvisor
POST /v1/ota/tripadvisor/reviews
Up to 30 per page for a location ID, newest first2 credits$0.0020 · $0.0012 · $0.0008

FAQ

Frequently asked questions

Read next

Is there an official hotel reviews API?

Not one that covers these sites. Google’s Places API returns at most five reviews for a place, and Booking.com’s Guest Review API is for a property’s own reviews and internal use. This API is independent of all five sites and returns the reviews each one shows on its public pages, page by page.

Which hotel ID does each source need?

Google Hotels takes a property_token from a hotel search, Booking.com the slug and country from the hotel’s URL, Expedia and Hotels.com their numeric property_id, and Tripadvisor the location_id, the number after -d in a hotel URL. Each site’s hotel search endpoint returns these IDs from a hotel name.

Are ratings converted to one scale?

No. Each rating stays in the scale the site uses: out of 10 on Booking.com, Expedia and Hotels.com, and out of 5 on Tripadvisor. Google’s list mixes providers, so each Google row names its provider and keeps that provider’s scale, 5 for Google and Tripadvisor and 10 for Priceline. To compare, divide each rating by its scale.

How are review pages billed?

Per page. Booking.com, Expedia, Hotels.com and Tripadvisor return one page per call, and you page with skip, start_index or offset. Google Hotels can follow up to 10 pages of 10 reviews in one call and is billed for each page it fetched; next_page_token continues from there.

How do I pick up only new reviews?

Expedia, Hotels.com and Tripadvisor return reviews newest first, and Booking.com does with sort set to NEWEST_FIRST. Poll the first page and stop at the first review_id you have already stored.

Do failed requests cost credits?

No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.

How do I get an API key?

Create an account on the sign-up page. Public sign-up is invite-only during the beta, so join the waitlist there and we will email you when your account is ready. The Free plan includes 1,000 credits a month, and the API is free while it is in beta. You create and rotate keys yourself in the dashboard.

Start with 1,000 free credits a month

Join the waitlist and we will email you when your account is ready: your own API keys, 1,000 free credits a month, and the API is free during the beta.

Sign-up is invite-only during the beta. Privacy

Or read the quickstart →