Agoda Hotel Rates Scraper
Pricing
from $0.99 / 1,000 results
Agoda Hotel Rates Scraper
Scrape Agoda hotels by destination or hotel ID: name, star rating, review score and count, live nightly price (with/without tax, before-discount), coordinates, address, and room offers. Pick your dates, guests, and currency. No login.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
54
Total users
11
Monthly active users
2.3 hours
Issues response
3 days ago
Last modified
Categories
Features
Share
Extract hotels and live nightly prices from Agoda — by destination, by specific hotel, or as a daily rate calendar per room type. For every hotel you get its name, star rating, guest review score and review count, exact coordinates, address, the cheapest available price (with and without taxes/fees, plus the before-discount price), and the cheapest room offers with their cancellation policy. Choose your own check-in/check-out dates, number of guests, and currency.
Why use this actor
- No account, no login, no API key required.
- Real, dated prices — the price for the exact stay dates, guests, and currency you ask for, not a vague "from" figure.
- Three ways to search — sweep every hotel in a destination, track specific hotels by their Agoda property ID, or pull a daily rate calendar: every room type and rate plan for every night in a date range (ideal for revenue management, rate parity and competitor monitoring).
- Rich structured fields — star rating, guest review score and count, latitude/longitude, full address, and per-room offers.
- Any currency — prices come back in the currency you choose (USD, EUR, SGD, GBP, …).
- Stable JSON output ready for spreadsheets, databases, dashboards, or pipelines. Export to JSON, CSV, or Excel.
- Runs on a schedule with automatic retries — no scrapers, browsers, or blocks to babysit.
How it works
- Choose a mode: Search a destination, or pull Property detail + rates for specific hotel IDs.
- Enter your destinations (city or place names) or hotel property IDs, your check-in / check-out dates, guests, and currency.
- The actor matches each place name to the right Agoda destination automatically, then collects every hotel with its live price and review data.
- Each hotel becomes one clean row in your dataset, which you can download or feed into another system.
You do not manage any of the retrieval, retries, or formatting — just the inputs above.
Input
Search mode
{"mode": "search","destinations": ["Singapore"],"checkIn": "2026-08-10","checkOut": "2026-08-11","adults": 2,"children": 0,"rooms": 1,"currency": "USD","fetchRooms": true,"maxItems": 100,"maxItemsPerSearch": 200,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Property mode (detail + rates for specific hotels)
{"mode": "property","propertyIds": ["185945"],"checkIn": "2026-08-10","checkOut": "2026-08-11","adults": 2,"children": 0,"rooms": 1,"currency": "EUR","fetchRooms": true}
| Field | Type | Description |
|---|---|---|
mode | string | search (find hotels in a destination) or property (detail + rates for specific hotel IDs). |
destinations | array | City / place names to search, e.g. Singapore, Tokyo, Bali. Search mode. |
searchUrls | array | Optional Agoda search URLs that contain a city id, e.g. https://www.agoda.com/search?city=4064. Search mode. |
propertyIds | array | Agoda numeric hotel IDs, e.g. 185945 (Marina Bay Sands). Property mode. |
checkIn | string | Check-in date YYYY-MM-DD. Defaults to ~30 days out. |
checkOut | string | Check-out date YYYY-MM-DD. One night after check-in by default. |
adults | integer | Adult guests to price for (default 2). |
children | integer | Children in the party (default 0). |
rooms | integer | Rooms to price (default 1). |
currency | string | Currency code the prices are returned in, e.g. USD, EUR, SGD. |
fetchRooms | boolean | Include the cheapest room offers (price + cancellation policy) on each record. |
maxItems | integer | Overall cap on hotel records for the run (0 = no limit). |
maxItemsPerSearch | integer | Cap per destination. Agoda serves 45 hotels per page. |
proxyConfiguration | object | Residential proxy recommended for stable, geo-consistent results. |
Room rates mode (daily rates per room type)
{"mode": "roomRates","hotelUrls": ["https://www.agoda.com/harris-hotel-tuban/hotel/bali-id.html"],"propertyIds": ["64410066"],"dateFrom": "2026-11-01","dateTo": "2026-11-30","nights": 1,"adults": 2,"currency": "IDR"}
| Field | Type | Description |
|---|---|---|
hotelUrls | array | Agoda hotel page URLs. The property ID is read from the page. |
propertyIds | array | Agoda numeric hotel IDs (can be combined with hotelUrls). |
dateFrom / dateTo | string | First and last check-in date of the calendar, YYYY-MM-DD (inclusive, up to 366 nights). Defaults to the next 30 nights. |
nights | integer | Length of stay priced for each check-in date (default 1 = nightly rate). |
childAges | array | Age of each child when children > 0. |
maxConcurrency | integer | Nights fetched in parallel per hotel (default 4). |
Output
Search mode — one row per hotel
{"_input": "Singapore","_source": "S1-citysearch","_scrapedAt": "2026-07-09T20:36:50Z","recordType": "HOTEL","propertyId": 335555,"hotelName": "Dorsett Changi City Singapore","starRating": 4.0,"reviewScore": 8.6,"reviewCount": 7860,"latitude": 1.3343963623046875,"longitude": 103.96414184570312,"address": "Changi, Singapore","city": "Singapore","cityId": 4064,"propertyType": "Hotel","url": "https://www.agoda.com/dorsett-changi-city-singapore/hotel/singapore-sg.html","checkIn": "2026-08-10","checkOut": "2026-08-11","occupancy": { "adults": 2, "children": 0, "rooms": 1 },"currency": "USD","isAvailable": true,"soldOut": false,"cheapestPrice": 164.67,"priceInclusive": 197.43,"priceExclusive": 164.67,"beforeDiscountPrice": 164.67,"rooms": [{"roomName": null,"price": 164.67,"priceInclusive": 197.43,"beforeDiscountPrice": 164.67,"currency": "USD","cancellation": "NonRefundable","availableRooms": 65,"supplierId": 332}]}
Property mode — one row per hotel (detail + rates)
{"_input": "185945","_source": "S1-property","_scrapedAt": "2026-07-09T20:37:12Z","recordType": "PROPERTY","propertyId": 185945,"hotelName": "Marina Bay Sands","starRating": 5.0,"reviewScore": 8.9,"reviewCount": 48807,"latitude": 1.2836209535598755,"longitude": 103.86072540283203,"address": "10 Bayfront Avenue, Marina Bay, Singapore","city": "Singapore","cityId": 4064,"propertyType": "Hotel","url": "https://www.agoda.com/marina-bay-sands/hotel/singapore-sg.html","checkIn": "2026-08-10","checkOut": "2026-08-11","occupancy": { "adults": 2, "children": 0, "rooms": 1 },"currency": "EUR","isAvailable": true,"soldOut": false,"cheapestPrice": 744.45,"priceInclusive": 892.60,"priceExclusive": 744.45,"beforeDiscountPrice": 744.45,"rooms": [{"roomName": null,"price": 744.45,"priceInclusive": 892.60,"beforeDiscountPrice": 744.45,"currency": "EUR","cancellation": "FreeCancellation","availableRooms": 50,"supplierId": 332}]}
| Field | Type | Description |
|---|---|---|
propertyId | integer | Agoda's unique hotel ID. |
hotelName | string | Hotel name. |
starRating | number | Official star rating (1–5). |
reviewScore | number | Guest review score out of 10. |
reviewCount | integer | Number of guest reviews. |
latitude / longitude | number | Hotel coordinates. |
address | string | Street/area, city, country. |
city / cityId | string / integer | City name and Agoda city ID. |
propertyType | string | e.g. Hotel, Resort, Apartment. |
url | string | Agoda hotel page. |
checkIn / checkOut | string | The dates the price applies to. |
occupancy | object | Adults, children, rooms the price is for. |
currency | string | Currency of all prices in the record. |
isAvailable / soldOut | boolean | Availability for the requested stay. |
cheapestPrice | number | Cheapest nightly price, excluding taxes/fees. |
priceInclusive | number | Cheapest nightly price including taxes/fees. |
priceExclusive | number | Cheapest nightly price excluding taxes/fees. |
beforeDiscountPrice | number | Nightly price before any discount. |
rooms | array | Cheapest available room offers (price, taxes, cancellation policy, rooms left). Present when fetchRooms is on. |
Room rates mode — one row per hotel x night x room type x rate plan
{"_source": "S2-roomgrid","recordType": "ROOM_RATE","propertyId": 48690,"hotelName": "HARRIS Hotel Kuta Tuban Bali","starRating": 4.0,"area": "Kuta","checkIn": "2026-11-01","checkOut": "2026-11-02","roomTypeId": 3144655,"roomType": "HARRIS Room","ratePlanId": 612127,"maxOccupancy": 2,"roomsLeft": 5,"breakfastIncluded": false,"freeCancellation": false,"cancellationPolicy": "Non-refundable (Low price!)","payLater": false,"supplierId": 332,"supplier": "Agoda.com","currency": "IDR","price": 785124,"priceInclusive": 950000,"beforeDiscountPrice": 2539500,"totalStayInclusive": 950000,"soldOut": false}
| Field | Type | Description |
|---|---|---|
checkIn / checkOut | string | The night (stay) this rate is for. |
roomTypeId / roomType | number / string | Agoda room type. |
ratePlanId | number | Rate plan of this offer (a room type usually has several: with/without breakfast, refundable or not). |
breakfastIncluded, freeCancellation, payLater | boolean | Conditions of the rate plan. |
cancellationPolicy | string | Short cancellation text as shown on Agoda. |
roomsLeft | number | Rooms Agoda still sells at this rate. |
price / priceInclusive | number | Nightly price without / with taxes and fees, in currency (exactly as Agoda shows it). |
beforeDiscountPrice | number | Crossed-out nightly price (with taxes). |
totalStayInclusive | number | Whole stay with taxes (equals priceInclusive when nights is 1). |
supplierId, supplier | number / string | Who supplies the rate (332 = Agoda.com). |
soldOut | boolean | true on a row with no price: the room type is offered on other nights of the range but not on this one. |
Notes & limits
- Prices are per night for the requested dates, guests, and rooms, in your chosen currency.
- Search returns 45 hotels per page; raise
maxItemsPerSearchfor more, or use several destinations for volume. - A small share of hotels can show as sold out (no price) for a given date/occupancy — those rows carry
isAvailable: false. - In search results, room offers reflect the cheapest available option, so
roomNamemay be blank; use room rates mode for every room type and rate plan of a hotel. - Room rates mode makes one request per hotel per night: 30 nights for one hotel take well under a minute.
- For rate-parity / price tracking, run property mode on a schedule with the same
propertyIdsacross different dates — each run captures that day's live price. - Residential proxy (any country) is recommended for the most consistent results.
Other travel actors
| Actor | What it does |
|---|---|
| Booking.com Hotels Scraper | Hotel search results from Booking.com by destination and dates. |
| Agoda Hotel Rates Scraper | This actor — Agoda hotels, live rates, and review data. |