Agoda API
The Agoda API returns hotel and destination data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary destinations endpoint returns suggestions (object id and type, name, city, country, hotel count), and you can browse a city, pull a hotel detail and reviews. It is built for travel apps and hotel price monitoring that need Agoda data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, detail, on .
{
"method": "POST",
"url": "https://api.reefapi.com/agoda/v1/detail",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"hotel_id": 294217
}
}{
"ok": true,
"meta": {
"api": "agoda",
"endpoint": "detail",
"mode": "live",
"latency_ms": 2021,
"record_count": 1,
"bytes": 512722,
"cache_hit": false,
"method": "cronos_internal_json"
},
"data": {
"hotel": {
"hotel_id": 294217,
"name": "[redacted-name]",
"english_name": "The Okura Prestige Bangkok",
"accommodation_type": "Hotel",
"star_rating": 5,
"address": {
"full": "Park Ventures Ecoplex, 57/1 Wireless Road , Sukhumvit, Bangkok, Thailand, 10330",
"line": "Park Ventures Ecoplex, 57/1 Wireless Road ",
"area": "Sukhumvit",
"city": "Bangkok",
"city_id": 9395,
"country": "Thailand",
"postal_code": "10330"
},
"description": {
"overview": "<b>Luxury and Convenience at <b>The Okura Prestige Bangkok</b></b><br><br>Welcome to <b>The Okura Prestige Bangkok</b>, a luxurious 5-star hotel located in the heart of Bangkok, Thailand. With its prime location just 0.01 km from the city center, this hotel offers unparalleled convenience for both leisure and business travelers.\n\nUpon arrival, guests will be greeted by the attentive and friendly staff, ensuring a warm and inviting atmosphere from the moment you step through the doors. The hotel's modern and elegant design, combined with traditional Thai influences, creates a unique and sophist",
"snippet": "",
"hotelFormerName": "[redacted-phone]"
},
"location_highlight": "Inside city center",
"facilities": [
{
"group": "Take a look at these facilities:",
"features": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
]
},
{
"group": "Languages spoken",
"features": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
]
},
{
"group": "Accessibility",
"features": [
"[trimmed-depth]",
"[trimmed-depth]"
]
}
],
"policies": {
"childPolicies": [
{
"isInfant": "[trimmed-depth]",
"policy": "[trimmed-depth]",
"description": "[trimmed-depth]"
},
{
"isInfant": "[trimmed-depth]",
"policy": "[trimmed-depth]",
"description": "[trimmed-depth]"
}
],
"extrabedPolicies": [
{
"type": "[trimmed-depth]",
"description": "[trimmed-depth]"
}
],
"policyNotes": [
"Children under 12 years old stay for free if using existing bed.",
"The first child under 12 years old will receive breakfast free of charge",
"Guests must provide a valid form of government regulated identification upon check-in including; a passport, ID card, driver’s license, etc."
],
"hideAutomatedChildPolicyText": false,
"extraBedAge": 1,
"hasBcomChildPolicy": false
},
"important_notes": [],
"nearby_places": [
{
"name": "[redacted-name]",
"distance": 1.47,
"latitude": 13.746824,
"longitude": 100.534836
},
{
"name": "[redacted-name]",
"distance": 1.9,
"latitude": 13.74543,
"longitude": 100.530403
},
{
"name": "[redacted-name]",
"distance": 2.24,
"latitude": 13.749311,
"longitude": 100.528206
}
],
"faq": [
{
"question": "What type of restaurant cuisines are offered at [hotel_name]?",
"answer": "The Okura Prestige Bangkok has an abundance of dining options for you to indulge in while lounging at this property, which include International cuisine, Western cuisine, Buffet in restaurant, Asian cuisine, and Vegetarian restaurant. ",
"category": "property_faq_hotel_facilities_food and drink"
},
{
"question": "Does [hotel_name] have a fitness center?",
"answer": "The Okura Prestige Bangkok offers free fitness center that is opportunely situated at the tip of your finger, making it possible for you to get your daily exercise routine in at any hour of the day so you can spend your holiday the way you want. For more details, please contact the property for more information.",
"category": "property_faq_hotel_facilities_things-to-do"
},
{
"question": "Does [hotel_name] offer an option for contactless check-in and check-out?",
"answer": "At The Okura Prestige Bangkok, guests can take part in contactless check-in and check-out option offered by this property for your ease of use and safety.",
"category": "property_faq_hotel_facilities_cleanliness and safety"
}
],
"url_path": null
}
}
}What the Agoda API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| destinations | Resolve a free-text place ('Bangkok', 'Tokyo', 'Maldives', an airport or a landmark) into Agoda's destination ids. Returns matched cities, areas, airports, points of interest and hotels with their object_id, type and (for cities) the city_id + hotel count. Use this first to get the city_id the city_browse action needs. | Travel apps call destinations to resolve a free-text place ('Bangkok', 'Tokyo', 'Maldives', an airport or a landmark) into Ago…. | query, language |
| city_browse | Browse a city's popular hotels and accommodation themes. Returns ~100 popular hotels (name + Agoda detail URL), property-type theme links (apartments, hostels, resorts…) and the city's travel guides. Pass a numeric city_id from the destinations action. | Pricing monitors call city_browse to get browse a city's popular hotels and accommodation themes. | city_id, language |
| detail | Full hotel record by hotel_id (or hotel URL): name, accommodation type, star rating, full address + city/country, coordinates, description, facilities (grouped), policies, important notes, nearby places of interest and the property FAQ. | Itinerary products call detail to get full hotel record by hotel_id (or hotel URL). | hotel_id, url, language |
| reviews | Paginated guest reviews for one hotel (70 per page): star rating, title, separate positive/negative text, review date, reviewer country, traveler type, room type and length of stay, the owner's reply and helpful votes. The response also carries the hotel's overall score and total review count. Page with `page` until meta.has_more is false. | Hospitality analysts call reviews to get paginated guest reviews for one hotel (70 per page). | hotel_id, url, page, sort_by, language |
Call detail from your stack
curl -X POST https://api.reefapi.com/agoda/v1/detail \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"hotel_id":294217}'import requests
r = requests.post(
"https://api.reefapi.com/agoda/v1/detail",
headers={"x-api-key": REEF_KEY},
json={
"hotel_id": 294217
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/agoda/v1/detail", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"hotel_id": 294217
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.agoda.detail with {"hotel_id":294217}.Who uses this API and why
- Travel apps call destinations then city_browse to show hotels for a place.
- Price monitors use detail to track a property's rates.
- Reputation tools use reviews to track guest sentiment.
Questions developers ask before integrating
What is the Agoda API?
Agoda API is a ReefAPI endpoint group for agoda It returns live JSON through POST requests under /agoda/v1.
Is the Agoda API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Agoda calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Agoda login or account?
No login to Agoda is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Agoda data?
The page example is captured from a live destinations call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Agoda API use?
Agoda actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Agoda from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call agoda actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Agoda API a Agoda scraper?
It is the managed alternative to a DIY Agoda scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same agoda back as clean JSON.
Why does my Agoda scraper keep getting blocked?
Most Agoda scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.