# Agoda API for room rates and rate plans

> Look a hotel up by name, then read every room type and rate plan Agoda shows a guest for one stay, with the stay total, discounts, meal plan and cancellation terms, in any of 23 currencies.

Canonical page: https://scrapercompany.com/agoda-api. Endpoints and prices checked against the API on 2026-10-11.

On Agoda one room type often carries several rate plans at different prices: with or without breakfast, refundable or not, pay now or pay later, some with a discount against a struck-out price. That ladder is what a rate-shopping team needs to compare like with like. Agoda’s own APIs are for affiliates and connected properties, so this API returns the rooms and prices agoda.com shows a visitor, one row per rate plan.

Agoda has its own quirks. A minimum-stay restriction appears on the site as sold out, so by default the API asks again at longer stays and reports the minimum it found. Currency is a true conversion of one rate, so prices in different currencies can be compared, but the price itself depends on the visitor’s country; set country_market and the response says whether it was collected from that country. Each call prices one stay of up to 30 nights, with check-in up to a year ahead.

## What you get

- `recommended_match.property_id`: Agoda’s numeric hotel id from a name and city search, with a confidence level
- `property.rooms[].offers[]`: one row per rate plan, with its room_type_id and rate_plan_id
- `price, total`: the nightly price as displayed and the exact stay total including taxes and fees
- `price_before_taxes, taxes_and_fees`: with tax_breakdown on, the nightly price before tax and the taxes and fees for the stay
- `strikeout_price, discount`: the crossed-out price and the discount Agoda shows
- `meal_plan, breakfast_included`: room only, breakfast, half board, full board or all inclusive
- `free_cancellation, cancellation_policy`: whether the plan can be cancelled for free, and Agoda’s policy text
- `pay_later, pay_at_hotel`: when and where the guest pays

## Endpoints and price per call

