At a glance
What the Agoda API does
- Reviews
- Agoda guests and Booking.com guests, every written review Agoda lists (up to 5,000 per source)
- Start from
- Hotel links (any language version), Agoda hotel IDs or hotel names
- Hotel data
- Star rating, address, scores, review counts and 6 sub-scores on every row
- Filters
- Source, language, rating range, newer than a date, order
- Output
- 45 fields per review; JSON, CSV, Excel, API
- Automate
- Only-new-reviews mode, schedules, Slack/webhook digest, Zapier, Make, n8n, MCP
Who it is for
- Hotel and revenue managers tracking new reviews of their own property and their competitive set every day
- Reputation-management agencies and SaaS tools pulling reviews for many client hotels in one scheduled run
- Travel analysts comparing cleanliness, location and service sub-scores across a city's hotels
- Feeding review text to an LLM for sentiment, complaint themes and reply drafting
- Researchers studying guest satisfaction by traveller type, country of origin and length of stay
Output
What you get
- Every row: input, hotel_id, hotel_name, hotel_url, reviews_url, source_url, scraped_at in ISO 8601 UTC
- Hotel facts on every row: accommodation_type, star_rating, address, area, city, country, postal_code
- Hotel scores on every row: agoda_score, agoda_review_count, agoda_sub_scores (Cleanliness, Facilities, Location, Room comfort and quality, Service, Value for money), agoda_score_distribution, booking_score, booking_review_count, booking_sub_scores
- Review: review_id, source (Agoda or Booking.com), rating (out of 10), rating_text, title, text, positives, negatives, original_title, original_text, language, review_date (YYYY-MM-DD, as shown)
- Stay as the page shows it: stay_month, nights, room_type, traveller_type
- Reviewer and reply: reviewer_name, reviewer_country, reviewer_country_code, helpful_votes, photos, owner_response, owner_response_date, responder_name
Example
Input and output
Input
{
"hotels": [
"https://www.agoda.com/the-peninsula-bangkok/hotel/bangkok-th.html",
"Ibis Budapest City"
],
"maxReviewsPerHotel": 200,
"sources": [
"Agoda",
"Booking.com"
]
}One output record
{
"input": "https://www.agoda.com/the-peninsula-bangkok/hotel/bangkok-th.html",
"hotel_id": 10715,
"hotel_name": "The Peninsula Bangkok",
"hotel_url": "https://www.agoda.com/the-peninsula-bangkok/hotel/bangkok-th.html",
"reviews_url": "https://www.agoda.com/the-peninsula-bangkok/reviews/bangkok-th.html",
"accommodation_type": "Hotel",
"star_rating": 5,
"address": "Siam Chaophraya Holdings, 333 Charoennakorn Road, Bangkok Riverside, Bangkok, Thailand, 10600",
"area": "Bangkok Riverside",
"city": "Bangkok",
"country": "Thailand",
"postal_code": "10600",
"agoda_score": 9.2,
"agoda_review_count": 3162,
"agoda_sub_scores": {
"Cleanliness": 9.6,
"Facilities": 9.4,
"Location": 9,
"Room comfort and quality": 9.3,
"Service": 9.5,
"Value for money": 9
},
"agoda_score_distribution": {
"9+ Exceptional": 2082,
"8-9 Excellent": 406,
"7-8 Very Good": 91,
"6-7 Good": 60,
"<6 Below Expectation": 60
},
"booking_score": 9.3,
"booking_review_count": 981,
"booking_sub_scores": {
"Cleanliness": 9.5,
"Facilities": 9.3,
"Location": 9.5,
"Room comfort and quality": 9.6,
"Service": 9.5,
"Value for money": 8.7
},
"review_id": 1201251052,
"source": "Agoda",
"rating": 10,
"rating_text": "Exceptional",
"title": "Excellent",
"text": "Our visit to Bangkok was enhanced by our stay in the Peninsula",
"positives": null,
"negatives": null,
"original_title": null,
"original_text": null,
"language": "en",
"review_date": "2026-10-30",
"stay_month": "October 2026",
"nights": 3,
"room_type": "Deluxe Room",
"traveller_type": "Couple",
"reviewer_name": "sean",
"reviewer_country": "United Kingdom",
"reviewer_country_code": "GB",
"helpful_votes": 0,
"photos": [],
"owner_response": null,
"owner_response_date": null,
"responder_name": null,
"source_url": "https://www.agoda.com/the-peninsula-bangkok/reviews/bangkok-th.html",
"scraped_at": "2026-11-07T17:40:38Z"
}From a real run of this tool; long text and lists shortened here.
How to use it
Three steps
- Paste hotels into 'Hotels': Agoda hotel links, Agoda hotel IDs like 10715, or a hotel name with its city like 'Ibis Budapest City'.
- Set 'Reviews per hotel', and optionally the sources, language, rating range or 'Reviews newer than'; turn on 'Only new reviews' for daily tracking.
- Click Start, or schedule it daily. Download JSON, CSV or Excel, or send reviews to Google Sheets, Slack, Zapier, Make or n8n.
API
Call it from Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("aurelix/agoda-reviews-scraper").call(run_input={'hotels': ['https://www.agoda.com/the-peninsula-bangkok/hotel/bangkok-th.html',
'Ibis Budapest City'],
'maxReviewsPerHotel': 200,
'sources': ['Agoda', 'Booking.com']})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)pip install apify-client. The same input works from the Apify console, a schedule, Make, n8n, Zapier or an AI agent through the Apify MCP server.
Pricing
Pay per result
| Per 1,000 reviews, free plan | $0.50 |
| Per 1,000 reviews, paid plans | $0.40 |
| Hotel checked, per 1,000, free plan | $0.30 |
| Hotel checked, per 1,000, paid plans | $0.25 |
| Start fee per run | $0.005 |
Live prices from the Apify Store; no subscription and no platform usage billed on top. See the Store page.
Honest limits
What it does not do
- Only what Agoda lists: written reviews from Agoda guests and the Booking.com guests Agoda republishes. Rating-only reviews (no text) are counted in the review counts but have no row.
- Agoda's review list stops at 5,000 reviews per source (100 pages); for the few hotels with more, the first 5,000 per source in the order you chose are returned.
- Agoda's review service answers about half of its requests with an empty page, which looks exactly like a hotel with no written reviews; the Actor asks up to 16 times (in small parallel waves, a few seconds) before it calls a hotel's list empty, then names the reason in the status (no reviews in the chosen language, rated but no written reviews, or no reviews yet).
- 'Highest' and 'Lowest rated first' follow Agoda's own order page by page; Booking.com reviews are mixed into each page, so the order across sources is approximate. With 'Reviews newer than' or 'Only new reviews' the run reads newest first instead.
- With rating, source or language filters, a hotel is read until 3 pages in a row hold no matching review, so a rare match deep in a long list can be missed; the status names such hotels.
- A hotel name matches the first property Agoda's search suggests; check the matched names in the run status, or use links or IDs.
- If Agoda refuses a hotel even after retries, it is named in the status and not charged. The run stops, keeping what it has and naming the hotels not tried, after 2 refused hotels in a row before any hotel was read, 3 in a row after that, or 90 seconds spent on refused hotels in total. After 25 entries that are not found on Agoda (not a property, an unknown ID or an unmatched name), it stops too, to keep a mistyped list from costing time.
- No room prices or availability: reviews and review scores only.
- Scores and reviews change constantly; a run is a snapshot of when it ran.
- Dates are what the page shows: review date, reply date and month of stay, no exact check-in or check-out dates.
- The name 'Agoda API' describes what this tool gives you: it is an unofficial tool, not made or endorsed by Agoda.
FAQ
Questions buyers ask
Is there a cheaper Agoda reviews scraper on Apify?
Yes. This Actor costs $0.50 per 1,000 reviews on the free plan and $0.40 on paid plans, plus $0.0003 per hotel checked and $0.005 per run, cheaper than the leading tools, and one run reads any number of hotels. This tool doesn't return live room prices.
How do I get Agoda reviews into Google Sheets, n8n or an AI agent?
Two ways. For a fixed workflow, add Apify's n8n or Make node, choose **Run Actor**, enter aurelix/agoda-reviews-scraper and map the dataset to the next step, or use Apify's Google Sheets integration. For an AI agent (Claude, ChatGPT, Cursor or an n8n AI Agent node), add https://mcp.apify.com/?tools=aurelix/agoda-reviews-scraper as an MCP server and ask for a hotel's reviews in plain words. Runs bill your own Apify account at the same per-review price.
How much does the Agoda API cost?
$0.50 per 1,000 reviews ($0.40 on paid Apify plans), billed through your Apify account; you pay only for results. Apify's free plan includes $5 of credit a month, enough for about 10,000 reviews.
How many reviews can I get per hotel?
Every written review Agoda lists for the hotel, from Agoda guests and from Booking.com guests, up to the 'Reviews per hotel' you set. Agoda's review list stops at 5,000 per source, so a very big hotel (e.g. one with 5,600 Booking.com reviews) returns the first 5,000 of them in the order you chose. The review counts next to the scores (agoda_review_count, booking_review_count) also include guests who left a rating without text, so they are higher than the number of written reviews.
Can I find a hotel by name?
Yes. Type the hotel name with its city, e.g. 'Ibis Budapest City'. The Actor asks Agoda's own search box and uses the first property it suggests; the run's status says which hotel each name matched, so you can check it. For exact control use the hotel link or its Agoda ID.
Which links work?
Any Agoda hotel page link in any language version (e.g. /de-de/...), the hotel's reviews page, and links that carry the hotel ID such as ?hid=10715 or selectedproperty=10715. Tracking parameters are ignored. Links to other sites are skipped and named in the status.
Are reviews translated?
Agoda shows each review in English where it has a translation. You get that English text in title and text, and the guest's own words in original_title and original_text, with the language code in language. Use 'Review language' to keep only reviews written in one language.
How does 'Only new reviews' work?
The Actor remembers, per hotel and for two years, the review IDs it returned and the newest review date per source, in one record in your Apify account. The first run returns the newest reviews, up to 'Reviews per hotel'. Later runs read newest first and return only reviews newer than what you already received: each source stops at its first review already returned or older than the newest date you received from it (a source you have received nothing from yet starts at the hotel's newest date), so older reviews a capped first run left out are never sold to you later as new. To start with a hotel's full history, set 'Reviews per hotel' high enough on the first run.
What is 'hotel-checked'?
A charge of $0.0003 ($0.00025 on paid plans) for each real Agoda property whose review list was read in a run, whatever the number of reviews it returns, also when it has no written reviews yet. It pays for checking a hotel, e.g. on days with nothing new in 'Only new reviews' mode. Entries that are not Agoda properties, names Agoda's search does not match and hotels Agoda did not answer for are not charged.
Does it return reviewer names?
Yes, as Agoda shows them publicly: the reviewer's display name and country on every review. Nothing behind a login is read. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab.
Does it need a proxy?
It uses Apify's datacenter proxy by default, which costs you nothing extra: the run price is per event only. Agoda slows down a connection that reads a lot, so the Actor moves to a fresh proxy IP for each hotel and whenever Agoda starts answering with empty or repeated pages. You can turn the proxy off; long runs may then return fewer reviews. Residential proxy is not offered.
Can I sort by most helpful or lowest rated?
Yes, with 'Review order'. With 'Reviews newer than' or 'Only new reviews' the Actor reads newest first instead, so it can stop at the first page with nothing to return; the run status says so. With rating, source or language filters it stops reading a hotel after 3 pages in a row with no matching review.
Is it legal to scrape Agoda reviews?
It reads only public data any logged-out visitor can see: the guest reviews, scores and hotel details on Agoda's public review pages and the JSON those pages load, on paths Agoda's robots.txt does not disallow. It never logs in and never solves CAPTCHAs; reviewer display names and countries are returned as Agoda shows them. Agoda's terms discourage automated access; keep your use to analysis of public data. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab; if Agoda formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. privacy laws; this is not legal advice.
Guides
Tutorials using this tool
Related
Related tools
Try the Agoda API
Open it on the Apify Store, paste the example input above and click Start. Results download as CSV, Excel or JSON.