Agoda Hotel Listings Extractor avatar

Agoda Hotel Listings Extractor

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Agoda Hotel Listings Extractor

Agoda Hotel Listings Extractor

Agoda scraper that pulls hotel listings from any Agoda city search, with nightly prices, star ratings, guest review scores, coordinates and photos, so revenue managers and travel researchers can track rates without checking Agoda by hand.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Agoda Hotel Listings Extractor: Scrape Agoda Hotel Prices, Ratings and Reviews

Agoda hotel listings extractor that pulls hotel search results from Agoda for any city and date range. Every record carries the nightly price, star rating, guest review score, review count, GPS coordinates, photos, amenities and nearby landmarks. Give it a city name, an Agoda search URL or a numeric Agoda city ID and it pages through the listings until it hits your limit.

This Agoda scraper talks to the same search API the website uses, so the prices match what a traveller would see for your dates, occupancy and currency. No browser, no rendering, just the JSON behind the page.

Use cases

  • Hotel rate shopping: track what competitors charge per night across a city and spot when they discount
  • Revenue management: build a nightly rate history for your own property and its comp set
  • Travel affiliate sites: fill destination pages with fresh hotel data, review scores and photos
  • Market research: measure supply by star rating, neighbourhood and property type before entering a market
  • SEO and content teams: generate "best hotels in X" pages backed by real review scores and prices
  • Price monitoring: schedule daily runs and alert on rate drops through Apify integrations

Input

ParameterTypeDefaultDescription
searchTermsarraynoneCity or destination names, one per line. Each name is matched to an Agoda city automatically.
searchUrlsarraynoneAgoda search URLs. Dates, guests and rooms are read from the URL when present.
cityIdsarraynoneNumeric Agoda city IDs for repeat runs where the ID is already known.
checkInstringtoday + 30 daysCheck-in date in YYYY-MM-DD format.
checkOutstringcheck-in + nightsCheck-out date in YYYY-MM-DD format.
nightsinteger1Length of stay used when no check-out date is given.
adultsinteger2Adults per room, which changes the rates Agoda returns.
childreninteger0Children in the booking.
childAgesarraynoneAge of each child, required when the children count is above zero.
roomsinteger1Number of rooms to price.
currencystringUSDCurrency for every price field. 20 currencies supported.
languagestringen-gbLocale for hotel names, area names and review text.
sortBystringrecommendedRecommended, price low to high, price high to low, guest rating or secret deals.
maxResultsinteger100Maximum hotels collected per destination, capped at 1000.
minStarRatinginteger0Keep only properties at or above this star rating.
minReviewScoreinteger0Keep only properties at or above this guest rating out of 10.
minPricePerNightinteger0Lowest nightly rate to include.
maxPricePerNightinteger0Highest nightly rate to include. 0 means no ceiling.
accommodationTypeIdsarraynoneAgoda accommodation type IDs, for example 34 for Hotel and 29 for Apartment.
facilityIdsarraynoneAgoda facility IDs, for example 93 for Swimming pool and 92 for Gym.
includeUnavailablebooleantrueKeep sold out properties for full market coverage.
includeImagesbooleantrueCollect photo URLs.
maxImagesinteger5Photos kept per property.
includeReviewSnippetsbooleanfalseAdd quoted guest reviews and location topics.
includeLandmarksbooleantrueAdd nearby transport, attractions and beaches with distances.
keepEmptyFieldsbooleanfalseKeep fields Agoda had no value for as nulls instead of leaving them out.
requestTimeoutSecsinteger60Timeout for a single request to Agoda.
timeoutSecsinteger600Time budget for the whole run.
maxRetriesinteger3Retries per failed request.
proxyConfigurationobjectDatacenter (Anywhere)Proxy type and location for requests. Supports Datacenter, Residential, Special and custom proxies. Optional.

Example input

