Agoda Hotel Scraper avatar

Agoda Hotel Scraper

Pricing

from $0.80 / 1,000 search results

Go to Apify Store
Agoda Hotel Scraper

Agoda Hotel Scraper

Scrape Agoda hotel search results, property details, live prices, room availability, and guest reviews. Extract structured hotel data for travel research, market analysis, pricing comparison, lead generation, and competitor monitoring.

Pricing

from $0.80 / 1,000 search results

Rating

0.0

(0)

Developer

Crawlio

Crawlio

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

18 days ago

Last modified

Share

Agoda Hotel Scraper extracts hotel search results, property details, room pricing, availability, and guest reviews from Agoda. It is built for travel research, hotel market analysis, pricing monitoring, lead generation, and review analysis.

Use Cases

  • Compare hotel pricing and availability across destinations.
  • Monitor competitor properties, ratings, and review counts.
  • Collect room-level pricing and availability for market research.
  • Analyze guest sentiment, review volume, and review trends.
  • Build hotel datasets for travel dashboards or internal analytics.

Quick Start

  1. Open the Actor on Apify and click Try for free.
  2. Choose a mode: search, property, or reviews.
  3. Fill in the matching configuration section.
  4. Click Run.
  5. Open the Dataset tab to preview or download the results.

Supported Modes

ModeUse it forMain inputDataset output
searchHotel search results for a destinationsearch.query or search.cityIdOne item per hotel result
propertyDetails for one Agoda propertyproperty.propertyId or property.propertyUrlOne item for the property
reviewsGuest reviews for one Agoda propertyreviews.propertyId or reviews.propertyUrlOne item per review

Input Configuration

Global Settings

FieldDefaultDescription
modesearchOperation to run. Use search, property, or reviews.
originUSTwo-letter origin country code sent to Agoda.
languageLocaleen-usAgoda language locale.
currencyUSDCurrency code used for prices.

Hotel Search Settings

Use mode: "search" to collect hotel listings. You can provide a destination query and let the Actor resolve it, or pass an Agoda cityId directly.

FieldDescription
search.queryDestination text such as Bangkok, Krabi, or Kuala Lumpur.
search.cityIdAgoda city ID. Prefer this when you need exact destination control.
search.checkIn, search.checkOutDates in YYYY-MM-DD format. Leave empty to use automatic upcoming dates.
search.adults, search.children, search.childAges, search.roomsGuest and room configuration. Use comma-separated child ages, for example 4,8.
search.limit, search.offsetPagination controls. limit controls returned unique hotels, and offset skips results.

Available search filters include propertyType, starRatingMin, reviewScoreMin, cityCenterDistance, freeCancellation, payAtHotel, bookNowPayLater, bookWithoutCreditCard, payNow, breakfastIncluded, outsideFoodDeliveryAllowed, earlyCheckIn, dinnerIncluded, swimmingPool, internet, parking, airportTransfer, and gymFitness.

Property Details Settings

Use mode: "property" when you need detailed information for one Agoda property. Provide either property.propertyId or property.propertyUrl.

Set property.enrichPricing to true when you need richer room pricing details such as room IDs, supplier IDs, benefits, cashback, and occupancy metadata.

Property Reviews Settings

Use mode: "reviews" to collect paginated guest reviews for one Agoda property. Provide either reviews.propertyId or reviews.propertyUrl.

Output

The Actor writes records to the default dataset for hotel search runs and to the results dataset for property and review runs. A compact run summary is also saved to the default key-value store under the OUTPUT record.

Hotel Search Output Example

{
"property_id": 44842960,
"type": "NormalProperty",
"name": "Grande Centre Point Surawong Bangkok",
"rating": 5.0,
"accommodation_type": 34,
"city": "Bangkok",
"country_code": "TH",
"property_url": "https://www.agoda.com/grande-centre-point-surawong-bangkok/hotel/bangkok-th.html",
"lat": 13.725975,
"lng": 100.518982,
"review_score": 9.3,
"review_count": 13061,
"is_available": true,
"price_per_night_incl": 118.42,
"price_per_night_excl": 100.62,
"crossed_out_price": 0.0,
"currency": "USD",
"resultType": "hotel_search_result",
"city_id": 9395,
"query": "Bangkok"
}

Property Output Example

{
"property_id": 44842960,
"name": "Grande Centre Point Surawong Bangkok",
"address": "299 Thanon Surawong",
"city": "Bangkok",
"country": "Thailand",
"country_code": "th",
"stars": 5.0,
"is_available": true,
"is_ready": true,
"pricing_enriched": false,
"pricing_quote": {
"check_in": "2026-06-01",
"check_out": "2026-06-03",
"adults": 2,
"children": 0,
"rooms_requested": 1,
"currency": "USD",
"room_count": 1
},
"rooms": [
{
"room_name": null,
"total_incl": 118.42,
"total_excl": 100.62,
"crossed_out": 0.0,
"benefits": []
}
],
"resultType": "property"
}

Review Output Example

{
"property_id": 44842960,
"hotel_name": "Grande Centre Point Surawong Bangkok",
"star_rating": 5.0,
"combined_score": 9.3,
"combined_score_text": "Exceptional",
"review_count": 13061,
"review_id": 1073109886,
"provider_id": 332,
"title": "Loved everything about this hotel",
"comment": "The room that we booked was massive with a great ceiling to floor glass window.",
"score": 10.0,
"score_text": "Exceptional",
"review_date": "Feb 07, 2026",
"reviewer_name": "Czarina",
"reviewer_country": "United Kingdom",
"demographic": "Couple",
"room_type_name": "Premium King Room",
"resultType": "review"
}

Destination Resolution Notes

  • Use search.query for convenient destination lookup.
  • Use search.cityId when exact destination matching matters.
  • Agoda may return neighborhoods, landmarks, or properties for specific destination text. When that happens, the Actor searches the parent city where possible.
  • Neighborhood-specific filtering is not currently exposed as a separate input field.

Tips

  • Keep limit small for first tests, then increase it after verifying the result shape.
  • Provide exact dates when comparing pricing across multiple runs.
  • Use cityId for repeatable destination targeting.
  • Use offset with limit for paginated collection.
  • Provide exactly one child age per child when children is greater than 0.
  • Enable enrichPricing only when room-level pricing metadata is required, because it can increase runtime.

Troubleshooting

IssueWhat to check
No resultsCheck destination, dates, guest count, filters, and whether the property has availability.
Input validation failedCheck date format, required property IDs or URLs, child age count, and selected mode.
Agoda rejected or limited requestsRetry later, lower request volume, or enable proxy settings in Apify.
Unexpected destinationUse an explicit Agoda cityId instead of a broad destination query.

Personal data may be protected by GDPR in the European Union and by other privacy regulations around the world. Only scrape and process personal data when you have a legitimate reason to do so. If you are unsure, consult a qualified legal professional.

For more general guidance, read Apify's article: Is web scraping legal?