Browse documentation
GET

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_idintegerYesPositive numeric Agoda hotel ID
check_indateYesYYYY-MM-DD; today through 365 days ahead
check_outdateYesAfter check-in; maximum stay 90 nights
adultsintegerNoDefault 2; range 1–60
roomsintegerNoDefault 1; range 1–9
childrenintegerNoDefault 0; range 0–9. Child age defaults to 8.
currencystringNoDefault 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&currency=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.