Agoda Hotels Scraper
Pricing
from $0.75 / 1,000 hotels
Agoda Hotels Scraper
Agoda hotels scraper: search by city, area or hotel and get one row per hotel with its price and availability for your dates, with and without taxes, free cancellation, breakfast, guest review score, stars and location. Ask for room offers to get every room and rate on the hotel's page.
Pricing
from $0.75 / 1,000 hotels
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Features
Share
Agoda hotels scraper for a city, an area or a list of hotels: one row per hotel with its price for your dates, taxes in and out, free cancellation, breakfast, guest score, stars and where it is on the map.
Type a destination, set your dates and party, and you get Agoda's hotel list for that stay in the order Agoda ranks it. List hotels by link or name instead, or switch on room offers, and each row also carries the hotel's description, amenities and every room with its price and conditions. Guest reviews can come along too, newest first, each one a row of its own at $0.0013.
Agoda only quotes a price for a concrete stay. Leave the dates empty and the run prices a one-night stay 30 days from today and writes those dates on every row, so read checkIn on the first row before you trust the prices.
| Input | Cities or areas (Bangkok, Shibuya), Agoda hotel links, IDs or names, plus dates and party |
| Output | One row per hotel: price per night and for the stay, guest score and count, stars, area, coordinates, free cancellation, breakfast; room offers on request; guest reviews on request, one row per review |
| Ceiling | 5,000 hotels per destination, 50 destinations or 500 hotels per run, 200 reviews per hotel |
| Speed | About 50 hotels in 5 seconds from a city search, 40 with 20 reviews each in about 15 seconds, about one a second with room offers (measured on our runs) |
| Account needed | None from you |
| Price | $0.75 per 1,000 hotels, the same rate on every plan. The free plan's $5 a month covers about 6,600. Guest reviews, when you ask for them, are $1.30 per 1,000 |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/agoda-hotels-scraper |
| Set one field | destinations, labelled "Destinations" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/agoda-hotels-scraper |
| How often | Daily, to follow the prices of the same dates over time |
🔍 What Agoda Hotels Scraper does
It runs the search Agoda's own site runs when you pick a city and dates, page after page, and writes down every hotel on it until it has the number you asked for. An area name such as Sukhumvit or Shinjuku narrows the search to that part of the city.
The price on a row is for the stay and the party you asked about, in the currency you chose: the cheapest room per night before taxes, the same with taxes and fees, and the whole stay. Change the dates, adults, children or rooms and the prices change with them.
The filters are Agoda's own: stars, guest score, price per night, hotels or homes, free cancellation, breakfast, pay at the hotel. With free cancellation or breakfast on, the price shown is the cheapest room that has it.
For a hotel you list, or for every hotel when Add details and every room offer is on, it also reads the hotel's own page: the description, check-in times, amenities by group, Agoda's sub-scores, room types with beds, size and view, and every room offer for your dates.
With Add guest reviews on, each hotel's newest written reviews follow its row, up to 200, one row per review at $0.0013 each: the score, the title and text, what the guest liked and didn't, and for Agoda's own reviews the guest's country, who they travelled with, the room and the nights. A review never carries the reviewer's name.
📋 What data you get from each Agoda hotel
| What you get | Field |
|---|---|
| Agoda's hotel id, name, link and type | hotelId, name, url, propertyType |
| Stars, guest score, number of reviews, and the year of Agoda's award when it has one | starRating, reviewScore, reviewCount, awardYear |
| Area, city, country and coordinates | area, city, cityId, country, countryCode, latitude, longitude |
| Price per night, with taxes, before the discount, and for the whole stay | pricePerNight, pricePerNightWithTaxes, pricePerNightBeforeDiscount, totalPrice, totalPriceWithoutTaxes, discountPercent, currency |
| Cancellation, breakfast and payment terms of that room | freeCancellation, freeCancellationUntil, cancellationPolicy, breakfastIncluded, payLater, payAtHotel, noCreditCardNeeded |
| Availability | available, roomsLeft |
| Facilities, stations, landmarks, beaches and photos | facilities, nearbyTransport, nearbyLandmarks, nearbyBeaches, imageUrl, imageUrls |
| Where it sits in the search, and whether Agoda marks it sponsored | searchRank, isSponsored, destination, destinationMatched |
| The stay the price is for | checkIn, checkOut, nights, adults, children, childrenAges, rooms, scrapedAt |
| From the hotel's page (optional): full address, description, check-in times, amenities, policies, nearby places | address, postalCode, description, checkInFrom, checkOutUntil, amenities, amenityGroups, languagesSpoken, policies, nearbyPlaces, nearbyAttractions, highlights |
| From the hotel's page (optional): Agoda's own guest scores | agodaReviewScore, agodaReviewCount, reviewSubscores, reviewScoreDistribution, reviewScoreText |
| From the hotel's page (optional): rooms, every offer and the whole photo gallery | roomTypes, roomOffers, roomTypeCount, offerCount, imageUrls, imageCount |
| From the hotel's page (optional): the short guest quote it shows by its photos | reviewSnippet |
| Guest reviews (optional, $0.0013 each), one row per review: score, title, text, likes and dislikes, date, the stay, where it was written, and the hotel it belongs to | recordType (review), hotelId, hotelName, url, reviewId, rating, ratingText, title, comment, positives, negatives, reviewDate, stayMonth, nights, travellerType, reviewerCountry, roomType, source |
▶️ How to scrape Agoda hotels
- Open Agoda Hotels Scraper and click Try for free.
- Put cities or areas into Destinations, one per line, or hotel links into Hotels.
- Set Check-in date, Check-out date and the party. Do it even for a quick test.
- Set Max hotels per destination. A hundred is a good first run.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
Leave both lists empty and you get one free sample row showing the shape of the output, with nothing searched.
💰 How much does it cost to scrape Agoda hotels?
$0.75 per 1,000 hotels, which is $0.00075 each, the same rate on every plan, with or without room offers. On the free plan, the $5 Apify gives you each month covers about 6,600 hotels.
Guest reviews are $1.30 per 1,000, $0.0013 each on every plan, charged only for the reviews you get.
You pay per hotel row and per review row. Note rows (a city Agoda doesn't know, a search with no hotel, a stop at your time or cost limit) and the sample row are free, and a hotel already returned in the run is not returned or charged again.
📥 What you give it
{"destinations": ["Bangkok", "Shibuya"],"checkIn": "2026-12-10","checkOut": "2026-12-12","adults": 2,"rooms": 1,"currency": "USD","freeCancellationOnly": true,"maxResultsPerDestination": 100}
| Field | Default | What it is |
|---|---|---|
destinations | none, the form starts with Bangkok | Up to 50. A city or area as Agoda spells it, an Agoda city ID, or the link of a city search from agoda.com. A hotel link here is read as a hotel. |
hotels | none | Up to 500. A hotel's link from agoda.com, its Agoda ID, or its name. Always read with its page and room offers. |
checkIn, checkOut | 30 days from today | The stay, as YYYY-MM-DD. Check-out must be after check-in, at most 30 nights later. A past date is refused before anything runs. |
nights | 1 | Used when checkOut is empty. |
adults, children, childrenAges, rooms | 2 adults, no children, 1 room | Up to 36 adults, 9 children and 9 rooms, an adult per room. A child counts as 8 years old unless you list ages, 0 to 17. |
currency | USD | 53 currencies. |
language | en-us | 33 languages, for facilities, areas, descriptions and room names. A hotel's name changes only where Agoda has one in that language, as in Japanese or Thai. |
sortBy | recommended | recommended, price_low_to_high, price_high_to_low and top_guest_ratings are Agoda's own orders. guest_score_low_to_high puts hotels with no score yet last and needs a few hotels per destination: 1 in a small town, about 6 in Bangkok, 28 in Bali. Ask for fewer and a free note says the number to use. |
starRatings | any | Any of 1 to 5. A 4.5 counts as 4. |
minReviewScore, maxReviewScore | any | Guest score out of 10. Hotels with no score yet are left out once either is set. |
minPrice, maxPrice | any | Per room per night before taxes, in your currency. |
propertyType | all | all, hotels or homes. |
freeCancellationOnly, breakfastIncludedOnly, payAtHotelOnly | off | Only hotels with a room that has it. |
onlyAvailable | off | Leave out hotels sold out for your dates. |
includeRoomOffers | off | Read each destination hotel's page too, with every room offer. |
includeReviews | off | Add each hotel's newest guest reviews as rows of their own, listed hotels included, at $0.0013 a review. |
reviewsPerHotel | 20 | 1 to 200 reviews a hotel when includeReviews is on. |
maxResultsPerDestination | 100 | 1 to 5,000 hotels per destination. |
maxItems | 0 | A cap for the whole run. 0 means no cap beyond the one above. |
The filters apply to destination searches. Hotels you list come back whatever their price or score.
📤 What you get back
A real hotel row from a search with Add guest reviews on, cut short, then its first review row:
{"hotelId": 177997,"name": "The Bless Hotel & Residence","url": "https://www.agoda.com/bless-residence/hotel/bangkok-th.html","propertyType": "Hotel","starRating": 4,"awardYear": "2025","reviewScore": 8.5,"reviewCount": 13062,"area": "Sukhumvit","city": "Bangkok","cityId": 9395,"country": "Thailand","countryCode": "TH","latitude": 13.7337676461285,"longitude": 100.567924976349,"available": true,"currency": "USD","pricePerNight": 59.81,"pricePerNightWithTaxes": 64,"pricePerNightBeforeDiscount": null,"totalPrice": 128,"totalPriceWithoutTaxes": 119.62,"discountPercent": null,"freeCancellation": true,"freeCancellationUntil": "2026-12-07T00:00:00.000+07:00","cancellationPolicy": "FreeCancellation","breakfastIncluded": true,"payLater": true,"payAtHotel": false,"noCreditCardNeeded": false,"roomsLeft": 1,"isSponsored": false,"facilities": ["Swimming pool", "Airport transfer", "Wi-Fi [free]", "Openable window"],"nearbyTransport": [{ "name": "Phrom Phong BTS Station", "distanceKm": 0.42 }],"nearbyLandmarks": [{ "name": "Siam Paragon", "distanceKm": 3.86 }],"nearbyBeaches": [],"imageUrl": "https://pix8.agoda.net/hotelImages/177997/0/229685bbcf34112e88bcfcf75f44976d.jpeg?va=1&ce=2","checkIn": "2026-12-10","checkOut": "2026-12-12","nights": 2,"adults": 2,"children": 0,"rooms": 1,"searchRank": 10,"destination": "Bangkok","destinationMatched": "Bangkok","scrapedAt": "2026-11-03T08:55:26.600Z"}
{"recordType": "review","hotelId": 177997,"hotelName": "The Bless Hotel & Residence","url": "https://www.agoda.com/bless-residence/hotel/bangkok-th.html","reviewId": 1197056548,"rating": 9.6,"ratingText": "Exceptional","title": "Great location","comment": "Steps away from the BTS and mall. Room was clean and staff very friendly.","positives": null,"negatives": null,"reviewDate": "2026-10-20T11:05:30+07:00","stayMonth": "October 2026","nights": 4,"travellerType": "Couple","reviewerCountry": "Canada","roomType": "Superior Room","source": "Agoda","scrapedAt": "2026-11-03T08:55:26.600Z"}
| Field | How to read it |
|---|---|
hotelId | Agoda's own id, stable between runs. Use it as your key. |
pricePerNight | The cheapest room for your party, per room per night, before taxes. totalPrice is the whole stay with taxes and fees. |
pricePerNightBeforeDiscount | The struck-through price when Agoda shows one, otherwise null. |
reviewScore, reviewCount | The score and count Agoda displays for the hotel. agodaReviewScore and agodaReviewCount, on rows with the page read, count only reviews from Agoda's own guests. |
available | False when the hotel is sold out for your dates; its prices are null. |
freeCancellationUntil | The last day to cancel for free, in the hotel's own time zone. |
roomOffers | One entry per offer: room, price per night with and without taxes, total, free cancellation and its policy text, breakfast, pay later or at the hotel, rooms left, and supplierId, Agoda's code for who supplies that offer. Cheapest first. |
recordType | review on a guest review's row, which also carries its hotel's hotelId, hotelName and url. Review rows come right after their hotel, newest first, at most reviewsPerHotel. source says where the review was written, Agoda or Booking.com, as the hotel page labels it. Agoda's own carry the text in comment with the stay; Booking.com's carry positives and negatives instead. |
reviewSnippet | The short guest quote the hotel's page shows by its photos, on rows with the page read. |
🧾 Reading the output
Anything with ok: false on it is a note, not a hotel or a review.
reviewScore and reviewCount are the score and count Agoda displays for the hotel. Its review rows are written reviews behind them, as many as you asked for, not the count. None means no written review yet, common for homes with a few stays.
| Row | How to spot it | Charged |
|---|---|---|
| A hotel | hotelId set, no ok field, no recordType | yes |
| A guest review | recordType is review | yes, $0.0013 |
| The sample row | _sample is true | no |
| A note | ok is false and errorCode says why | no |
errorCode | What it means |
|---|---|
NOT_FOUND | Agoda has no city, area or hotel matching that line. |
NO_RESULTS | The search ran and found no hotel for these dates, guests and filters. |
NOT_SERVED | This was not served this run. Re-run it later. |
BAD_INPUT | A value could not be used; details says which, why and what to set instead. |
TIME_LIMIT | The run reached its time limit, or a sort needs more time than the run had. What came before is delivered and charged; give it a longer timeout for the rest. |
COST_LIMIT | The run reached the maximum cost you set, or that cost doesn't cover the fewest hotels a sort needs. Raise it for more. |
💡 What people use it for
- Checking what one hotel charges for the same weekend every morning, keyed on
hotelId. - Comparing a whole street of hotels on price, score, free cancellation and what recent guests wrote, before a group booking.
- Watching where your own property ranks in its city's search, and who is sponsored above it.
- Pulling every room and rate of a short list of hotels for a revenue review.
🚧 What it does not do
- No reviewer names or photos. A review keeps its words, score and stay, not who wrote it.
- Hotels and homes only. No flights, activities or transfers.
- Prices move. A row is what Agoda quoted at
scrapedAt, for that party, those dates, that currency. - It is not an official Agoda tool. Dami's Studio is independent and is not affiliated with or endorsed by Agoda, or by any other company named on this page.
🧭 Which hotel scraper do you need?
| If you want | Use |
|---|---|
| Agoda hotels with prices for your dates, and every room offer | This one |
| Hotels on Booking.com with live prices and scores for your dates | Booking.com Hotels Scraper |
| Live hotel prices for your dates, as Google Hotels shows them | Google Hotels Scraper |
| Airbnb listings with prices, ratings and coordinates for a place | Airbnb Listings Scraper |
| Reviews of a hotel on Tripadvisor | Tripadvisor Reviews Scraper |
| Guest reviews of hotels on Booking.com | Booking.com Reviews Scraper |
❓ Questions people ask
Do I need an Agoda account?
No. Nothing to paste, nothing that expires.
Why is the price different from what I see on Agoda?
Check the dates, party and currency on the row first: a different stay is a different price. Agoda also keeps some deals for signed-in members, and this reads what a signed-out visitor sees.
Can I get every room and rate for a hotel?
Yes. List the hotel under Hotels, or switch on Add details and every room offer for a destination. roomOffers holds every offer, cheapest first.
Can I get the guest reviews too?
Yes. Switch on Add guest reviews and set Reviews per hotel, up to 200. Each review is its own row after its hotel, at $0.0013.
Does a sold-out hotel still come back?
Yes, with available false and no price. Switch on Only hotels with rooms left to drop them.
Can I call it from code or connect it to an AI assistant?
The API tab has code for Python, JavaScript and the CLI. MCP clients like Claude and ChatGPT use https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/agoda-hotels-scraper, billed to your Apify account at the same price.
Is scraping Agoda legal?
These are public search results, hotel pages and reviews, read the way a signed-out visitor sees them, with no account and nothing private. Guest reviews are people's own words, so treat what you keep as personal data under GDPR and similar laws, and keep only what you need. Agoda's own terms still apply to what you do with the data. Apify's write-up on the legality of web scraping is a good start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the destination or hotel, the dates and the run ID; a note row's errorCode and details usually name the reason already.