Agoda Reviews Scraper avatar

Agoda Reviews Scraper

Pricing

from $3.00 / 1,000 review scrapeds

Go to Apify Store
Agoda Reviews Scraper

Agoda Reviews Scraper

Scrape Agoda hotel guest reviews by hotel URL or ID — rating, title, text, pros/cons, reviewer profile, hotel response, and dates. HTTP-only, MCP-ready.

Pricing

from $3.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Scrape Agoda hotel guest reviews by hotel URL or hotel ID — rating, title, full text, pros/cons, reviewer profile, traveler type, room type, hotel response, and dates. HTTP-only, fast, and MCP-ready for AI agents.

What it does

Give it one or more Agoda hotel pages (or numeric hotel IDs) and it returns every guest review as a clean, flat JSON record. It reads Agoda's own review API directly — no browser, no login — and paginates through the full review history per hotel, up to your chosen limit. Optionally pulls reviews from all aggregated providers (Agoda + partner sources) for maximum coverage.

When to use it

  • Hotel & OTA revenue managers monitoring guest sentiment on their own and competitor properties.
  • Hospitality analysts building rating trend and review-volume datasets.
  • Market researchers mining traveler-type, country, and room-type breakdowns.
  • AI agents / LLM pipelines that need structured review data from a single tool call.

Do not use it for hotel prices/availability or search results — this actor returns reviews only. One hotel URL per entry (not a city or search URL).

Output

One dataset item per review:

FieldDescription
hotelIdNumeric Agoda hotel ID
hotelReviewIdUnique review ID
ratingScore 0–10
ratingTextAgoda label (e.g. "Exceptional")
reviewTitleReview headline
reviewTextMain review body
positives"Liked" text (when present)
negatives"Disliked" text (when present)
reviewDateISO 8601 review timestamp
checkInDateISO 8601 check-in date
checkInMonthYearHuman-readable stay month
lengthOfStayNights stayed
helpfulVotesHelpful-vote count
reviewerNameDisplay name
reviewerCountryReviewer country
travelerTypeSolo / Couple / Family / Business, etc.
roomTypeRoom type stayed in
languageOriginal review language code
providerSource (Agoda, Booking.com, etc.)
providerIdNumeric provider ID
hotelResponderNameHotel's responder name (if the hotel replied)
hotelResponseDateDate of the hotel's response
imagesGuest-uploaded image URLs
scrapedAtISO 8601 scrape timestamp

Pricing

Pay-per-event:

  • Actor start — $0.00005 per run.
  • Review scraped$0.003 per review returned.

100 reviews ≈ $0.30. Costs are capped by maxReviewsPerHotel and shown in the run log/status before charging begins. Both event-based and usage-based billing are available; pick whichever fits at run time.

Input

FieldTypeNotes
hotelUrlsarrayAgoda hotel page URLs. hotelId auto-extracted.
hotelIdsarrayNumeric hotel IDs (skips the page fetch, faster).
maxReviewsPerHotelintegerDefault 100. Set high/0 to pull all.
sortByenummost_recent (default), most_helpful, highest_rated, lowest_rated.
includeAllProvidersbooleanPull partner-provider reviews too. Default false.
onlyReviewsWithTextbooleanSkip rating-only entries. Default false.
proxyConfigurationobjectDefaults to Apify Residential (required).

Example input

{
"hotelUrls": [
"https://www.agoda.com/the-berkeley-hotel-pratunam/hotel/bangkok-th.html"
],
"maxReviewsPerHotel": 200,
"sortBy": "most_recent",
"includeAllProviders": false
}

Direct hotel IDs

{
"hotelIds": ["461790"],
"maxReviewsPerHotel": 500,
"sortBy": "most_helpful"
}

Usage from the API (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('khadinakbar/agoda-reviews-scraper').call({
hotelIds: ['461790'],
maxReviewsPerHotel: 100,
sortBy: 'most_recent',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Usage from Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("khadinakbar/agoda-reviews-scraper").call(run_input={
"hotelIds": ["461790"],
"maxReviewsPerHotel": 100,
"sortBy": "most_recent",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["reviewTitle"])

MCP / AI agents

Exposed through Apify MCP as khadinakbar/agoda-reviews-scraper. It takes a hotel URL or ID and returns structured review JSON — a natural single tool call for Claude, ChatGPT, or any agent doing hospitality research or sentiment analysis. Charged $0.003 per review.

How it works

The actor calls Agoda's public ReviewComments endpoint over plain HTTP through Apify Residential proxies, paces requests to respect Agoda's rate limits, and paginates until it reaches your maxReviewsPerHotel cap or exhausts the reviews. Reviews are de-duplicated by review ID. When a hotel returns nothing after repeated attempts, that hotel is skipped and logged in the RUN_SUMMARY key-value record; if every hotel is blocked, the run fails honestly rather than reporting a false success.

FAQ

How do I find a hotel ID? Open the hotel on Agoda; the numeric hotelId is in the page URL query string or page source. Or just pass the full hotel URL and the actor extracts it.

Can I get all reviews for a large hotel? Yes — set maxReviewsPerHotel high (or 0). Large hotels have tens of thousands of reviews; the run will take longer and cost more.

Why residential proxies? Agoda rate-limits datacenter IPs aggressively. Residential is the default and recommended setting.

Does it get reviews in English? Agoda returns each review with its original text; the language code is in the language field.

Are hotel responses included? When a hotel has publicly replied, hotelResponderName and hotelResponseDate are populated.

This actor collects only publicly available review data from Agoda's own review endpoints. It performs no login and accesses no private or personal account data. You are responsible for using the output in compliance with Agoda's Terms of Service, applicable data-protection laws (including GDPR/CCPA where relevant), and any restrictions on personal data. Use for lawful research, analytics, and monitoring purposes only.