Agoda Hotel Scraper
Pricing
from $0.80 / 1,000 search results
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
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
4
Monthly active users
18 days ago
Last modified
Categories
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
- Open the Actor on Apify and click Try for free.
- Choose a
mode:search,property, orreviews. - Fill in the matching configuration section.
- Click Run.
- Open the Dataset tab to preview or download the results.
Supported Modes
| Mode | Use it for | Main input | Dataset output |
|---|---|---|---|
search | Hotel search results for a destination | search.query or search.cityId | One item per hotel result |
property | Details for one Agoda property | property.propertyId or property.propertyUrl | One item for the property |
reviews | Guest reviews for one Agoda property | reviews.propertyId or reviews.propertyUrl | One item per review |
Input Configuration
Global Settings
| Field | Default | Description |
|---|---|---|
mode | search | Operation to run. Use search, property, or reviews. |
origin | US | Two-letter origin country code sent to Agoda. |
languageLocale | en-us | Agoda language locale. |
currency | USD | Currency 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.
| Field | Description |
|---|---|
search.query | Destination text such as Bangkok, Krabi, or Kuala Lumpur. |
search.cityId | Agoda city ID. Prefer this when you need exact destination control. |
search.checkIn, search.checkOut | Dates in YYYY-MM-DD format. Leave empty to use automatic upcoming dates. |
search.adults, search.children, search.childAges, search.rooms | Guest and room configuration. Use comma-separated child ages, for example 4,8. |
search.limit, search.offset | Pagination 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.queryfor convenient destination lookup. - Use
search.cityIdwhen 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
limitsmall for first tests, then increase it after verifying the result shape. - Provide exact dates when comparing pricing across multiple runs.
- Use
cityIdfor repeatable destination targeting. - Use
offsetwithlimitfor paginated collection. - Provide exactly one child age per child when
childrenis greater than0. - Enable
enrichPricingonly when room-level pricing metadata is required, because it can increase runtime.
Troubleshooting
| Issue | What to check |
|---|---|
| No results | Check destination, dates, guest count, filters, and whether the property has availability. |
| Input validation failed | Check date format, required property IDs or URLs, child age count, and selected mode. |
| Agoda rejected or limited requests | Retry later, lower request volume, or enable proxy settings in Apify. |
| Unexpected destination | Use an explicit Agoda cityId instead of a broad destination query. |
Legal Notice
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?