{
"searchTerms": ["New York", "Bangkok"],
"checkIn": "2026-09-19",
"nights": 2,
"adults": 2,
"rooms": 1,
"currency": "USD",
"sortBy": "guestRating",
"maxResults": 200,
"minStarRating": 3,
"minReviewScore": 8,
"maxPricePerNight": 400,
"includeReviewSnippets": true,
"proxyConfiguration": { "useApifyProxy": true }
}

What data does this actor extract?

Results land in an Apify dataset, one record per hotel. A trimmed example:

{
"propertyId": 6950509,
"hotelName": "Pod Times Square",
"hotelUrl": "https://www.agoda.com/pod-times-square/hotel/new-york-ny-us.html",
"propertyTypeName": "Hotel",
"starRating": 3.0,
"reviewScore": 8.6,
"reviewCount": 3184,
"price": 287.28,
"priceWithTaxes": 362.99,
"totalPrice": 287.28,
"currencyCode": "USD",
"isAvailable": true,
"freeCancellation": true,
"payLater": true,
"roomsLeft": 5,
"checkInDate": "2026-09-19",
"checkOutDate": "2026-09-20",
"countryName": "United States",
"cityName": "New York (NY)",
"cityId": 318,
"areaName": "Times Square",
"latitude": 40.7584,
"longitude": -73.9931,
"distanceFromCityCenterMeters": 0.0,
"mainImageUrl": "https://pix8.agoda.net/hotelImages/6950509/-1/07ddf14f1f7c52b335a183348996e549.jpg",
"highlightedFeatures": ["Free Wi-Fi in all rooms!", "Gym/fitness", "Close to public transportation"],
"roomFacilities": ["Wi-Fi [free]", "Openable window", "Balcony/terrace", "Desk"],
"cheapestRoomSizeSqm": 11.0,
"atmospheres": ["shopping", "sightseeing", "nightlife", "restaurants"],
"nearbyTransport": [{ "name": "42nd Street Subway Station", "distanceMeters": 180.4 }],
"isSponsored": false,
"listingRank": 1,
"searchCityName": "New York (NY)",
"totalHotelsInSearch": 483,
"scrapedAt": "2026-08-10T12:44:02.118342+00:00"
}
FieldTypeDescription
propertyIdintegerAgoda property ID, stable across runs and useful as a join key
hotelNamestringProperty name in the selected language
hotelUrlstringDirect link to the Agoda property page
propertyTypeNamestringHotel, Resort, Apartment, Hostel and similar
starRatingnumberStar rating from 0 to 5, half stars included
reviewScorenumberAgoda guest review score out of 10
reviewCountintegerNumber of Agoda reviews behind the score
reviewSourcesarrayScore and review count from every connected review provider
reviewSnippetsarrayQuoted guest reviews with reviewer, country, date and rating
locationTopicsarrayReview snippets grouped by topic, currently location
pricenumberCheapest nightly rate per room before taxes and fees
priceWithTaxesnumberCheapest nightly rate per room including taxes and fees
crossedOutPricenumberOriginal rate shown struck through before the discount
totalPricenumberTotal stay cost for all rooms and nights before taxes
discountPercentnumberDiscount off the crossed out rate
currencyCodestringCurrency of every price field
isAvailablebooleanWhether rooms are bookable for the searched dates
freeCancellationbooleanWhether the cheapest rate cancels free of charge
payAtHotelbooleanWhether payment on arrival is offered
roomsLeftintegerRooms remaining at the cheapest rate
countryNamestringCountry the property sits in
cityNamestringCity name as Agoda labels it
cityIdintegerAgoda city ID, reusable as input for later runs
areaNamestringNeighbourhood or district
latitudenumberLatitude in decimal degrees
longitudenumberLongitude in decimal degrees
distanceFromCityCenterMetersnumberStraight line distance from the city centre
mainImageUrlstringPrimary property photo
imageUrlsarrayAdditional photo URLs
highlightedFeaturesarrayFeatures Agoda highlights, such as free Wi-Fi
roomFacilitiesarrayFacilities listed for the cheapest room
atmospheresarrayNeighbourhood tags such as shopping or nightlife
nearbyTransportarrayStations and stops with distance in metres
nearbyLandmarksarrayAttractions with distance in metres
isSponsoredbooleanWhether the listing is a paid placement
listingRankintegerPosition in the Agoda result list for the chosen sort
totalHotelsInSearchintegerTotal properties Agoda reports for the search
scrapedAtstringUTC timestamp of collection