| Endpoint | Method and path | What it returns | Credits per successful call | Price per call |
| --- | --- | --- | --- | --- |
| [Hotel search](https://scrapercompany.com/docs/reference/agoda-search) | `POST /v1/ota/agoda/search` | Agoda property id for a hotel name and city, with match confidence | 2 credits | $0.0020 on Starter, $0.0012 on Growth, $0.0008 on Scale |
| [Rooms and rate plans](https://scrapercompany.com/docs/reference/agoda-rooms) | `POST /v1/ota/agoda` | Every room type and rate plan for one stay, in any of 23 currencies | 8 credits | $0.0078 on Starter, $0.0048 on Growth, $0.0032 on Scale |

Pricing: Free $0/month for 1,000 credits; Starter $49/month for 50,000 credits; Growth $149/month for 250,000 credits; Scale $399/month for 1,000,000 credits. Failed requests (4xx or 5xx) and empty results cost 0 credits. Free during the beta. https://scrapercompany.com/pricing

## Example

`POST /v1/ota/agoda`, 8 credits per successful call.

```bash
curl -X POST "https://api.scrapercompany.com/v1/ota/agoda" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "property_id": "8795952",
    "check_in": "2026-12-10",
    "nights": 1,
    "currency": "USD"
  }'
```

Response (trimmed):

```json
{
  "search_parameters": {
    "engine": "agoda_property",
    "property_id": "8795952",
    "check_in_date": "2029-02-18",
    "check_out_date": "2029-02-19",
    "adults": 2,
    "rooms": 1,
    "currency": "USD",
    "tax_breakdown": true
  },
  "property": {
    "property_id": "8795952",
    "name": "Moxy Boston Downtown",
    "price_per_night": 527,
    "total": 527.4,
    "price_before_taxes": 412,
    "taxes_and_fees": 115.4,
    "strikeout_price": 742,
    "meal_plan": "room_only",
    "free_cancellation": false,
    "cancellation_policy": "Non-refundable (Low price!)",
    "currency": "USD",
    "tax_inclusive": true,
    "sold_out": false,
    "availability": "available",
    "is_soldout": false,
    "rooms": [
      {
        "name": "Center Stage, Guest room, 1 Queen, City view",
        "offers": [
          {
            "price": 527,
            "currency": "USD",
            "currency_code": "USD",
            "price_text": "USD 527",
            "tax_inclusive": true,
            "discount": "-29%",
            "free_cancellation": false,
            "total": 527.4,
            "strikeout_price": 742,
            "price_before_taxes": 412,
            "taxes_and_fees": 115.4,
            "breakfast_included": false,
            "meal_plan": "room_only",
            "cancellation_policy": "Non-refundable (Low price!)",
            "cancellation_policy_code": "365D100P_100P",
            "pay_later": false,
            "pay_at_hotel": false,
            "room_type_id": "3082196",
            "rate_plan_id": "2844033",
            "benefits": [
              "Free WiFi"
            ],
            "provenance": {
              "schema_version": 1,
              "observation_id": "rateobs_0123456789abcdef0123456789abcdef",
              "collection_id": "ratecol_0123456789abcdef0123456789abcdef",
              "observed_at": "2026-08-07T01:23:45.678Z",
              "source": "agoda",
              "source_kind": "ota_rate_plan",
              "collector": "scrapingme.ota.agoda",
              "source_property_id": "ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ",
              "requested_market": "US",
              "requested_currency": "USD",
              "returned_currency": "USD",
              "egress_mode": "direct",
              "price_basis": "room_base_before_taxes_and_fees",
              "derivation": "normalized_upstream"
            }
          }
        ]
      }
    ]
  },
  "meta": {
    "source": "agoda",
    "nights": 1,
    "wire_bytes": 117723,
    "elapsed_s": 0.361,
    "room_types": 5,
    "offers": 9,
    "tax_breakdown": true,
    "egress_mode": "direct",
    "comparable_across_markets": true
  },
  "point_of_sale": {
    "egress_mode": "direct",
    "egress_market_verified": false
  }
}
```

## FAQ

### Does Agoda have a public API?

Agoda’s APIs are for partners. Affiliates and booking partners get its Content, Search and Book APIs after a commercial agreement and certification, and channel managers use its YCS API to manage rates for the properties they connect. Agoda’s affiliate documentation also tells partners not to compare the prices its API returns with the website. ScraperCompany is independent of Agoda: this API reads the rooms and prices agoda.com shows a visitor.

### How do I find a hotel’s Agoda id?

Send the hotel name and city to the hotel search endpoint and store recommended_match.property_id. You can also read it from the hotel’s Agoda URL: the digits after -h in agoda.com/…/hotel/…-h8795952.html, or the hotelId query parameter.

### Can I get Agoda prices in another currency or country?

Yes. Pick one of 23 currencies; Agoda converts one underlying rate, so the same offer in USD and EUR differs only by the exchange rate. Agoda also prices by the visitor’s country, so set country_market to the country you want, and the point_of_sale block says whether the price was actually collected from it.

### Why does Agoda show a hotel as sold out?

Often because the hotel has a minimum stay: Agoda shows those dates as sold out at shorter lengths. When that happens the API asks again for the same check-in at 2, 3, 4, 5 and 7 nights and reports availability: min_stay with a quote for the first length that prices. Set probe_min_stay to false to keep Agoda’s flag as it is.

### Are taxes included in Agoda prices?

total is the stay total including taxes and fees, and tax_inclusive says whether the displayed nightly price includes them. Set tax_breakdown to true to add each offer’s nightly price before taxes and the taxes and fees for the stay.

### Do failed requests cost credits?

No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.

### How do I get an API key?

Create an account on the sign-up page. Public sign-up is invite-only during the beta, so join the waitlist there and we will email you when your account is ready. The Free plan includes 1,000 credits a month, and the API is free while it is in beta. You create and rotate keys yourself in the dashboard.

## Read next

- [Compare OTA rates guide](https://scrapercompany.com/docs/guides/compare-ota-rates)
- [Competitor rate shopping](https://scrapercompany.com/use-cases/competitor-rate-shopping)
- [Booking.com API](https://scrapercompany.com/booking-com-api)
- [All APIs](https://scrapercompany.com/apis.md)
