Agoda Reviews Scraper avatar

Agoda Reviews Scraper

Pricing

Pay per event

Go to Apify Store
Agoda Reviews Scraper

Agoda Reviews Scraper

Bulk Agoda guest reviews for one or more hotels: rating, text, date, traveler type, and a review-score breakdown. No login needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Categories

Share

Bulk guest reviews for one or more Agoda properties: rating, text, date, traveler type, room type, and (optionally) a per-property review-score breakdown. No account, login or app needed.

This is a narrow, run-based spin-off of the ../agoda-all-in-one-api actor, built from the same already-verified client code (property-client.ts's reviews() and reviewScores()), for people who just want a bulk dataset of reviews rather than an always-on REST API.

Why

Agoda's public app API needs no login and no request signing for reads — the only quirk is a public per-app client key (AG-Initiator-Api-Key, baked into every install, not a secret). Every parameter this actor exposes was live-tested and classified as a real filter, a shaping/ordering flag, or inert before being wired up.

  • Pagination is honest about its own limits. Agoda's own review endpoint reports a total count that undercounts the real end of the list by roughly 10%, and pages past the real end return stale/repeated/out-of-order items instead of an error. This actor stops on an empty page or a page that repeats a review id it already saw for that property — never by trusting the reported total.
  • PII is opt-in. Reviewer display name, reviewer-uploaded photos, and the hotel's response text (which can name the guest) are excluded by default and only returned when includeReviewerName is set.

Input

FieldRequiredDescription
propertyIdsyesOne or more Agoda property (hotel) ids.
maxReviewsPerPropertynoStop after this many reviews per property (default 200, spending guard — large hotels have thousands).
sortnorecent (default), highest, lowest, helpful.
travelernoTraveler-group filter: all (default), business, couple, solo, family_young_children, family_teens, group.
languageIdsnoFilter to these review-language ids. Switches Agoda's API to "filter mode" (server-fixed ~50-70 items/page, ignores pageSize).
roomTypeIdsnoFilter to these room-type ids. Also switches to filter mode.
providernoKeep only agoda or booking.com reviews (client-side filter on Agoda's merged response). Omit for both.
includeReviewerNamenoDefault false. Opt-in for reviewer display name, uploaded photos, and hotel-response text — personal data.
includeReviewScoresnoDefault true. Also fetch and push one review-score-breakdown row per property.

Output

One dataset row per review (type: "review"), plus one summary row per property (type: "review-scores-summary") when includeReviewScores is true. Each review row carries propertyId, reviewId, provider, rating, title, comment, positives/negatives, dates, traveler group, room type, and (opt-in) reviewer identity. Each summary row carries the combined review score, per-provider score with category grades by traveler-group demographic, and recommendation snippets.

Pricing

Pay-per-event (PPE), tiered by Apify plan (FREE/BRONZE/SILVER/GOLD/PLATINUM/ DIAMOND = 100/92/85/78/72/68% of the FREE price). Priced in line with this account's Agoda All-in-One API for the same events. See the Actor's Pricing tab for exact current prices.

Known limitations

  • Review pagination cycles after roughly total / pageSize + 10% pages — this actor stops when a page comes back empty or repeats a review id already seen, rather than trusting Agoda's own reported total.
  • filter mode (triggered by languageIds/roomTypeIds) ignores maxReviewsPerProperty's page-size shaping — Agoda returns a server-fixed page size in that mode.
  • Review-score category grades are aggregate only; Agoda does not expose a per-review score breakdown, only an overall rating.

Getting started

npm install
npm run start:dev