Agoda Hotel Reviews Scraper
Pricing
$2.00 / 1,000 results
Agoda Hotel Reviews Scraper
Pull guest reviews for any Agoda hotel — rating, title, full review text, the untranslated original, per-review pros/cons, reviewer name/country, traveler type, room type, length of stay, check-in dates, helpful votes, and photos — straight from a hotel URL. No login, no browser to manage, fast JSON.
Reviews come back newest first (or by the sort you choose), and the run also tells you the hotel's total review count so you know how deep the well is. A mega-hotel like Marina Bay Sands has tens of thousands of reviews — page through as many as you want.
Pricing: $2.00 per 1,000 reviews (pay per result). You're only charged for reviews actually returned.
What you get
Every review returns:
| Field | Description |
|---|---|
review_id | Stable Agoda review id |
rating | Score out of 10 |
rating_text | Word rating ("Exceptional", "Excellent" …) |
title | Review title (translated) |
text | Full review text (translated to your chosen language) |
original_title / original_text | The review exactly as the guest wrote it |
positives / negatives | Separate "liked / disliked" notes when present |
review_date | When the review was written (ISO 8601) |
check_in_date / check_out_date | The guest's stay dates |
length_of_stay | Nights stayed |
reviewer_name | Reviewer display name |
reviewer_country / reviewer_country_code | Reviewer's country |
traveler_type | Solo, Couple, Family, Business … |
room_type | Room the guest booked |
helpful_votes | How many found the review helpful |
responder_name / response_date | Hotel's reply, when present |
photos | Guest-uploaded photos, when present |
provider | Review source (Agoda, and partner sites) |
Input
| Field | Required | Description |
|---|---|---|
hotel | ✓ | Agoda hotel page URL, a ?hid= URL, or the numeric hotel id |
max_reviews | How many reviews to return, newest first (default 100, up to 3000) | |
sort | most_recent, most_helpful, rating_high, or rating_low | |
language | Locale for translated text (default en-us) |
{ "hotel": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html", "max_reviews": 100, "sort": "most_recent" }
Example output
{"review_id": 1144429097,"rating": 9.2,"rating_text": "Exceptional","title": "It was the best hotel, but...","text": "The infinity pool and the view were unforgettable...","original_title": "最高のホテルでしたが…","review_date": "2026-07-09T01:38:00+07:00","check_in_date": "2026-07-06T00:00:00+07:00","length_of_stay": 1,"reviewer_name": "YUKA","reviewer_country": "Japan","traveler_type": "Couple","room_type": "Sands Premier King City View","helpful_votes": 0,"provider": "Agoda"}
How to run it
API:
curl -X POST "https://api.apify.com/v2/acts/good-apis~agoda-reviews-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"hotel":"https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html","max_reviews":100,"sort":"most_recent"}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("good-apis/agoda-reviews-scraper").call(run_input={"hotel": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html","max_reviews": 100, "sort": "most_recent"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["rating"], item["title"])
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('good-apis/agoda-reviews-scraper').call({hotel: 'https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html',max_reviews: 100, sort: 'most_recent',});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(r => console.log(r.rating, r.title));
Pagination & depth
One run pages through the hotel's reviews for you, up to max_reviews (up to 3000). Reviews are returned newest first by default; set sort to reorder. Agoda aggregates reviews from multiple providers — the scraper reads the largest (Agoda's own) first, then falls through to partner providers to reach your requested count.
FAQ
Do I need a login or API key? No — it reads public hotel reviews.
Where do I find the hotel URL? Open the hotel on agoda.com and copy the address bar. You can also paste just the numeric hotel id.
Why are some reviews rating-only (no text)? Many Agoda guests leave a score without writing a comment — those come back with the rating filled in and the text empty. That's the genuine review, not a gap.
Why are reviews in different languages? Agoda guests write in their own language; the scraper returns the text translated to your chosen language, plus the untranslated original_text.
What if a hotel has no reviews? The run succeeds with an empty dataset — you're not charged for zero results.
Do you have hotel search and hotel detail too? Reviews is the surface offered here; hotel search/detail read from a different Agoda endpoint.