Agoda Reviews Scraper
Pricing
from $3.00 / 1,000 review scrapeds
Agoda Reviews Scraper
Scrape Agoda hotel guest reviews by hotel URL or ID: rating, title, text, pros and cons, reviewer profile, hotel response and dates.
Pricing
from $3.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a month ago
Last modified
Categories
Share
What is Agoda Reviews Scraper?
Agoda Reviews Scraper turns Agoda hotel URLs or hotel IDs into a dataset with one row per guest review. Each row returns the score and score label, review title, review text, positives and negatives, review date, check-in month, length of stay, reviewer first name and country, traveler type, room type, language, review source and whether the hotel replied. Hotel revenue managers, hospitality consultants, travel analysts, reputation teams and AI agents use it to track guest sentiment, compare properties and spot recurring complaints across Asia-Pacific hotels and beyond.
Why hospitality teams use this Agoda review scraper
- Structured pros and cons.
positivesandnegativesarrive as separate fields when the source splits them, ready for sentiment analysis. - Who stayed and how.
travelerType,roomType,lengthOfStayandreviewerCountrylet you segment feedback by guest profile. - Partner reviews in one place.
includeAllProvidersadds reviews Agoda aggregates from partner sources such as Booking.com, tagged inprovider. - Monitoring-friendly sort.
most_recentpulls the newest reviews first, so scheduled runs surface fresh feedback quickly. - Text-only option.
onlyReviewsWithTextskips score-only entries for cleaner NLP input.
Best fit for this Actor
- Designed for hotel review monitoring and benchmarking from known Agoda properties.
- Use it when you need guest scores, text and traveler context per review for dashboards or sentiment models.
- For the same property on Booking.com with its own review set, continue with Booking.com Reviews Scraper and compare scores across channels.
- When you also track owner replies on Tripadvisor, then use Tripadvisor Reviews Scraper — Ratings, Text & Owner Replies.
Example workflow: from a competitor set to a weekly sentiment report
A revenue manager at a Bangkok hotel starts with four competing properties. They paste the Agoda hotel IDs into hotelIds, set sortBy to most_recent, maxReviewsPerHotel to 50 and onlyReviewsWithText on. The dataset returns rating, reviewTitle, positives, negatives, travelerType and roomType for each review. They feed the text into a sentiment model, compare average scores by traveler type, export the summary to their weekly deck and schedule the same input every Monday.
Input
| Field | Type | What it controls |
|---|---|---|
hotelUrls | array | Agoda hotel page URLs; the hotel ID is read from each page. |
hotelIds | array | Numeric Agoda hotel IDs such as 461790, used directly for a faster start. |
maxReviewsPerHotel | integer | Cap on reviews per hotel. Default 100. |
sortBy | string | most_recent, most_helpful, highest_rated or lowest_rated. |
includeAllProviders | boolean | Add reviews from Agoda's partner sources. Default false. |
onlyReviewsWithText | boolean | Keep only reviews with written text. Default false. |
proxyConfiguration | object | Default Apify Residential proxy. |
{"hotelUrls": ["https://www.agoda.com/the-berkeley-hotel-pratunam/hotel/bangkok-th.html"],"hotelIds": ["461790"],"maxReviewsPerHotel": 50,"sortBy": "most_recent","includeAllProviders": true,"onlyReviewsWithText": true}
Output
One row per review.
| Field | What it contains |
|---|---|
hotelId, hotelReviewId | Hotel and review IDs |
rating, ratingText | Score out of 10 and its label, such as Exceptional |
reviewTitle, reviewText | Headline and full review text |
positives, negatives | Liked and disliked sections when the source splits them |
reviewDate, checkInDate, checkInMonthYear, lengthOfStay | Review and stay dates |
helpfulVotes | Helpful votes on the review |
reviewerName, reviewerCountry | Reviewer first name and country as shown |
travelerType, roomType | Guest profile and room booked |
language | Review language |
provider, providerId | Review source, such as Agoda or Booking.com |
hotelResponderName, hotelResponseDate | Who replied for the hotel, and when |
images | Guest photo URLs when the review includes them |
scrapedAt | Collection time |
{"hotelId": 461790,"hotelReviewId": 1188767364,"rating": 10,"ratingText": "Exceptional","reviewTitle": "Best Hotel in Bangkok","reviewText": "Really amazing hotel with good facilities and customer service. Clean, good breakfast and friendly staff.","positives": "","negatives": "","reviewDate": "2026-09-30T11:34:00+07:00","checkInDate": "2026-09-29T00:00:00+07:00","checkInMonthYear": "September 2026","lengthOfStay": 2,"helpfulVotes": 0,"reviewerName": "Priya","reviewerCountry": "Switzerland","travelerType": "Family with young children","roomType": "Premier Family Room, North Tower","language": "en","provider": "Agoda","providerId": 332,"hotelResponderName": "The Berkeley Hotel Pratunam","hotelResponseDate": "2026/10/01 04:03:08","images": [],"scrapedAt": "2026-10-01T12:38:13.155Z"}
Agoda-sourced reviews usually carry the story in reviewText, while partner reviews such as Booking.com often split it into positives and negatives. Read all three fields together for complete guest feedback.
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay one Review scraped event per review saved to the dataset and one small Actor Start event per run, and Apify platform usage for compute and residential proxy is billed on top. The live Pricing tab on this page shows the current event prices.
Worked example: four hotels with maxReviewsPerHotel set to 50 save at most two hundred review rows, so the run costs up to that many review events, one start event and its platform usage.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~agoda-reviews-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"hotelIds": ["461790"], "maxReviewsPerHotel": 20, "sortBy": "most_recent"}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/agoda-reviews-scraper").call(run_input={"hotelUrls": ["https://www.agoda.com/the-berkeley-hotel-pratunam/hotel/bangkok-th.html"],"maxReviewsPerHotel": 50,"onlyReviewsWithText": True,})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(review["rating"], review["travelerType"], review["reviewTitle"])
Use with AI agents (MCP)
Connect the Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:
Pull the 30 most recent Agoda reviews for hotel ID 461790 with text only, and summarize what families like and dislike about the rooms.
The agent calls the Actor with hotelIds, maxReviewsPerHotel and onlyReviewsWithText, reads rows with get-dataset-items, and filters on travelerType. hotelReviewId and scrapedAt give provenance per review, and maxReviewsPerHotel keeps cost bounded.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A hotel page in your browser | Paste its URL in hotelUrls | The ID is found for you |
| Hotel IDs already in a sheet | Use hotelIds | A faster start per hotel |
| Ongoing monitoring | Sort by most_recent and schedule weekly | Fresh reviews each week |
| Sentiment analysis | Turn on onlyReviewsWithText | Rows with text to analyse |
| Fuller coverage | Turn on includeAllProviders | Partner-source reviews alongside Agoda's |
| Complaint research | Sort by lowest_rated | The most critical feedback first |
Builder's note
I built this for hotel teams who monitor reviews every week, so most_recent is the default sort and each row keeps the traveler type and room booked for segmentation. I found that Agoda mixes its own reviews with partner sources that structure feedback differently, so the Actor keeps reviewText, positives and negatives side by side and tags every row with its provider. Partner reviews are opt-in so the default dataset stays focused on Agoda's own guests.
FAQ
Where do I find the hotel ID?
Paste the hotel URL in hotelUrls and the Actor finds it. The numeric ID also appears in Agoda page links.
Is the hotel's reply included?
Each row shows whether the hotel replied through hotelResponderName and hotelResponseDate.
Can I get only negative reviews?
Sort by lowest_rated and filter rows by rating after the run.
Responsible use
This Actor collects publicly available Agoda review data without logging in. Reviewer names and countries are personal data under laws such as the GDPR, so use them only with a lawful basis, keep data no longer than you need, and respect Agoda's terms. Agoda is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Agoda. For questions or bugs, open a ticket in the Issues tab.