Agoda Scraper: Hotel and Home Prices, Availability
Pricing
from $0.76 / 1,000 properties
Agoda Scraper: Hotel and Home Prices, Availability
Agoda hotel and home prices for your stay by city, area, landmark, map area, link or id, a whole city per run, no login. Rows: nightly and stay price with taxes, deal, stars, guest score, rooms left, free cancellation. Add room offers, reviews or a country's prices. JSON, CSV, API; pay per property.
Pricing
from $0.76 / 1,000 properties
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Agoda Scraper: Hotel and Home Prices, Availability
Agoda scraper and API for hotels, resorts, apartments, villas, hostels and every other stay on Agoda: search any city, area, landmark, region or property by name, paste Agoda search or property links, give Agoda city ids or property ids, or draw a map circle or box. Every property comes with the price per night and per stay for your dates and guests, with and without taxes, the taxes and fees, the crossed out price and discount, the deal type, rooms left, free cancellation, pay later and pay at the property, breakfast, stars, guest score and review count, scores by source and by traveller type, area and city, map position, distance from the centre, nearby transport and landmarks, and photos. Turn on Property details for every room and offer of the stay, Guest reviews for the reviews with their own filters, and Price market for the prices a visitor in another country sees.
No login, no cookies to give and no browser: the Actor reads Agoda's own site data service through Apify's datacenter proxy (included in the price). It reads a whole city, not only the part one search order shows: on the platform, one Bangkok run met 6,857 properties against the 6,774 Agoda reported and delivered the 5,442 available for the stay (1,415 of the properties met were sold out for the stay or outside the city, skipped free) in 525 seconds, its search marked complete.
What you can do with it
- Rate shopping: the prices of a city's hotels and homes for every check-in day of the next weeks (
checkInWindowDays, up to 60 days, every Nth day withcheckInWindowStepDays), with a free stay dates row per property that ranks its check-ins by price. - Track the prices of the properties you compete with on a schedule: relative dates (
checkInDaysFromToday,nights) keep a scheduled run on "14 days from today" every time. - Compare markets: read the same search as a visitor in Singapore, Japan, Australia or 16 more countries sees it (
priceMarket). - Size a market: the number of properties Agoda reports for a search, the price distribution of the rows delivered (
priceStats), and withincludeFilterCountsAgoda's own filter counts (areas, types, stars, facilities, chains) with their ids. - Read the full room and offer list of a list of properties by link or id, with cancellation terms, payment, breakfast and rooms left per offer.
- Collect guest reviews by source, language, traveller type, score band, reviewer country or date window, for sentiment and quality work.
How to use the Agoda Scraper
- Open the Actor and type one or more places in Places or property names, for example
Bangkok,Sukhumvit,Shinjuku,UbudorMarina Bay Sands, or paste links into Agoda links, ids into Agoda city ids or Agoda property ids, or a circle or box into Map areas. - Set the stay: fixed dates (Check-in date, Check-out date) or Check-in in N days and Nights (when you give neither: 14 days from the run's day, 2 nights), plus Adults (default 2), Rooms (default 1), Children's ages, Currency (default USD) and Language (default en-us). A pasted Agoda link keeps its own dates, guests, currency, filters and sort unless you set them here.
- Add any filters (hotels or homes, property types, stars, guest score, price per night, free cancellation, payment options, breakfast, facilities, room amenities and more) and set Maximum properties per run and Maximum properties per search (default 1,000; set it above a city's size to read the whole city).
- Turn on Property details, Guest reviews or Price trend (free) if you need them, and pick a Price market for local prices.
- Click Start. Download the rows as JSON, CSV, Excel, XML or HTML, or read them through the Apify API.
What data you get
One Property row per property and stay (type: "property"), one Review row per guest review when Guest reviews is on (type: "review"), and free rows: a search row per search and stay (type: "search"), a review walk row per property (type: "reviews"), a stay dates row per property when the run reads several check-in days (type: "stayDates"), place rows with Place suggestions only (type: "place"), status rows for every miss (type: "status": a place Agoda does not offer exactly, with the candidates, place_not_found or place_ambiguous; a property link or id Agoda does not know, not_found; a property with no offer for your stay, not_available; a stay Agoda does not search, stay_refused) and one run summary (type: "summary").
| Field | What it holds | Filled |
|---|---|---|
id, name, nameDefault, url, pageUrl | Agoda property id, name in the run's language and Agoda's default name, the property link with your stay and the plain link | 100% |
propertyType, accommodationType, accommodationTypeId, isHome | Hotel or home, Agoda's type (Hotel, Apartment/Flat, Resort, Ryokan and so on) and its id | 100% |
hostType, hostPropertyCount | company or individual host of a home, and how many properties the host lists | 20% (homes whose host Agoda names) |
stars | star rating (0 when unrated) | 100% (96.4% rated) |
reviewScore, reviewCount | guest score out of 10 and number of reviews | 84.5% |
reviewScoresBySource | the score and count from Agoda, Booking.com, Priceline and other sources Agoda shows | 84.9% |
travellerTypeScores | scores by traveller type (business, couples, solo, families, groups), six grades each | 84.0% |
recommendationPercent | share of guests who recommend it | 28.2% |
reviewSnippets, reviewTopics | short review quotes and the topics guests mention | 46.8%, 50.6% |
country, countryCode, city, cityId, area, areaId | where it is, with Agoda's ids | 100% |
latitude, longitude | map position | 100% of hotels and company homes |
distanceFromCityCenterKm, nearbyTransport, nearbyLandmarks | distance from the centre and nearby places with distances in metres | 98.2%, 99.2%, 85.5% of hotels and company homes |
mainPhoto, photos | main photo and photo links with captions | 100% |
favoriteFeatures, atmospheres, uniqueHighlights | Agoda's feature lines | 94.8%, 86.7%, 23.8% |
price.perNight, price.perNightWithTaxes, price.perRoomPerNight, price.perRoomPerNightWithTaxes, price.perStay, price.perStayWithTaxes, price.taxesAndFeesPerStay, price.currency | the price of Agoda's cheapest offer for the stay, without and with taxes and fees | 100% |
price.crossedOutPerStayWithTaxes, price.discountPercent, price.couponDiscountPerStay | the crossed out price and the discount | a discount on 7.3% of rows |
roomsLeft | rooms left at this price | 100% |
dealType, deals, insiderDeal | Agoda's deal on the shown offer | 73.2% |
cancellationPolicy, freeCancellation, freeCancellationUntil | the offer's cancellation terms | 100% (free cancellation on 84.3% of rows), until date 89.7% |
payLater, payAtHotel, noCreditCardNeeded, paymentModel | payment options of the shown offer | 100% (pay later on 82.8%) |
breakfastIncluded, benefitIds | breakfast in the shown offer and Agoda's benefit ids | 100% (breakfast on 15.8%) |
cheapestRoomSizeSqm, cheapestRoomFacilities | size and facilities of the cheapest room | 88.0%, 50.9% |
bookingsToday, lastBookedAt | Agoda's booking activity lines | 21.3%, 30.2% |
childrenStayFreeAges, familyFeatures | ages that stay free and family features | 64.9%, 100% |
agodaPreferred, agodaGuarantee, sustainableTravel, popular, topRatedInCity, sponsored, awardYear, renovationYear | Agoda's own flags | as shown |
offerSupplierId, supplierIds | the supplier of the shown offer and every supplier Agoda priced the property with | new in this build, not in the city runs below |
available, soldOut | sold out properties are skipped free unless includeSoldOut is on | 100% |
stay | the stay the price is for: dates, nights, adults, rooms, children's ages, currency, language, price market | 100% |
position, walkOrder | the row's place in your sort order, and the order the row came in (a later walk of the city carries no position) | 95.8%, 100% |
search | the search that found the row | 100% |
Measured on the 12,000 property rows of two whole city runs on the platform on 2026-11-03 (Bangkok 5,442 and Tokyo 6,558 rows, 2 adults, 2 nights, USD). In those two cities 53.6% of rows are private persons' homes, whose position and distances those runs left out under an earlier setting; the "of hotels and company homes" figures are over the other rows. Every row now carries them as Agoda serves them.
Property details (add-on)
details on the Property row (two reads per property, charged only when both answered for the row's own property and stay; detailsStatus says read, partial or why not):
rooms: every room of the stay (name, size, beds, occupancy, facilities, amenities, photos) with itsoffers(price, stay total with taxes, free cancellation, cancellation text, payment, pay later, pay at the property, credit card needed, breakfast, benefits, rooms left, discount, supplier id),roomOffersCount,freeCancellationDate, androomsCurrency: Agoda's room list prices in USD or EUR only (EUR when the run's currency is EUR, else USD).exactRates: the exact rates per night and per stay with and without taxes of the rooms Agoda's property page lists (a part of the rooms), in the run's currency; left out in a Price market run.name,englishName,address(full, street, postal code, area, city, country),latitude,longitude,locationHighlight,descriptionHtml,checkInFrom,checkInUntil,checkOutFrom,checkOutUntil,usefulInfo,facilitiesby group,childPolicies,extraBedPolicies,policyNotes,otherPolicies,importantNotes,minimumGuestAge.reviewScore,reviewScoreText,reviewCount,reviewGrades,agodaReviewGrades(each grade withcityAverage, the average of comparable properties in the city),locationRating,thingsYouWillLove.nearbyEssentials,nearbyAttractions,placesOfInterest(with distances and positions),breakfastCuisines,restaurants,photos,videos,bookingsToday,soldOutRooms, andhostfor a home (name, joined, about, response time and rate, average score, reviews, property count).
Every field above was filled on all 56 properties read with details in the final matrix (build 0.1.5), except exactRates, freeCancellationDate and childPolicies (55 of 56), locationHighlight and nearbyAttractions (54), reviewGrades (45), soldOutRooms (40), policyNotes (39), videos (37), restaurants (33), importantNotes (26), checkInUntil and breakfastCuisines (24), checkOutFrom (13) and host (0: no home among them).
Guest reviews (add-on)
One row per review: source (Agoda, Booking.com, Priceline.com, Japanican.com), rating, ratingText, title, text, positives and negatives (Booking.com reviews), originalTitle, originalText, language, reviewDate, checkInDate, checkOutDate, stayMonth, nights, roomType, travellerType, reviewerName (first name), reviewerCountry, reviewerCountryCode, helpfulVotes, response (the property's reply with its date) and photos. Filled on 8,710 Agoda reviews of one hotel: title, text, review date, check-in date, nights, room type, traveller type and reviewer first name 100%, language 99.9%, reviewer country 99.8%, property response 96.5%, photos 2.3%.
The free review walk row per property gives each source's reported count (reportedBySource), how many were delivered and skipped, and Agoda's summary: the score, the grades, the score and count per traveller type, and the review topics with how many reviews mention each and the positive share.
Price trend (free)
With includePriceTrend, priceTrend on the Property row holds Agoda's date picker trend: a price and Agoda's trend word per check-in day, for up to 60 days ahead, for the row's nights, adults and currency. Agoda keeps one for few properties (2 of 8 in the build's probe); priceTrendStatus says whether it was read.
Free search and stay dates rows
The search row gives Agoda's count (totalReported), the distinct properties met (propertiesMet), delivered, repeats, skipped by reason (sold out, outside the place, outside a filter), the walks and their orders, priceStats (minimum, quartiles, median, mean and maximum per room per night with taxes of the rows delivered), the filters sent, and whether the search is complete (completeBy: reported_total or list_stopped_growing) or why not (stoppedBy, incompleteReason).
The stay dates row (with checkInWindowDays above 1) lists, per property, the check-ins it was available on with the price per night and per stay with taxes and a rank (1 = cheapest), the sold out ones, the asked check-ins it was not met for (notMet), the cheapest and the minimum, maximum, mean and median per night.
Example row (shortened, values illustrative)
{"type": "property","id": "1994765","name": "Park Hyatt Bangkok","url": "https://www.agoda.com/park-hyatt-bangkok/hotel/bangkok-th.html?checkIn=2026-12-10&los=2&adults=2&rooms=1&children=0¤cy=USD","propertyType": "Hotel","accommodationType": "Hotel","isHome": false,"stars": 5,"reviewScore": 9.2,"reviewCount": 1764,"reviewScoresBySource": [{ "providerId": 332, "provider": "Agoda", "score": 9.1, "reviewCount": 824 }],"country": "Thailand","countryCode": "TH","city": "Bangkok","cityId": 9395,"area": "Siam","latitude": 13.7436,"longitude": 100.5478,"distanceFromCityCenterKm": 0.4,"price": {"currency": "USD","perNight": 312.5,"perNightWithTaxes": 367.75,"perStay": 625,"perStayWithTaxes": 735.5,"taxesAndFeesPerStay": 110.5,"discountPercent": 0},"roomsLeft": 3,"dealType": "Retail","freeCancellation": true,"freeCancellationUntil": "2026-12-08T00:00:00.000+07:00","payLater": true,"breakfastIncluded": false,"stay": { "checkIn": "2026-12-10", "checkOut": "2026-12-12", "nights": 2, "adults": 2, "rooms": 1, "childrenAges": [], "currency": "USD", "language": "en-us", "priceMarket": "US" },"position": 1,"walkOrder": "bestMatch"}
How much does it cost to scrape Agoda?
You pay per row delivered (pay per event). Prices per 1,000 events:
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Property | $1.06 | $0.97 | $0.88 | $0.76 |
| Property details (add-on, only when on) | $1.31 | $1.20 | $1.09 | $0.94 |
| Review (add-on, only when on) | $1.06 | $0.97 | $0.88 | $0.76 |
| Local market page (only with Price market) | $7.35 | $6.72 | $6.09 | $5.25 |
| Local market run (only with Price market, once per run) | $15.00 | $15.00 | $15.00 | $15.00 |
Each run also pays a one time Actor start of $0.007 on every plan. Platinum and Diamond plans pay the Gold price. The Store pricing card shows these same prices per 1,000 events: "$1.06 / 1,000" on the Property row means one property costs about a tenth of a cent, and "$7.35 / 1,000" on the Local market page row means one local market page costs 0.735 cents (under a cent on every plan). A Local market page is one search page or one room list read through a residential exit in the country you chose, charged only when that read delivered a charged property. A run with a Price market also pays one Local market run of $0.015 ("$15.00 / 1,000" on the card) before its first local read; it pays for the first local pages before any property is delivered, and a run without a Price market never pays it.
- 100 properties cost $0.076 to $0.106 plus the $0.007 start fee ($0.083 to $0.113 for the run).
- 1,000 properties cost $0.76 to $1.06 plus the start fee ($0.767 to $1.067).
- A whole Bangkok search (5,442 properties in the run above) costs about $4.14 to $5.78 with the start fee.
- 100 properties with Property details cost $0.17 to $0.237 plus the start fee ($0.177 to $0.244).
- 1 hotel with 500 reviews costs $0.381 to $0.531 (the Property row and 500 Review rows) plus the start fee ($0.388 to $0.538).
- A Singapore market search of 300 properties (about 3 pages of 100) costs $0.228 to $0.318 for the properties plus $0.016 to $0.022 for the 3 Local market pages, plus the Local market run ($0.015) and the start fee ($0.266 to $0.362).
- The same property and stay is charged once per run, even when two of your searches find it; the same review is charged once per run.
- Free: search rows, stay dates rows, review walk rows, place rows, status rows and the summary, the price trend, repeats, sold out properties (unless you ask for them), properties outside your place or filters, reviews outside your review filters, misses (a place not found, a property not found or not available for your stay), details not read in full (delivered without the details charge) and local market reads that delivered nothing. A run with no usable input charges only the start fee.
- Set a maximum cost per run in the Apify Console: the run stops at the first row it cannot pay and delivers no row unpaid.
Input
| Setting | What it does |
|---|---|
search | Places by name: city, area, landmark, region or property (Bangkok, Sukhumvit, Shinjuku, Ubud, Marina Bay Sands). A name is matched exactly to a place Agoda's own search box offers; "Name, City" or "Name, country code" picks between places of one name. A name Agoda does not offer exactly gets a free row with the candidates. A property's name reads that property. |
startUrls | Agoda search links (city, area, landmark, region or top area, with their dates, guests, currency, filters and sort) and property links. A setting you give replaces the link's own value of that setting. |
cityIds | Agoda city ids (the number after city= in a search link, 9395 for Bangkok). |
propertyIds | Agoda property ids, each read for your stay. |
mapAreas | A circle {"latitude": 13.74, "longitude": 100.56, "radiusKm": 3} (0.1 to 50 km) or a box {"north", "south", "east", "west"} (at most 1 degree by 1.5 degrees). Every property is checked to lie inside. |
placeSuggestionsOnly | Agoda's place suggestions for each name in search (with their ids) as free rows; nothing is searched. |
checkIn, checkOut | Fixed dates (at most 30 nights, check-in at most 480 days ahead). |
checkInDaysFromToday, nights | Relative dates for scheduled runs (default 14 days ahead, 2 nights). |
checkInWindowDays, checkInWindowStepDays | Rate shopping: every search and lookup once per check-in day for up to 60 days, every Nth day, same nights. |
adults, rooms, childrenAges | Guests (default 2 adults, 1 room, at most one room per adult), one age per child. |
currency, language | Any three letter currency code (default USD) and one of 33 Agoda site languages (default en-us). |
priceMarket | Prices as a visitor in one of 19 countries sees them (AU, CN, GB, HK, ID, IN, JP, KR, MY, NZ, PH, SG, TH, TW, VN, AE, DE, FR, CA), read through Apify residential exits in that country. Empty: prices as Agoda shows them to a US visitor. |
hotelsOrHomes, propertyTypes | Hotels only or homes only, and 28 Agoda property types. |
stars, agodaLuxeOnly | 1 to 5 and unrated; Agoda's luxury collection only. |
minReviewScore, maxReviewScore, minReviewCount | Guest score range (1 to 10, one decimal) and fewest reviews. The ceiling is checked on every row (Agoda's own filter has no upper bound). |
minPrice, maxPrice | Price per room per night with taxes and fees in the run's currency, checked exactly on every row. |
freeCancellation, payLater, payAtHotel, bookWithoutCreditCard, breakfastIncluded, kidsStayFree | Booking terms and benefits. |
facilities, roomAmenities, roomBenefits, bedTypes, minBedrooms, minBathrooms, minBeds | Property facilities, room amenities, rate benefits, bed types, bedrooms, bathrooms, beds (sent as Agoda's filters). |
maxDistanceFromCenterKm, nameContains | Distance from the city centre (0 to 10 km) and words in the name, checked on every row. |
agodaFilters | Other Agoda filters by id, "Key:id,id": HotelAreaId, HotelChainId, LandmarkIds, TripPurpose, AffordableCategory, AtmosphereIds (the ids are in a search row's filter counts). |
excludePropertyIds | Property ids a search should not deliver (the ones you already hold), skipped free. |
includeSoldOut | Also deliver sold out properties (no price), charged as Property. |
sortBy, sortLandmarkId | 17 Agoda orders: bestMatch, lowestPrice, highestPrice, topReviewed and its five traveller type variants, mostReviewed, starsHighToLow, starsLowToHigh, closestToCenter, closestToLandmark (with a landmark id), secretDeals, insiderDeals. |
maxItems, maxItemsPerSearch | Property rows for the run (empty: no run cap) and per search and stay (default 1,000, up to 100,000). Above a city's size the search is read in further orders until Agoda's list stops growing. |
includeDetails, maxPropertiesWithDetails | The Property details add-on, and for how many properties. |
includePriceTrend | The free price trend per property. |
includeReviews, maxReviewsPerProperty | The Guest reviews add-on and reviews per property (default 20, up to 10,000). |
reviewsSort, reviewsSources, reviewsLanguages, reviewsTravellerType, reviewsRatings, reviewerCountries, reviewsFrom, reviewsTo | Review order (newest, highest score, lowest score, most helpful) and filters: sources, 45 languages, traveller type, score bands, reviewer countries and a date window (reviewsFrom needs the newest first order). |
includePersonalData | No effect: all public data is always delivered (kept so saved inputs keep working). |
includeFilterCounts | Agoda's filter counts with their ids on the free search row. |
includeRaw | Agoda's whole search answer for each property as raw. |
proxyConfiguration | Apify's datacenter proxy, included (no proxy group or country can be chosen: a run that asks one is refused free; use priceMarket for a country's prices); give your own proxy links only if you need them. |
Every setting is used as sent or the run is refused free with the reason (only the start fee is charged): an unknown setting, a number out of range, a select value Agoda does not offer. Filters a row shows (homes or hotels, type, stars, score, review count, price, cancellation, payment, breakfast, distance, name, place) are checked on each row and a row outside them is skipped free; filters a row does not show (facilities, amenities, beds, bedrooms, bathrooms, raw filter ids) are Agoda's own.
Example inputs
A city for a stay 30 days ahead, in Thai baht:
{ "search": ["Bangkok"], "checkInDaysFromToday": 30, "nights": 3, "adults": 2, "currency": "THB", "maxItems": 200 }
A whole city by its Agoda id (the stay defaults to 14 days ahead, 2 nights):
{ "cityIds": ["9395"], "maxItemsPerSearch": 20000 }
Rate shopping: 4 and 5 star properties with a guest score of 8 or more and free cancellation, for every check-in day of the next two weeks:
{ "search": ["Shinjuku"], "checkInDaysFromToday": 14, "nights": 2, "checkInWindowDays": 14, "stars": ["4", "5"], "minReviewScore": "8", "freeCancellation": true, "maxItemsPerSearch": 100 }
Up to 500 English Agoda reviews of one hotel:
{ "propertyIds": ["1105091"], "includeReviews": true, "maxReviewsPerProperty": 500, "reviewsSources": ["agoda"], "reviewsLanguages": ["en"] }
Singapore market prices with every room and offer:
{ "search": ["Bangkok"], "priceMarket": "SG", "includeDetails": true, "maxItems": 20 }
Reading a whole city
Agoda re-checks availability on every call, so one walk through a big city's results in one order shows 88 to 95 percent of it. Set maxItemsPerSearch above the city's size: the Actor walks the search to its end in your order, then again in further orders (hotel id, best match, stars, guest score), delivering only properties not met, until the distinct properties met reach Agoda's count (allowing 3 percent for its drift) or a fresh order adds under 1 percent. The free search row says which (completeBy). On the platform: Bangkok 6,857 met of 6,774 reported in 2 walks (reported_total); Tokyo 8,125 met of 8,899 reported in 3 walks, the third adding 1 property (list_stopped_growing), 6,558 delivered in 2,004 seconds.
Personal data
Every field Agoda shows publicly is delivered on every run, for hotels and for homes of private hosts alike: coordinates, distance from the centre, nearby places, the property's own links and, with Property details, the street, the full address and the host's profile. includePersonalData has no effect and stays only so saved inputs keep working; a private host's home carries personalDataHidden: false. Reviewer first names and countries and free text (names, highlights, review snippets, descriptions) are delivered as Agoda serves them. You are responsible for using personal data lawfully (the GDPR included).
What this Actor does not do
- No member, app only or signed in prices, and no booking: the Actor reads what Agoda shows a visitor without a login.
- Prices are what a visitor from the US sees by default; another country's prices need
priceMarket(19 countries, residential exits, the Local market page event). In a Price market run the exact rates of Property details are left out, since they come from a door that answers as the US. - The room list of Property details prices in USD or EUR only (
roomsCurrency); the Property row and the exact rates are in your currency. - No review score low to high order: Agoda's own ascending score order comes back unsorted. Use
maxReviewScoreortopReviewedinstead. - Booking.com reviews come through Agoda short of their reported count: 5,397 of 9,041 (59.7 percent) on one hotel, 151 of 233 on another. They are the Booking.com reviews Agoda shows, never a complete Booking.com set.
- No review filter by time of year or keyword: Agoda ignores both. Agoda serves at most 100 pages of 100 reviews per source for one order, so at most 10,000 Agoda reviews of a property.
- No "only new rows since the last run" memory, no change alerts and no monitor: schedule the Actor and compare the rows in your own sheet, or leave out the ids you hold with
excludePropertyIds. - No concurrency, session or pace settings: the pace is fixed to what Agoda allows (Agoda degrades an address after 32 to 41 review calls, so the Actor moves to another one).
- A property found by link or id is that property for your stay: search filters do not filter it, and search settings without a search refuse the run.
- The price trend exists for few properties: Agoda keeps none for most.
- A stay is at most 30 nights and starts at most 480 days ahead.
- Agoda shows a different part of a big city's list on every call; the search row says complete only when its rule is met, and otherwise how many properties were met.
- Work that earns nothing has a limit: a long list of places or ids Agoda does not know, or searches that find no property, stop on that limit, and the rest is counted as not reached in the free summary row (nothing is charged for it).
FAQ
Is it legal to scrape Agoda?
This Actor reads only data Agoda shows to every visitor without a login. Agoda's terms restrict automated access to its platform; whether and how you use the data is your decision and responsibility.
Does Agoda have an API?
Agoda's own APIs are for partners: affiliates and travel businesses who sign up and get credentials. This Actor works like an API without one: send a JSON input through the Apify API and read the properties, rooms and reviews as JSON.
Can I get every hotel in a city from Agoda?
Yes. Set maxItemsPerSearch above the city's size: the Actor walks the search in several orders and delivers each property once, and the free search row compares the properties met with Agoda's own count. One Bangkok run met 6,857 against Agoda's 6,774 and was marked complete.
Why are Agoda prices different by country?
Agoda can price the same room and dates differently by the country the visitor browses from (some properties show one price everywhere). By default the rows show what a visitor from the US sees; set priceMarket to one of 19 countries to read the prices a visitor there sees (the same Tokyo room and dates read USD 183.68 from the US and 164.38 from Japan in the build's checks).
Can I scrape all Agoda reviews of a hotel?
Yes, with the Guest reviews add-on, up to 10,000 reviews per property: one run read all 8,710 Agoda reviews of one hotel in 317 seconds. Filter by source, language, traveller type, score band, reviewer country and a date window; the Booking.com reviews Agoda shows are fewer than Booking.com's own count.
Why does this Actor run with limited permissions?
It needs nothing beyond its own run storage (the dataset it writes and its own key-value store, where it keeps a marker for a restarted run), so it runs with Apify's limited permissions: it cannot read or change anything else in your account.
Use it through the API
curl -X POST "https://api.apify.com/v2/acts/automation_craft~agoda-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"search": ["Bangkok"], "checkInDaysFromToday": 30, "nights": 3, "currency": "USD", "maxItems": 200}'
from apify_client import ApifyClientclient = ApifyClient("<YOUR_TOKEN>")run = client.actor("automation_craft~agoda-scraper").call(run_input={"search": ["Ubud"], "checkInDaysFromToday": 14, "nights": 2, "includeReviews": True, "maxReviewsPerProperty": 20, "maxItems": 50})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
The Actor also runs from Apify's MCP server for AI agents, and from Make, Zapier and n8n through Apify's integrations.
Changelog
- 0.1 (2026-11-03): first version.
More data tools by Automation Craft
- Airbnb Scraper: Airbnb Data, Prices, Calendar
- Idealista Scraper: Spain, Italy, Portugal, France
- Immobiliare.it Scraper: Italy Homes and Agencies
- realestate.com.au Scraper: Buy, Rent, Sold Prices
- Zillow Scraper: Homes for Sale, Rent and Sold
- Realtor.com Scraper: Homes for Sale, Rent & Sold
- Luma Event Scraper: Hosts, Tickets, New Events