Agoda Hotel Scraper — Hotels, Rooms & Reviews API avatar

Agoda Hotel Scraper — Hotels, Rooms & Reviews API

Pricing

from $2.00 / 1,000 hotel extracteds

Go to Apify Store
Agoda Hotel Scraper — Hotels, Rooms & Reviews API

Agoda Hotel Scraper — Hotels, Rooms & Reviews API

Scrape Agoda hotel listings with star rating, guest score, review count, nightly price and property type. Search by location, coordinates, or URL, plus location autocomplete. Opt-in room rates, availability, price calendar and guest reviews.

Pricing

from $2.00 / 1,000 hotel extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Agoda Hotel Scraper — Hotels, Rooms & Reviews API 🏨

SIÁN Agency Store Store-Airbnb Property Scraper Store-Zillow Property Scraper Store-StreetEasy Property Scraper

🎉 NEW: Bundle hotels + room rates + guest reviews in a single run — no three-actor pipeline

Built for hospitality analysts, travel researchers, OTA revenue teams, and rate-shopping tools that need clean Agoda data fast.


📋 Overview

Agoda data without the manual dance. Pull hotels, room rates, availability, nightly price trends, guest scores, and reviews from anywhere on Agoda — by city, coordinates, or URL — in one structured run.

Why hospitality teams choose us:

  • 4 search modes — free-text location (auto-paginated), lat/lng radius, Agoda URL, and location autocomplete for city-ID lookup
  • Direct-API speed — sub-2-second/hotel, no Cloudflare/captcha brittleness like browser-scrapers
  • 🛏️ Bundled room rates & availability — opt-in fetchRooms pulls every room type with its rate-plan offers (price, free cancellation, breakfast, occupancy) in the same run
  • 📆 Nightly price-trend calendar — a 60-day price grid per hotel so you can spot the cheapest dates and demand peaks
  • 💯 Guest score + reviews — 0–10 aggregate score plus opt-in per-review sentiment (title, comment, traveller type, stay dates)
  • 💰 Tiered pay-per-result — $0.009 FREE → $0.00125 DIAMOND per hotel, only charged for rows you actually get
  • 💎 Hospitality KPIs out of the box — avg guest score, star rating, price distribution, per-city / per-area / per-type breakdowns in a default HTML report

✨ Features

  • 🧭 Location, coordinate & URL search — target a whole city, a radius around a point, or a specific Agoda search URL
  • 🔎 Location autocomplete — resolve fuzzy place names to Agoda city IDs and hotel counts
  • Rich hotel records — star rating, guest score, review count, property type, address, coordinates, and images
  • 🛏️ Room-level rates — master rooms with every rate-plan offer: price, cross-out price, discount, cancellation policy, breakfast, instant booking, occupancy
  • 📆 Price calendar — per-hotel nightly price trend to time the best booking window
  • 📝 Guest reviews enrichment — score, headline, translated + original comment, traveller type, stay dates, property responses
  • 💱 Stay-spec + currency — pass check-in / check-out / adults / rooms / currency for date-accurate quotes in any ISO currency
  • 📊 Hospitality KPIs report — auto-generated HTML with distributions and market breakdowns
  • 🔁 Built-in deduplication — hotels deduped across overlapping queries automatically

🎬 Quick Start

Point the actor at a city, pick a search mode, and run. Free-text location works out of the box (it auto-paginates), and enrichment is one checkbox away.

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~agoda-hotel-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchMode": "bylocation", "location": "Bangkok"}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose a search mode

Pick bylocation (free text), bycoordinates (lat/lng + radius), byurl (an Agoda URL), or autocomplete (location lookup).

Step 2: Add optional enrichment

Toggle fetchRooms for room rates, availability, and the price calendar. Toggle fetchReviews for guest reviews.

Step 3: Run and export

Start the run and export results as JSON, CSV, or Excel directly from the Apify dataset.

That's it! In under a minute, you'll have:

  • A clean table of Agoda hotels with star rating, guest score, and price
  • Optional room-rate and guest-review rows per hotel
  • A hospitality KPI HTML report

📥 Input Configuration

FieldTypeRequiredDescription
searchModestringNobylocation (default), bycoordinates, byurl, or autocomplete
locationstringFor bylocationCity / region / landmark name
querystringFor autocompletePartial location name to look up
latitude / longitudenumberFor bycoordinatesCenter point for a radial search
radiusnumberNoRadius in km (default 5, range 0.1–50)
urlstringFor byurlFull Agoda search / city URL
checkIn / checkOutstringNoStay dates (YYYY-MM-DD) for date-accurate quotes
adults / roomsintegerNoOccupancy (defaults 2 adults, 1 room)
currencystringNoISO currency code (default USD)
maxResultsintegerNoCap on hotels per query (default 30, max 300)
fetchRoomsbooleanNoRoom rates, availability & price calendar (PAID)
fetchReviewsbooleanNoGuest reviews (PAID)

Example — city search with enrichment:

{
"searchMode": "bylocation",
"location": "Bangkok",
"checkIn": "2026-08-15",
"checkOut": "2026-08-17",
"currency": "USD",
"fetchRooms": true,
"fetchReviews": true
}

Radial search around a coordinate:

{
"searchMode": "bycoordinates",
"latitude": 13.7563,
"longitude": 100.5018,
"radius": 5
}

