Agoda API Scraper
Pricing
from $1.00 / 1,000 dataset rows
Go to Apify Store
Agoda API Scraper
Scrapes Agoda accommodation search results, pricing and property details via Agoda's public GraphQL endpoints (requests-based, no browser).
Agoda API Scraper
Pricing
from $1.00 / 1,000 dataset rows
Scrapes Agoda accommodation search results, pricing and property details via Agoda's public GraphQL endpoints (requests-based, no browser).
propertyId
Optional
Agoda's own numeric id for the property. Stable, and the value to pass back in propertyIds to re-fetch it without a search.
name
Optional
The property's name as Agoda publishes it in the run's language.
url
Optional
Canonical agoda.com page for the property, without dates or affiliate parameters.
propertyType
Optional
Agoda's own category for the property. Hotel on 99 and NonHotel on 1 of 100 rows measured 2026-10-30; NonHotel covers apartments, hostels and villas without distinguishing between them.
starRating
Optional
Official star rating, 0.0-5.0 in half steps. Not the guest score - see reviewScore.
isGovernmentVerifiedStars
Optional
True only where Agoda records the star rating as verified by a national tourism authority. Absent, not false, on properties Agoda has no such record for - so a null here means unknown rather than unverified.
addressCountry
Optional
Country name in the run's language.
addressCountryCode
Optional
ISO 3166-1 alpha-2 country code, upper case.
addressCity
Optional
City as Agoda files the property, which is the city the search resolved - not necessarily the municipality a postal address would use.
addressArea
Optional
Agoda's neighbourhood or district label within the city (16 distinct values across 100 Bangkok rows). Its own vocabulary, not an administrative boundary.
latitude
Optional
WGS84 latitude of the property.
longitude
Optional
WGS84 longitude of the property.
reviewScore
Optional
Guest review score (0-10) for the searched dates; authoritative over the details endpoint's combined score.
reviewCount
Optional
Number of reviews behind reviewScore, and the same figure agoda.com shows on the property page. Verified against the rendered page on 2026-10-30: property 461790 read 97,665 on agoda.com against 97,609 here, and property 10636 read 64,843 against 64,838 - the small gaps are reviews added between the two reads. Agoda aggregates several review providers and this is its combined total, which is what it publishes as the headline count; its own provider pool is smaller (87,436 of the 97,609 on 461790), so a third-party aggregator quoting only that pool will differ by around 10%. reviewScore comes from the same combined block, so the score and the count always belong to each other.
isPopular
Optional
Agoda's own 'popular choice' merchandising flag for the searched dates, not a property attribute. True on 8 of 100 rows measured.
isSoldOut
Optional
True when the property has no availability for the searched dates. A sold-out row carries no price: all the price* columns are null on it, which is why they are filled on 90 rather than 100 of the 100 rows measured.
isSponsored
Optional
True when Agoda placed the property as paid advertising in this result set. It is a property of the search, not of the hotel, and it means the ranking position was bought.
facilityHighlights
Optional
Short facility labels Agoda surfaces on the search card (pool, free wifi, airport transfer). A list of strings, and a marketing selection rather than the property's full facility list.
images
Optional
Image URLs for the property as served on the search card. A list of strings.
priceCurrency
Optional
ISO currency code the price columns are quoted in - always the run's currency input.
pricePerNight
Optional
Price per night for the searched dates, after discount, for the requested occupancy. Null when isSoldOut is true.
pricePerNightBeforeDiscount
Optional
Per-night price before Agoda's discount, i.e. the struck-through figure. Equal to pricePerNight where no discount applies.
pricePerStay
Optional
Total price for the whole stay after discount - pricePerNight multiplied by the nights between checkin and checkout, as Agoda computes it.
pricePerStayBeforeDiscount
Optional
Total for the whole stay before discount.
priceFreeCancellation
Optional
True when the cheapest offer for the searched dates is free-cancellation. False on all 90 priced rows measured, which reflects the cheapest offer rather than the property's policy.
pricePayLaterEligible
Optional
True when the cheapest offer allows paying at the property. False on all 90 priced rows measured.
priceAvailableRooms
Optional
How many rooms Agoda still shows for the cheapest offer. A scarcity signal on the card, not the property's inventory.
isLuxuryHotel
Optional
Agoda's own luxury classification. True on 2 of 100 rows measured. Filled on 100 of 100 rows measured 2026-10-30 (Bangkok, details on).
addressLine1
Optional
Street address line. Filled on 100 of 100 rows measured 2026-10-30 (Bangkok, details on).
addressLine2
Optional
Second address line. Rarely populated, and not a consistent kind of value - the five non-null rows measured held a sub-district, a district and three property names. Filled on 5 of 100 rows measured 2026-10-30 (Bangkok, details on).
addressPostalCode
Optional
Postal code as Agoda records it. Filled on 98 of 100 rows measured 2026-10-30 (Bangkok, details on).
checkInFrom
Optional
Earliest check-in time, as a localised clock string such as 02:00 PM - not a time type, and the format follows the run's language. Filled on 99 of 100 rows measured 2026-10-30 (Bangkok, details on).
checkInUntil
Optional
Latest check-in time, same string format. Filled on 28 of 100 rows measured 2026-10-30 (Bangkok, details on).
checkOutFrom
Optional
Earliest check-out time, same string format. Filled on 19 of 100 rows measured 2026-10-30 (Bangkok, details on).
checkOutUntil
Optional
Latest check-out time, same string format. Filled on 98 of 100 rows measured 2026-10-30 (Bangkok, details on).
numberOfRooms
Optional
Total rooms in the property. Filled on 95 of 100 rows measured 2026-10-30 (Bangkok, details on).
numberOfFloors
Optional
Number of floors. Filled on 86 of 100 rows measured 2026-10-30 (Bangkok, details on).
numberOfRestaurants
Optional
On-site restaurants; 0 is a real value and is distinct from null. Filled on 86 of 100 rows measured 2026-10-30 (Bangkok, details on).
numberOfBarsLounges
Optional
On-site bars and lounges; 0 is a real value. Filled on 57 of 100 rows measured 2026-10-30 (Bangkok, details on).
nonSmokingRoomsFloors
Optional
Whether the property has non-smoking rooms or floors, normalised to lower-case yes/no. Agoda returns this with inconsistent casing - yes, Yes and YES all appeared in 100 rows measured - so it is lower-cased here and an unrecognised value is passed through unchanged. Filled on 75 of 100 rows measured 2026-10-30 (Bangkok, details on).
yearOpened
Optional
Year the property opened, as an integer. Filled on 75 of 100 rows measured 2026-10-30 (Bangkok, details on).
mostRecentRenovation
Optional
Year of the most recent renovation. Filled on 40 of 100 rows measured 2026-10-30 (Bangkok, details on).
distanceFromCityCenter
Optional
Distance to the city centre as a display string, not a number - 1 km, 30 km and 0.0 Km all appeared in 100 rows measured, with the unit inside the value and inconsistent casing. Parse it before sorting on it. Filled on 55 of 100 rows measured 2026-10-30 (Bangkok, details on).
travelTimeToAirportMinutes
Optional
Travel time to the nearest airport in minutes, as an integer. Filled on 70 of 100 rows measured 2026-10-30 (Bangkok, details on).
airportTransferFee
Optional
Airport transfer fee as a display string with its currency inside it (1500 THB, 0 THB). The currency is the property's local one and is NOT the run's currency, so it does not match the price* columns. Filled on 56 of 100 rows measured 2026-10-30 (Bangkok, details on).
dailyParkingFee
Optional
Daily parking fee, same string-with-currency format. 0 THB means free parking; a null means Agoda publishes nothing. Filled on 31 of 100 rows measured 2026-10-30 (Bangkok, details on).
dailyInternetFee
Optional
Daily internet fee, same string-with-currency format. Mixed currencies appear across rows (0 THB and 0 USD both measured). Filled on 21 of 100 rows measured 2026-10-30 (Bangkok, details on).
breakfastCharge
Optional
Breakfast charge, same string-with-currency format. Filled on 76 of 100 rows measured 2026-10-30 (Bangkok, details on).
receptionOpenUntil
Optional
Time reception closes, same string format. A null does not mean 24-hour reception - it means Agoda publishes no hours. Filled on 39 of 100 rows measured 2026-10-30 (Bangkok, details on).
roomVoltage
Optional
Mains voltage in the rooms, as an integer. Filled on 71 of 100 rows measured 2026-10-30 (Bangkok, details on).
licenseId
Optional
Operating or tax licence identifier the property publishes. Format varies by jurisdiction. Filled on 37 of 100 rows measured 2026-10-30 (Bangkok, details on).