Agoda Hotels Scraper avatar

Agoda Hotels Scraper

Pricing

from $0.45 / 1,000 hotel results

Go to Apify Store
Agoda Hotels Scraper

Agoda Hotels Scraper

Scrape public Agoda hotel listings, prices, ratings, amenities, and property URLs by destination.

Pricing

from $0.45 / 1,000 hotel results

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Extract public Agoda hotel listings, nightly prices, ratings, review counts, locations, amenities, images, and property URLs from Agoda search result pages. Use it for travel market research, hotel price monitoring, OTA analysis, hospitality lead generation, and destination benchmarking.

What does Agoda Hotels Scraper do?

Agoda Hotels Scraper turns public Agoda search pages into structured datasets. Give it one or more Agoda search URLs, or provide a city ID and stay details, and it returns hotel/property rows that are ready to export to JSON, CSV, Excel, Google Sheets, or your own database.

Who is it for?

  • 🏨 Hotel revenue teams tracking competitor prices and review signals.
  • ✈️ Travel market researchers comparing destinations and property supply.
  • 📊 OTA analysts building hotel availability and pricing dashboards.
  • 🧳 Travel agencies collecting public property options for trip planning.
  • 🔎 Lead-generation teams finding hotels in specific Agoda destinations.

Why use this scraper?

Manual hotel research is slow and hard to repeat. This actor gives you repeatable extraction with bounded result counts, stay parameters, currency hints, and consistent output fields.

What data can you extract?

FieldDescription
searchUrlAgoda search page used for the result
propertyIdProperty identifier when visible in the URL
nameHotel or property name
urlAgoda property page URL
locationArea, city, and nearby landmark text
addressAddress/location text when visible
starRatingStar rating when visible
reviewScorePublic Agoda review score
reviewCountNumber of reviews
priceVisible nightly price
currencyVisible or requested currency
taxesFeesNoteTaxes/fees text shown near the price
availabilityAvailability flag when Agoda explicitly shows unavailable/sold out
amenitiesVisible amenity or benefit snippets
imageUrlMain property image URL
scrapedAtISO timestamp of extraction

How much does it cost to scrape Agoda hotel listings?

The actor uses pay-per-event pricing. You pay a small $0.006 start fee and then a per-hotel result charge. Formula-derived cloud validation set the BRONZE tier at about $0.76 per 1,000 hotel results before volume discounts.

How to use it

  1. Open the actor on Apify.
  2. Add Agoda search URLs, or enter a city ID and stay details.
  3. Set maxItems to the number of hotels you need.
  4. Run the actor.
  5. Download the dataset or connect it to your workflow.

Input options

Agoda search URLs

Use searchUrls when you already have Agoda search result pages. This is the most precise option because it preserves Agoda filters in the URL.

City ID and destination

Use cityId plus optional destination text when you want the actor to build a basic Agoda search URL for you.

Stay details

Set check-in/check-out dates, adults, children, and rooms to match the travel scenario you want to monitor.

Currency and language

Use currency and language to influence how Agoda displays price and page text.

Maximum hotels

maxItems caps how many hotel listings are saved. Keep it small for test runs and increase it for production monitoring.

Proxy configuration

Proxy use is optional. Start without a proxy for small tests. Enable Apify Proxy if your larger repeated runs encounter blocking or regional differences.

Example input

{
"searchUrls": [
{ "url": "https://www.agoda.com/search?city=9395&adults=2&rooms=1" }
],
"maxItems": 25,
"currency": "EUR",
"language": "en-US",
"proxyConfiguration": { "useApifyProxy": false }
}

Example output

{
"searchUrl": "https://www.agoda.com/search?city=9395&adults=2&rooms=1",
"propertyId": null,
"name": "Hyatt Regency Bangkok Suvarnabhumi Airport",
"url": "https://www.agoda.com/...",
"location": "Suvarnabhumi Airport, Bangkok - 18.2 km to center",
"address": "Suvarnabhumi Airport, Bangkok - 18.2 km to center",
"latitude": null,
"longitude": null,
"starRating": 4,
"reviewScore": 8.5,
"reviewCount": 23131,
"price": 135,
"currency": "EUR",
"taxesFeesNote": "Per night after taxes and fees",
"availability": null,
"amenities": ["Free 24/7 Shuttle Service"],
"imageUrl": "https://pix8.agoda.net/...jpg",
"scrapedAt": "2026-07-03T19:24:02.763Z"
}