📤 Output

Results are saved to the Apify dataset. Hotel rows are the primary output; room and review rows are added when enrichment is enabled.

FieldTypeDescription
hotelIdintegerUnique Agoda property ID
namestringHotel name
starRatingnumberOfficial star rating (0–5)
reviewScorenumberAggregate guest score (0–10)
reviewCountintegerNumber of guest reviews
propertyTypestringAgoda property type
pricingobjectNightly price (currency, per-night inclusive/exclusive/strikethrough)
priceCalendararrayNightly price-trend calendar (rooms enrichment)
addressobjectCity, area, country, cityId
locationobjectLatitude / longitude
mediaobjectThumbnail + image array
urlstringAgoda hotel page URL
offersarray(room rows) Rate-plan offers: price, cancellation, breakfast, occupancy
rating / reviewTitle / commentmixed(review rows) Guest score, headline, and body

Example hotel row:

{
"_type": "hotel",
"hotelId": 61208465,
"name": "Palette Hi Hotel Bangkok",
"starRating": 4.0,
"reviewScore": 7.8,
"reviewCount": 1558,
"propertyType": "NormalProperty",
"address": { "city": "Bangkok", "area": "Ratchada", "country": "Thailand", "cityId": 9395 },
"location": { "latitude": 13.739198, "longitude": 100.553263 },
"url": "https://www.agoda.com/hi-hotel-bangkok/hotel/bangkok-th.html"
}

💼 Use Cases & Examples

1. Hospitality Market Intelligence

Analysts benchmarking a city's hotel supply, quality, and price bands.

Input: A city via bylocation Output: Every hotel with star rating, guest score, and price distribution Use: Size a market, spot quality gaps, and build a comp set in minutes.

2. Travel & OTA Research

Product and content teams mapping inventory across destinations.

Input: Multiple cities or coordinate clusters Output: Structured hotel catalogs ready for dashboards and feeds Use: Power travel guides, destination pages, and metasearch comparisons.

3. Hotel Rate Benchmarking

Revenue managers tracking competitor pricing and availability.

Input: A location plus fetchRooms Output: Room-level rate plans and a nightly price calendar per hotel Use: Rate-shop rivals, time promotions, and defend RevPAR.

4. Guest-Review Sentiment Analysis

Reputation and CX teams mining what guests actually say.

Input: A location plus fetchReviews Output: Per-review score, headline, comment, traveller type, and stay dates Use: Track sentiment trends and surface recurring complaints.

5. Competitor Comp-Set Monitoring

Owners and asset managers watching a fixed set of nearby properties.

Input: A tight radius via bycoordinates Output: A repeatable snapshot of the local comp set with scores and prices Use: Schedule weekly pulls to monitor positioning over time.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/agoda-hotel-scraper').call({
searchMode: 'bylocation',
location: 'Bangkok'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/agoda-hotel-scraper').call(
run_input={'searchMode': 'bylocation', 'location': 'Bangkok'}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~agoda-hotel-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchMode": "bylocation", "location": "Bangkok"}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook
  2. HTTP Request: Call the actor API
  3. Process: Handle JSON results
  4. Action: Save to a sheet, alert on rate changes, or feed a dashboard

📊 Performance & Pricing

FREE Tier (Try It Now)

  • Up to 25 hotels per run — full feature access, same data quality
  • No credit card required
  • Perfect for testing and small projects
  • Unlimited hotels per run, plus room-rate and review enrichment
  • Faster processing, no delays
  • Pay-per-result: only charged for successful rows

💰 Fair, tiered pricing — $0.009 FREE → $0.00125 DIAMOND per hotel; room rates and reviews billed only when you enable them.

🔗 View current pricing


❓ Frequently Asked Questions

Q: How many hotels can I process? A: FREE tier: up to 25 per run. PAID tier: unlimited, with auto-pagination on location search.

Q: Where do live room rates come from? A: Enable fetchRooms — the actor pulls every room type with its rate-plan offers and a nightly price calendar per hotel.

Q: Are guest reviews included? A: Enable fetchReviews — you get per-review score, headline, comment, traveller type, and stay dates.

Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.

Q: Can I search around a specific point? A: Yes — use bycoordinates with latitude, longitude, and a radius in kilometers.

Q: Is this legal? A: Yes — the actor only extracts publicly available data. See the legal section below.


🐛 Troubleshooting

No hotels returned

  • Try a broader location term, or use autocomplete to confirm the place resolves on Agoda.
  • For bycoordinates, widen the radius.

No room rates or reviews in the dataset

  • Room rates and reviews are PAID-tier enrichment — enable fetchRooms / fetchReviews on a paid Apify plan.

A specific hotel is missing a price

  • Search rows do not always carry a live nightly rate — enable fetchRooms to pull the room-level price and the price calendar.

⚠️ Trademark Disclaimer

Agoda™ is a trademark of Agoda Company Pte. Ltd. This actor is an independent, unofficial tool and is not affiliated with, endorsed by, sponsored by, or in any way officially connected to Agoda Company Pte. Ltd. or Booking Holdings Inc. All product names, logos, and brands are the property of their respective owners and are used for identification purposes only. Use this actor in compliance with Agoda's Terms of Service and all applicable laws.


Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools