Agoda Hotel Prices API
Look up live Agoda room availability and normalized rate plans for one hotel and stay.
Endpoint
GET https://api.stayapi.com/v1/agoda/hotel/prices
Send your API key in X-API-Key. If you only have an Agoda URL, resolve it first with the
URL-to-ID endpoint.
Parameters
| Parameter | Type | Required | Rules |
|---|---|---|---|
| hotel_id | integer | Yes | Positive numeric Agoda hotel ID |
| check_in | date | Yes | YYYY-MM-DD; today through 365 days ahead |
| check_out | date | Yes | After check-in; maximum stay 90 nights |
| adults | integer | No | Default 2; range 1–60 |
| rooms | integer | No | Default 1; range 1–9 |
| children | integer | No | Default 0; range 0–9. Child age defaults to 8. |
| currency | string | No | Default USD; three-letter currency code |
Request example
curl -sS -H "X-API-Key: YOUR_API_KEY" \
"https://api.stayapi.com/v1/agoda/hotel/prices?hotel_id=10884&check_in=2026-09-15&check_out=2026-09-17&adults=2&rooms=1¤cy=USD"
Response schema
price_per_room_per_night and stay_price each expose the tax-exclusive amount, taxes and fees, and Agoda's all-inclusive total. The top-level lowest_price is the cheapest all-inclusive whole-stay rate.
{
"success": true,
"hotel_id": 10884,
"search": {
"check_in": "2026-09-15",
"check_out": "2026-09-17",
"adults": 2,
"rooms": 1,
"children": 0
},
"currency": "USD",
"currency_symbol": "$",
"available": true,
"sold_out": false,
"lowest_price": {
"exclusive": 600.84,
"taxes_and_fees": 124.36,
"total": 725.20
},
"room_types": [{
"room_id": 3122086,
"name": "Banyan Pool Villa",
"max_occupancy": 2,
"available_rooms": 4,
"bed_configuration": "1 king bed",
"rates": [{
"rate_plan_id": 1019134,
"name": "Banyan Pool Villa",
"occupancy": 2,
"available_rooms": 4,
"currency": "USD",
"price_per_room_per_night": {
"exclusive": 300.42,
"taxes_and_fees": 62.18,
"total": 362.60
},
"stay_price": {
"exclusive": 600.84,
"taxes_and_fees": 124.36,
"total": 725.20
},
"breakfast_included": true,
"free_cancellation": false,
"cancellation_policy": "Non-refundable",
"taxes_and_surcharges": ["City tax 1%", "Tax 17.7%"]
}]
}],
"retrieved_at": "2026-08-19T10:30:00Z"
}
Sold-out stays
Sold out is a successful lookup
A valid stay with no bookable rates returns HTTP 200 with available: false, sold_out: true, no lowest_price, and room_types: [].
Availability and prices are live and can change between lookup and booking.
Errors
400 / 422: invalid dates, parameter ranges, hotel ID, or currency.
401 / 403: missing, invalid, or unauthorized API key.
502: Agoda could not provide room availability; retry once after a short delay.
503 / 504: temporary capacity or timeout condition. Honor Retry-After when present.
Error bodies use RFC 7807 application/problem+json. Only a 2xx response is data.