Discover/Agoda API
live

Agoda APIagoda.com

Access Agoda hotel rooms, guest reviews, destination autocomplete, and popular cities via 4 structured endpoints. No scraping setup required.

Endpoint health
verified 6d ago
search_autocomplete
get_popular_destinations
get_hotel_rooms
get_hotel_reviews
4/4 passing latest checkself-healing
Endpoints
4
Updated
21d ago

What is the Agoda API?

The Agoda API gives developers structured access to Agoda's hotel and destination data across 4 endpoints. Use search_autocomplete to resolve destination keywords into typed location objects with city and property IDs, then feed those IDs into get_hotel_rooms or get_hotel_reviews to retrieve room-level inventory details or paginated guest ratings. Each endpoint returns clean, typed JSON fields you can integrate directly into travel apps or aggregators.

Try it
Search keyword for destination lookup (e.g. 'Tokyo', 'Bangkok', 'Bali').
api.parse.bot/scraper/a4015091-6c26-4493-b397-cb2209fa5d64/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a4015091-6c26-4493-b397-cb2209fa5d64/search_autocomplete?query=Tokyo' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace agoda-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Agoda hotel search, reviews, and room inventory walkthrough."""
from parse_apis.agoda_api import Agoda, HotelNotFound

client = Agoda()

# Search destinations by keyword — each result is a typed Suggestion.
for suggestion in client.suggestions.search(query="Singapore", limit=3):
    print(suggestion.name, suggestion.object_id, suggestion.country)

# List popular international destinations — no params needed.
for dest in client.destinations.list(limit=5):
    print(dest.city_name, dest.country, dest.hotel_count)

# Get hotel reviews for a known property (Hilton Singapore Orchard).
review_data = client.hotelreviews.get(hotel_id=10602, page=1)
print(review_data.hotel_name, review_data.overall_score)
for review in review_data.reviews[:3]:
    print(review.rating, review.title, review.source)

# Get room inventory for the same hotel.
try:
    room_data = client.hotelrooms.get(hotel_id=10602)
    print(room_data.hotel_name)
    for room in room_data.rooms[:3]:
        print(room.name, room.is_available, room.size, room.bed_type)
except HotelNotFound as exc:
    print(f"Hotel not found: {exc.hotel_id}")

print("exercised: suggestions.search / destinations.list / hotelreviews.get / hotelrooms.get")
All endpoints · 4 totalmissing one? ·

Search for destination suggestions by keyword. Returns matching cities, neighborhoods, landmarks, and hotels from Agoda's autocomplete index. Results include city IDs and object IDs that can be used with other endpoints.

Input
ParamTypeDescription
queryrequiredstringSearch keyword for destination lookup (e.g. 'Tokyo', 'Bangkok', 'Bali').
Response
{
  "type": "object",
  "fields": {
    "suggestions": "array of suggestion objects, each containing name, display_name, city_id, object_id, type, and country"
  },
  "sample": {
    "data": {
      "suggestions": [
        {
          "name": "Tokyo",
          "type": null,
          "city_id": 0,
          "country": null,
          "object_id": 5085,
          "display_name": "Tokyo"
        },
        {
          "name": "Tokyo",
          "type": "most-popular-destinations",
          "city_id": 5085,
          "country": "JP",
          "object_id": 5085,
          "display_name": null
        }
      ]
    },
    "status": "success"
  }
}

About the Agoda API

Destination Search and ID Resolution

The search_autocomplete endpoint accepts a free-text query parameter (e.g. "Tokyo" or "Bali") and returns an array of suggestion objects. Each suggestion includes a name, display_name, city_id, object_id, type (city, neighborhood, landmark, or hotel), and country. The object_id field is the primary key you pass downstream to property-level endpoints.

Hotel Rooms and Reviews

get_hotel_rooms accepts a hotel_id (integer) and returns the hotel_name alongside a rooms array. Each room object exposes name, is_available, size, max_occupancy, bed_type, and a facilities list — enough to build a room-comparison view or availability checker without additional calls. get_hotel_reviews takes the same hotel_id plus an optional page integer (10 reviews per page). The response includes the hotel_name, an aggregate overall_score out of 10, and a reviews array where each entry carries rating, title, text, date, reviewer, country, and source platform.