Tips for best results

  • Use real Agoda search URLs when you need exact filters.
  • Keep maxItems low while testing.
  • Use the same stay dates for recurring price comparisons.
  • Save the original searchUrl so you can audit where each row came from.
  • Enable proxy only when needed to control costs.

Common use cases

Hotel price monitoring

Run the same destination and dates daily to watch public nightly prices.

Destination benchmarking

Compare hotel count, average review scores, and visible pricing across cities.

Competitor tracking

Track public listings near a hotel, airport, landmark, or resort area.

Lead generation

Collect property names and Agoda URLs for hospitality outreach workflows.

Integrations

  • Google Sheets: export CSV or connect via Apify integrations.
  • BI dashboards: send dataset rows to BigQuery, Snowflake, or PostgreSQL.
  • Alerts: compare today’s dataset with yesterday’s and notify on price changes.
  • CRM workflows: enrich hotel leads with property URLs and public ratings.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/agoda-hotels-scraper').call({
searchUrls: [{ url: 'https://www.agoda.com/search?city=9395&adults=2&rooms=1' }],
maxItems: 25,
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('APIFY_TOKEN')
run = client.actor('fetch_cat/agoda-hotels-scraper').call(run_input={
'searchUrls': [{'url': 'https://www.agoda.com/search?city=9395&adults=2&rooms=1'}],
'maxItems': 25,
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~agoda-hotels-scraper/runs?token=APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchUrls":[{"url":"https://www.agoda.com/search?city=9395&adults=2&rooms=1"}],"maxItems":25}'

MCP usage

Use the Apify MCP server from Claude Code, Claude Desktop, Cursor, or VS Code with the tool-scoped URL:

https://mcp.apify.com/?tools=fetch_cat/agoda-hotels-scraper

Add it from Claude Code:

$claude mcp add apify-agoda-hotels --transport http "https://mcp.apify.com/?tools=fetch_cat/agoda-hotels-scraper"

Claude Desktop JSON config example:

{
"mcpServers": {
"apify-agoda-hotels": {
"url": "https://mcp.apify.com/?tools=fetch_cat/agoda-hotels-scraper"
}
}
}

Cursor and VS Code MCP setup:

  1. Open your editor's MCP server settings.
  2. Add a new HTTP MCP server named apify-agoda-hotels.
  3. Use https://mcp.apify.com/?tools=fetch_cat/agoda-hotels-scraper as the server URL.
  4. Save, reload the MCP tools list, and select the Agoda Hotels Scraper tool when prompting.

Example prompts:

  • “Scrape 50 Agoda hotels in Bangkok and summarize average review score.”
  • “Find public Agoda hotel prices for my saved search URL.”
  • “Compare the cheapest visible hotels from two Agoda city searches.”

Limits and caveats

Agoda pages are dynamic and can vary by market, date, device, language, and currency. Some fields may be missing when Agoda does not display them on the search page. Prices are public visible prices at scrape time, not guaranteed booking quotes.

FAQ and troubleshooting

Why did I get fewer hotels than requested?

The search page may show fewer visible results, filters may be restrictive, or Agoda may not load more results for that market. Try a broader search URL or lower filters.

Why is currency different from my input?

Agoda can override display currency based on region, cookies, or URL state. The actor reports the visible currency when available.

Should I enable proxy?

Start without proxy for small tests. Enable Apify Proxy for repeated production runs or if Agoda blocks your traffic.

Legality

This actor extracts public information visible on Agoda pages. Use it responsibly, respect applicable laws, and avoid collecting private, account-only, or personal data. Review Agoda’s terms and your legal basis before running large-scale monitoring.

Support

If a run fails, include the run ID, input, and expected destination or Agoda URL when asking for help. This makes reproduction faster.