Agoda Hotel Prices avatar

Agoda Hotel Prices

Pricing

from $0.70 / 1,000 hotel scrapeds

Go to Apify Store
Agoda Hotel Prices

Agoda Hotel Prices

One search, one flat table: hotel name, id, area, lowest all-in price, star rating, review score and count, and the booking URL - for any Agoda destination and date.

Pricing

from $0.70 / 1,000 hotel scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

21 hours ago

Last modified

Share

One search in, one flat table out. Give it a destination and a date; it returns the hotels Agoda would show you, each with its lowest available all-in price in the currency you asked for, its star rating, its review score and review count, and the URL of the booking page.

Built to be called by an agent or a script: small input, small output, one row per hotel, no nested objects, no HTML.

Output

One item per hotel:

fieldmeaning
hotel_idAgoda's numeric property id, stable across searches
nameProperty name as Agoda displays it
urlBooking page on agoda.com
areaNeighbourhood, e.g. Sukhumvit
city, countryAs Agoda classifies the property
star_ratingOfficial star rating, 1-5
review_scoreAgoda guest score out of 10
review_countNumber of guest reviews behind that score
priceLowest all-in price, per room per night, taxes and fees included
price_excluding_taxesThe same room before taxes and fees
currencyCurrency the two prices are quoted in
is_availableWhether anything was bookable for those dates
check_in, check_out, nights, adults, roomsThe search the prices belong to
requested_destinationThe destination string you sent, echoed back
resolved_city, resolved_city_idThe city Agoda actually searched. null name when you passed a numeric id
destination_matchedfalse when Agoda returned a city whose name is not what you asked for

Always check destination_matched

Agoda's autocomplete answers nearly any string with a city, so a typo or a bad input produces a complete, successful, charged run about somewhere else. This actor cannot refuse that outright without also refusing legitimate spelling variants - Agoda files "Koh Samui" as "Ko Samui" - so instead every row says what you asked for and what it got. When destination_matched is false, compare requested_destination against resolved_city before trusting the prices. The run log carries a warning for the same case.

Fields that can be null, and why they are not zero

A price is only ever a number when Agoda quoted one.

  • price and price_excluding_taxes are null for a sold-out property. When nothing is bookable for your dates Agoda still lists the hotel but returns no offer at all - there is no price to report. A 0 there would read as "free", so this actor never writes one. Sold-out hotels are skipped entirely unless you switch on Include sold-out hotels.
  • star_rating, review_score and review_count are null for a property Agoda has no such value for - typically a new listing with no reviews yet. A new hotel is not a hotel that scored 0.
  • area is null where Agoda files a property under a city but no neighbourhood.

Nothing in the output is inferred, averaged or filled in. Every value came from the response for the exact search you asked for.

What it does not do

  • It does not return room-level detail. One row is one hotel at its cheapest bookable rate, not a list of room types.
  • It prices the search you asked for, not the calendar. Prices are specific to the dates, occupancy and currency in the input. Change the dates and the prices change; that is the source, not a bug.
  • It has no partner or affiliate access. It reads the same public search Agoda's own website reads, so it sees what a visitor sees - and, like a visitor, it does not see private negotiated rates.
  • Destinations resolve to a city, and Agoda will resolve almost anything. An area or landmark ("Chiang Mai Airport") resolves to the city containing it. A string that matches no city at all still comes back with some city - zzzqqq resolves to Zschepplin, Germany - so a nonsense destination does not fail, it succeeds about the wrong place. Check destination_matched on the rows; see below.

Proxy

Use a residential proxy. Agoda blocks repeated searches from one address and answers with an HTML challenge page instead of results. The actor treats that - and any 403, 429 or 5xx - as a temporary refusal, takes a fresh exit address and retries; a permanent error, such as a malformed request, is never retried, so a hopeless run does not spend your money four times over. The default proxy setting already asks for the residential group.

Pricing

  • Actor start - a small fixed fee per run, so a search that legitimately finds nothing still covers its cost.
  • Hotel scraped - charged once per hotel written to the dataset. A hotel that appears on two result pages is charged once; Agoda repeats a few properties across page boundaries and this actor de-duplicates by property id before charging.

Sold-out hotels are not charged unless you asked for them.

Tips

  • maxItems counts hotels delivered, not hotels looked at, so a sold-out property never costs you a row you asked for. Agoda serves 45 per page, so asking for 20 usually costs one page and asking for 90 usually costs two.
  • Set currency to whatever your downstream expects - THB, USD, JPY, SGD. The conversion is Agoda's, not ours.
  • For a repeatable price series, pin destination to a numeric city id rather than a name, so autocomplete changes cannot move your dataset under you. Take the id from resolved_city_id on a run you have already checked.