The full field list, including sustainability flags and whole-home room counts, is in the dataset schema.

Why some fields are missing from a record

47 fields appear on every hotel. The rest depend on what Agoda knows about that property, so the key is left out rather than written as null. A hotel that is not discounted has no crossedOutPrice or discountPercent, a sold out hotel has no price or roomsLeft but does get soldOutAveragePrice, and bedrooms, bathrooms and beds only turn up on apartments and whole-home stays. Measured over 135 hotels across New York, Bangkok and Dubai:

FieldPresent
nearbyTransport, reviewSnippets, bookingsToday, atmospheres95% to 99%
price, priceWithTaxes, totalPrice, roomsLeft, roomFacilities90%
nearbyLandmarks, locationTopics77% to 81%
crossedOutPrice, discountPercent, cheapestRoomSizeSqm72% to 73%
nearbyBeaches33%
goldCircleAwardYear20%
soldOutAveragePrice8%
bedrooms, bathrooms, bedsunder 2%

Set keepEmptyFields to true if you would rather have every field on every record with nulls in the gaps, which is easier to load into a fixed database schema.

How it works

  1. Every destination name is matched to an Agoda city ID through Agoda's own destination lookup, so "New York" becomes city 318. Search URLs and raw city IDs skip this step.
  2. Your dates, occupancy, currency and filters are turned into an Agoda search request. Star rating, review score, price range, property type and facility filters run on Agoda's side, so filtered runs cost less.
  3. The actor pages through results, 45 hotels at a time, until it reaches your maxResults limit or the end of the listings.
  4. Each property is flattened into one dataset record with prices, ratings, location, photos and amenities.
  5. Failed requests retry with a backoff, and a bad listing is logged and skipped instead of ending the run.

FAQ

How do I scrape hotels for a specific city? Type the city name into Destinations, for example "Bangkok" or "Cox's Bazar". You can also paste an Agoda search URL, and the actor reads the city, dates, guests and rooms straight from it.

Do the prices match what I see on Agoda? Prices come from the same search API the website uses, for the dates, occupancy and currency you set. Rates move constantly, so a run captures the market at that moment. Schedule repeat runs if you need a price history.

How many hotels can one run collect? Up to 1000 per destination, and you can queue several destinations in one run. Large cities like Bangkok list thousands of properties, so set maxResults to what you actually need.

Can I filter by star rating, review score or price? Yes. Star rating, guest score, price range, accommodation type and facilities are all sent to Agoda as search filters, so the actor only downloads properties that already match.

Does this actor need a proxy? It runs without one, but Apify Proxy is recommended for larger jobs. Datacenter proxies are fast and cheap, and Residential proxies help when a datacenter IP gets rate limited.

Why does one record have fewer fields than another? A field is left out when Agoda has no value for it on that property, so a hotel without a discount carries no crossedOutPrice. Turn on keepEmptyFields to get nulls in those slots instead. CSV and Excel exports are unaffected either way, since Apify builds the column list from all records.

Can I get hotel facilities like pool and parking? Room level facilities come through in roomFacilities, and Agoda's own highlights land in highlightedFeatures. The full property amenity list is not part of the search response, it lives on the individual hotel page. You can still filter searches by facility using facilityIds.

Can I get guest reviews too? Turn on Include guest review snippets to add short quoted reviews with the reviewer name, country, date and rating, plus location topic snippets.

Integrations

Connect Agoda Hotel Listings Extractor with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.

Point the Agoda scraper at a city, set your dates, and you get a clean hotel dataset with prices, ratings and reviews ready to load wherever you work.