Agoda Hotel Search Scraper avatar

Agoda Hotel Search Scraper

Pricing

Pay per event

Go to Apify Store
Agoda Hotel Search Scraper

Agoda Hotel Search Scraper

Search Agoda hotels by destination or city id with real filters and sorting: stars, price, review score, free cancellation, breakfast, facilities. No login needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search Agoda hotels for a destination or a known city id and get a clean dataset of hotels back — no login, account, app or device needed. Spun off from the Agoda All-in-One API for teams that want a run-and-export dataset instead of a live API: give it a place and dates, get a deduped list of hotels with price, rating and location.

Why use this Actor?

  • Rate shopping / market scans — pull every hotel in a city for a stay, with price, star rating and guest review score, ready for your own spreadsheet or BI tool.
  • Filtered sourcing — narrow by stars, price range, review score, free cancellation, breakfast, facilities and more before you ever open the site.
  • Bulk destination coverage — resolve a free-text place name to Agoda's own city id automatically, so you don't need to look up ids by hand.

Input

FieldRequiredDescription
destinationone of destination/cityIdFree-text place name, e.g. "Bangkok". Resolved to a cityId via Agoda's own autocomplete.
cityIdone of destination/cityIdAgoda city id, used directly (skips the autocomplete call). Known-working example: 9395 (Bangkok).
checkinyesCheck-in date, YYYY-MM-DD.
checkoutnoCheck-out date. If given, overrides los (los = checkout - checkin).
losnoLength of stay in nights, 1-30 (default 1). Ignored if checkout is given.
adultsnoAdults per room (default 2).
roomsnoNumber of rooms (default 1).
childrennoChildren per room (default 0).
childrenAgesnoAges of each child. Padded with age 8 / truncated to match children if the count differs.
currencynoISO currency code for prices (default USD).
localenoResponse language as an Agoda locale, e.g. th-th, en-us (default).
sortField / sortOrder / sortLandmarkIdnoSort the upstream result. See "Sort fields" below — only fields verified to actually reorder results are offered.
maxResultsnoStop after this many unique hotels, deduped by propertyId (default 100).
stars, reviewScoreMin, reviewScoreMax, priceMin, priceMax, name, freeCancellation, breakfastIncluded, paymentOptions, facilitiesAny, facilitiesAll, accommodationTypes, areaIds, landmarkIds, affordableCategory, bedrooms, familyFacilities, hostLevel, characteristics, tripPurpose, curatedCollections, deals, hotelChainIds, productType, bookingDurationnoFilters. Every one of these was live-verified to actually narrow results on Agoda's own API before being exposed here — see the input schema for value ranges and sample ids.

Sort fields

sortField accepts: Ranking (default, server "best match"), Price, StarRating, AllGuestsReviewScore, GroupsReviewScore, FamiliesWithYoungReviewScore, FamiliesWithTeenReviewScore, SoloTravllersReviewScore, CouplesReviewScore, BusinessTravellerReviewScore, ReviewCount, ReviewAndPrice, InsiderDeal, SecretDeal, PackageDeal, DistanceFromLandmark (needs sortLandmarkId to honour sortOrder). Price and StarRating are strictly monotone both directions. ReviewAndPrice/InsiderDeal/SecretDeal/PackageDeal ignore sortOrder server-side (a blended deal/value ranking either way). Left out on purpose because Agoda's own research found them inert (aliased to the default order) or too weakly verified to expose: Distance, Personalize, CuratedCollectionRank, NoSorting, ASD, HotelId, DistanceFromCityCenter.

Output

One dataset row per unique hotel:

{
"propertyId": 14654101,
"name": "Solaria Nishitetsu Hotel Bangkok",
"starRating": 4,
"accommodationType": "Hotel",
"city": "Bangkok",
"area": "Sukhumvit",
"lat": 13.73682689666748,
"lon": 100.56027221679688,
"reviewScore": 9.2,
"reviewCount": 15912,
"currency": "USD",
"priceNightExclusive": 131.02,
"priceNightAllInclusive": null,
"available": true
}

Pagination and dedupe

This Actor paginates Agoda's hotels/search internally (100 hotels per page, Agoda's own max) until maxResults unique hotels are collected or the upstream runs dry. Agoda's own deep pagination is not stable: adjacent pages of a large destination can repeat or skip hotels (verified: 57 pages of 100 for one city returned 5671 rows but only 4504 unique propertyIds). This Actor deduplicates by propertyId as a courtesy — duplicate hotels are silently dropped rather than billed or pushed twice — but very deep pagination of a huge destination can still undercount the true number of listings; for full coverage of a huge city, narrow with areaIds/stars/priceMin/priceMax first.

Pricing / Cost estimation

Billed pay-per-event: one hotel event per unique hotel row pushed, plus a flat apify-actor-start event per run. Rows cut off by maxResults or a run's spending limit are not billed beyond that limit.

Known limitations

  • Deep paging of a very large destination is inherently unstable on Agoda's own API (see "Pagination and dedupe" above); this Actor mitigates it with dedupe but cannot fully fix it upstream.
  • searchInfo totals jitter and priceMin/priceMax can leave Agoda's own reported total stale — this Actor counts only the actual hotel rows it returns.
  • Only Agoda's city search type is exposed here (destination/cityId in, hotels out). Area/region/radius/bounding-box/landmark search and non-search endpoints (property detail, rooms, reviews, flights) live in the sibling Agoda All-in-One API.
  • Sort fields and filters not listed above were checked in the sibling project's research and found inert (accepted but ignored) or unverified on Agoda's own API — they are deliberately not exposed here as if they worked.

FAQ, disclaimers, and support

This is an unofficial Actor, not affiliated with or endorsed by Agoda. It reads only data that Agoda's own Android app shows without an account. Use responsibly and in line with Agoda's Terms of Service and applicable law.

Found an issue or need a custom field? Use the Issues tab on this Actor's page.