Wire it up. See the schema.
- 50 free requests
- Every endpoint included
- No credit card required
- Same schema as paid
A quick demo might save your team weeks of engineering work.
Resources
Free Tools
Agoda API
Search cities, find hotels by name, and pull property profiles, selected photos, dated room availability, tax-inclusive prices, cancellation terms, and guest reviews from Agoda as clean JSON.
curl "https://api.stayapi.com/v1/agoda/search" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "city_id=16056" \ -d "check_in=2027-05-15" \ -d "check_out=2027-05-17" \ -d "adults=2" \ -d "rooms=1" \ -d "currency=USD" \ -d "page=1"
curl "https://api.stayapi.com/v1/agoda/hotel/lookup" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "query=Banyan Tree Phuket"
curl "https://api.stayapi.com/v1/agoda/hotel/prices" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "hotel_id=10884" \ -d "check_in=2027-05-15" \ -d "check_out=2027-05-17" \ -d "adults=2" \ -d "rooms=1" \ -d "children_ages=5,8" \ -d "currency=USD"
curl "https://api.stayapi.com/v1/agoda/hotel/details" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "hotel_id=10884"
{
"success": true,
"city_id": 16056,
"city_name": "Phuket",
"search": {
"check_in": "2027-05-15",
"check_out": "2027-05-17",
"adults": 2,
"rooms": 1,
"children": 0,
"children_ages": []
},
"currency": "USD",
"hotels": [
{
"hotel_id": 10884,
"name": "Banyan Tree Phuket",
"url": null,
"star_rating": 5.0,
"latitude": null,
"longitude": null,
"available": true,
"price_per_room_per_night": {
"exclusive": 150.0,
"taxes_and_fees": 30.0,
"total": 180.0
},
"stay_price": {
"exclusive": 300.0,
"taxes_and_fees": 60.0,
"total": 360.0
}
}
],
"pagination": {
"page": 1,
"page_size": 10,
"returned_count": 1,
"total_filtered_hotels": 1
},
"retrieved_at": "2026-10-14T12:00:00Z"
}
{
"success": true,
"query": "Banyan Tree Phuket",
"hotels": [
{
"hotel_id": 10884,
"name": "Banyan Tree Phuket",
"city_id": 16056,
"city": "Phuket",
"country_code": "TH",
"location": "Phuket, Thailand",
"search_url": "https://www.agoda.com/search?hotel=10884&selectedproperty=10884",
"image_url": null
}
],
"count": 1,
"retrieved_at": "2026-10-14T12:00:00Z"
}
{
"success": true,
"hotel_id": 10884,
"currency": "USD",
"available": true,
"sold_out": false,
"lowest_price": {
"exclusive": 600.84,
"taxes_and_fees": 124.36,
"total": 725.2
},
"room_types": [
{
"room_id": 3122086,
"name": "Banyan Pool Villa",
"rates": [
{
"rate_plan_id": 1019134,
"available_rooms": 4,
"breakfast_included": true,
"free_cancellation": false,
"stay_price": {
"exclusive": 600.84,
"taxes_and_fees": 124.36,
"total": 725.2
}
}
]
}
]
}
{
"success": true,
"hotel_id": 10884,
"name": "Banyan Tree Phuket",
"address": {
"is_obfuscated": false,
"full": "33 Moo 4 Srisoonthorn Road Cherngtalay, Bang Thao, Phuket, Thailand, 83110",
"street": "33 Moo 4 Srisoonthorn Road Cherngtalay",
"city": "Phuket",
"city_id": 16056,
"area": "Bang Thao",
"country": "Thailand",
"country_id": 106,
"postal_code": "83110"
},
"accommodation_type": "Hotel",
"star_rating": 5.0,
"latitude": 8.010550498962402,
"longitude": 98.29580688476563,
"description": "Experience Luxury and Tranquility at Banyan Tree Phuket Nestled just 15 kilometers from the vibrant ",
"amenities": [
{
"group": "Take a look at these facilities:",
"name": "Fitness center"
},
{
"group": "Take a look at these facilities:",
"name": "Garden"
}
],
"photos": [
{
"url": "https://pix8.agoda.net/hotelImages/10884/0/0fb9f4117c4170172a443131152862a7.jpg?va=1&ce=3&s=1024x768",
"caption": "Exterior view"
}
],
"retrieved_at": "2026-10-14T14:50:59.864184+00:00",
"useful_information": {
"number_of_rooms": 218,
"year_opened": 1994,
"check_in_from": "03:00 PM",
"check_in_until": "12:00 AM",
"check_out_from": null,
"check_out_until": "12:00 PM",
"groups": [
{
"name": "The property",
"items": [
{
"label": "Number of rooms",
"value": "218"
},
{
"label": "Year property opened",
"value": "1994"
}
]
}
]
}
}
Trusted by hospitality teams at
Agoda's partner APIs are not an open self-serve data surface. Building directly against the public site means maintaining date-sensitive room pricing and review extraction yourself.
Search a city for a dated stay or look up a hotel by name, then choose a hotel ID. Pass the hotel ID to details for a date-free profile, address, available amenities, and selected photos. StayAPI also provides room rates and reviews. Send a hotel_id and stay dates for live room rates, tax-inclusive totals, breakfast and cancellation terms, or fetch structured review text and sub-ratings. If you only have a URL, resolve it once and reuse the stable ID.
x-api-key in, JSON out. Live room rates, availability, Agoda guest reviews, and sub-ratings behind one base URL.
Get structured hotel cards, prices, and reviews with consistent authentication and JSON responses.
Look up a hotel name or resolve an Agoda hotel URL to its numeric hotel_id, or skip the step and pull reviews straight from the URL.
Each returns normalized JSON in the same shape. Click any endpoint for parameters, an example response, and a live playground.
The same endpoints, pointed at different jobs. These are the ones we see most.
Check current Agoda inventory for a property and compare the cheapest all-inclusive whole-stay total with other hotel channels.
Request newest-first Agoda reviews. Agoda lists English-language reviews first (newest first with the default sort), then reviews in other languages, so for a complete date range, page until has_more is false.
Track the overall score and category sub-ratings (cleanliness, location, service, value) over time to see where a property is gaining or slipping.
Combine Agoda reviews with the same fields from other channels to build one cross-OTA reputation view per property instead of a per-site spreadsheet.
Feed structured Agoda reviews into an LLM tool call so your agent answers guest-sentiment questions from live review text, not stale embeddings.
The same endpoints are exposed as MCP tools. Connect Claude, Cursor, or Claude Code, ask in plain English, and the agent calls the tool and answers from live Agoda data.
Flat monthly plans, every endpoint included on every plan. 1 request = 1 credit. No per-endpoint multipliers, no surprise overages.
Wire it up. See the schema.
Kick the tires in production.
Small prod workloads and growing apps.
Daily pulls in production.
Above 100k / month, annual terms, white-glove onboarding.
Every plan ships every endpoint. Same uptime, same schema, same response time.
Don't see your question? Email us at info@stayapi.com.
The useful_information object includes nullable number_of_rooms, year_opened, and check-in/check-out time fields, plus ordered source groups. Room count is the declared property total, not live inventory; year_opened is the opening year, not construction year. Missing information remains null or an empty array. A full locality address can have a null street.
Call /v1/agoda/hotel/lookup with a query of 2–200 characters. It returns hotel suggestions and IDs with location context, without prices or availability. Suggestions are not an exhaustive catalog and have no pagination. See the hotel lookup docs.
Agoda runs partner and affiliate programs, but there is no open, self-serve API for its full live room and review data. StayAPI provides both over plain REST with one API key.
Call /v1/agoda/hotel/prices with a numeric hotel_id, check-in and check-out dates. Optional children_ages accepts up to nine comma-separated ages 0–17 and overrides the children count. Omitted or blank ages use age 8 for each child. The response includes live inventory, the lowest all-inclusive stay total, taxes and fees, and room-level cancellation and breakfast terms. See the hotel prices docs.
Call /v1/agoda/hotel/reviews/{hotel_id} with an Agoda hotel_id. You get paginated review text, the overall score, category sub-ratings, reviewer country and group type, and dates as JSON. No ID on hand? Use /v1/agoda/hotel/reviews-from-url with the hotel URL. See the reviews endpoint docs.
Call /v1/agoda/hotel/url-to-id with any Agoda hotel URL and it returns the numeric hotel_id. The ID never changes for a hotel, so cache it once and reuse it for hotel details, prices, or reviews. Details accepts only hotel_id, without dates, locale, or currency. See the URL to ID docs.
Agoda's own guest reviews only; reviews Agoda shows from partner sites are not included. /v1/agoda/hotel/reviews/{hotel_id} and /v1/agoda/hotel/reviews/{hotel_id}/comments return the same reviews. Agoda lists English-language reviews first (newest first with the default sort), then reviews in other languages, so for a complete date range, page until has_more is false. See the hotel reviews docs.
You get 50 free requests on signup, every endpoint included, no credit card. After that it is flat monthly plans starting at $49. One request equals one credit, with no per-endpoint multipliers.
Both end with live Agoda data in your stack. The fast path is on the left.
50 free requests after sign up. Fastest way to see if the schema fits.
Start free15 minutes. Volume + endpoint mix. Walk out with a quote.
Book a demo