Popular Destinations

get_popular_destinations requires no parameters and returns up to 20 destination objects, each with city_id, city_name, country, and hotel_count. This endpoint is useful for seeding landing pages, populating dropdown defaults, or building a curated city guide without requiring a user query first.

Reliability & maintenanceVerified

The Agoda API is a managed, monitored endpoint for agoda.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when agoda.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official agoda.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a hotel search UI that resolves typed city names to Agoda city IDs using search_autocomplete
  • Aggregate guest review scores and sentiment by pulling paginated reviews via get_hotel_reviews
  • Compare room configurations, bed types, and occupancy limits across properties with get_hotel_rooms
  • Populate a 'top destinations' carousel using hotel_count and city metadata from get_popular_destinations
  • Cross-reference reviewer country data from get_hotel_reviews to analyze source market distribution
  • Resolve landmark or neighborhood queries to hotel object IDs for property-level lookups
  • Track changes in overall_score over time by periodically polling get_hotel_reviews for a fixed hotel_id
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Agoda offer an official developer API?+
Agoda operates an affiliate and supply API program aimed at travel industry partners, accessible at developers.agoda.com, but it requires a business partnership agreement. This Parse API provides open, structured access without that approval process.
What does get_hotel_reviews return beyond the review text?+
Each review object includes a numeric rating, a title, the full review text, the submission date, the reviewer name, the reviewer's country, and a source field indicating which platform the review originated from. The endpoint also returns the hotel's aggregate overall_score out of 10 at the top level.
Does the API return real-time room pricing or availability dates?+
No. get_hotel_rooms returns room metadata — name, size, max_occupancy, bed_type, facilities, and an is_available boolean — but does not include nightly rates, check-in/check-out date filtering, or inventory counts. You can fork this API on Parse and revise it to add a date-parameterized pricing endpoint.
Can I filter reviews by rating, language, or reviewer country?+
The get_hotel_reviews endpoint supports pagination via the page parameter but does not expose filtering by rating value, language, or country on the request side. Those fields are present in each review object, so client-side filtering is possible after fetching. You can fork the API on Parse and revise it to add server-side filter parameters.
How do I get a hotel_id to use with get_hotel_rooms or get_hotel_reviews?+
Run search_autocomplete with a hotel name or destination keyword. Results with type set to hotel will include an object_id field — that integer is the hotel_id accepted by both property-level endpoints. City-level results return a city_id which is not interchangeable with hotel_id.
Page content last updated . Spec covers 4 endpoints from agoda.com.
Related APIs in TravelSee all →
hotels.com API
Search for hotels across millions of properties, view room availability and pricing, and get detailed information about accommodations at specific destinations. Get location suggestions and discover popular travel spots to help plan your next getaway.
tripadvisor.com API
Search for travel destinations and discover hotels with detailed information like ratings, reviews, and amenities. Get comprehensive place details to help plan your perfect trip and compare accommodation options.
travelocity.com API
Search for travel destinations and browse hotel listings on Travelocity. Compare options by location, dates, and availability to find and book accommodation.
hotelscan.ai API
Search and compare hotels with detailed guest reviews, room availability, and pricing information across flexible dates. Find similar properties, get autocomplete suggestions for locations, and access comprehensive hotel details all in one place.
orbitz.com API
Search for hotels and destinations on Orbitz, then view detailed property information including pricing and amenities. Get typeahead location suggestions as you type to quickly find your travel destination.
traveloka.com API
Search and compare hotels across Traveloka by region or similar properties to instantly access pricing, star ratings, names, and location details. Discover popular destinations and find the perfect accommodation match for your travel plans.
trivago.com.br API
Search hotels across Trivago by destination, dates, and guest count. Filter by price range and currency, get autocomplete suggestions for locations, and retrieve detailed hotel information including star ratings, guest reviews, and pricing from multiple booking sites.
expedia.com API
Search for hotels and flights across Expedia while viewing detailed property information to compare prices and amenities for your travel plans. Get comprehensive travel options all from one integration without manually browsing the website.