Agoda Hotel & Room Scraper
Pricing
from $4.00 / 1,000 hotel results
Agoda Hotel & Room Scraper
Scrape hotel room availability, pricing, and policies from Agoda.com. Get real-time rates, breakfast info, cancellation policies, and room details for any hotel. Supports multiple hotels, date ranges, guest configs, and currencies (USD/THB/IDR/SGD/MYR).
Pricing
from $4.00 / 1,000 hotel results
Rating
5.0
(1)
Developer
Datawebot
Actor stats
1
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape hotel room availability, pricing, and policies from Agoda.com — one of Asia's largest hotel booking platforms.
What You Get
Room-level data from Agoda's internal API, including:
- Room info: name, type, max occupancy
- Pricing: current price, original price (before discount), currency
- Policies: breakfast included, free cancellation, pay later
- Stay details: check-in, check-out dates
- Raw data: full API response in
_rawfield
Input
{"hotelUrls": [{"url": "https://www.agoda.com/the-sukhothai-bangkok/hotel/bangkok-th.html", "name": "The Sukhothai Bangkok"},{"url": "https://www.agoda.com/mandarin-oriental-bangkok/hotel/bangkok-th.html", "name": "Mandarin Oriental"}],"checkinDate": "2026-04-15","checkoutDate": "2026-04-16","rooms": 1,"adults": 2,"children": 0,"currency": "USD","locale": "en-us"}
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
hotelUrls | array | ✅ | — | List of {url, name} objects |
checkinDate | string | No | +7 days | Check-in date (YYYY-MM-DD) |
checkoutDate | string | No | +1 night | Check-out date (YYYY-MM-DD) |
rooms | integer | No | 1 | Number of rooms |
adults | integer | No | 2 | Number of adults |
children | integer | No | 0 | Number of children |
currency | string | No | USD | Currency (USD, THB, IDR, SGD, MYR) |
locale | string | No | en-us | Language/locale (en-us, th-th, id-id) |
headless | boolean | No | true | Run browser headless |
Output
Raw data from Agoda's internal API. Each item is one room option:
{"hotelName": "The Sukhothai Bangkok","hotelUrl": "https://www.agoda.com/the-sukhothai-bangkok/hotel/bangkok-th.html","roomName": "Superior King","roomType": "Superior","price": 189.00,"originalPrice": 250.00,"currency": "USD","maxOccupancy": 2,"breakfastIncluded": true,"freeCancellation": true,"payLater": false,"checkin": "2026-04-15","checkout": "2026-04-16","_mode": "hotel","_hotel_index": 0,"_raw": { ... }}
Note: The
_rawfield contains the full room object from Agoda's API with all nested data (pricing details, images, amenities, etc.).
How It Works
- URL construction — builds Agoda URLs with check-in/out, guests, currency params
- Browser automation — loads hotel page via Playwright headless Chromium
- API interception — intercepts Agoda's internal
GetSecondaryDataAPI call - Data extraction — parses room grid data, pricing, and policies from API response
Proxy
No proxy by default (direct connection). For large-scale scraping (>50 hotels), add a proxy to avoid rate limits.
{"hotelUrls": [...],"proxyUrl": "http://user:pass@host:port"}
Billing
Billed per hotel scraped (1 event = 1 hotel page).
| Metric | Price |
|---|---|
| Per hotel | $0.004 |
| Per 1000 hotels | $4.00 |
Check the Actor's pricing tab for current rates.
Limits
- Max hotels per run: no hard limit, but ~50 hotels recommended per run
- Timeout: 60 seconds per hotel page
- Browser: Playwright Chromium (headless)
Use Cases
- Price Comparison: Compare room rates across hotels in a city
- Revenue Management: Monitor competitor pricing strategies
- Travel Analytics: Track hotel availability and pricing trends
- Booking Intelligence: Identify deals, discounts, and availability
Changelog
0.1 (2026-04-02)
- Initial release
- Hotel room scraping via Playwright API interception
- Support for multiple hotels, date ranges, guest configs
- Currency and locale options