GET

Accor Price Calendar API

See the cheapest available offer for each date across a window — ideal for finding the best dates to stay.

Overview

One price per date

For each date in [date_from, date_to] this returns the cheapest available offer for a stay of nights nights starting that date, plus an availability status. Dates marked UNAVAILABLE carry a null price. A distinct feature with no equivalent on the other platforms.

Take the id from a Search result and pass it as hotel_id. The window between date_from and date_to can span up to 60 days.

Endpoint URL

GET https://api.stayapi.com/v1/accor/hotel/price-calendar

Parameters

Parameter Type Required Description
hotel_id string Required Accor hotel id from the Search endpoint (e.g., "2185")
date_from date Required Window start date (YYYY-MM-DD)
date_to date Required Window end date (YYYY-MM-DD). Max 60 days after date_from
nights integer Optional Length of stay priced for each date (1-30). Default: 1
adults integer Optional Number of adults (1-8). Default: 1
currency string Optional ISO-4217 currency code. Default: USD
country_market string Optional ISO-3166 alpha-2 market country. Default: US

Window limit

date_to must be within 60 days of date_from, otherwise the API returns 400 RANGE_TOO_LARGE. Page through longer ranges with successive calls.

Response Format

Response Structure

  • success: Boolean indicating request success
  • hotel_id / name / brand: Property identity
  • currency: Currency of the calendar prices
  • calendar: Array of one entry per date in the window
  • total: Number of dates returned

Calendar Day Fields

Field Type Description
date string The calendar date (YYYY-MM-DD)
status string "AVAILABLE" or "UNAVAILABLE"
amount / formatted float / string Cheapest price for a stay starting that date. Null on UNAVAILABLE days.
aggregation_type string Whether the amount is per-night or whole-stay (e.g., "TOTAL_STAY")
nights integer Length of stay the price covers
best_rate_label string Label of the cheapest rate, when provided

Error Responses

Errors follow the RFC 7807 Problem Details format with provider: "accor" and product: "price-calendar".

400 Bad Request

The window exceeds 60 days (RANGE_TOO_LARGE), or dates are invalid/in the past.

{
  "type": "https://api.stayapi.com/errors/range-too-large",
  "title": "Range Too Large",
  "status": 400,
  "detail": "date_to must be within 60 days of date_from",
  "provider": "accor",
  "product": "price-calendar",
  "error_code": "RANGE_TOO_LARGE"
}

404 / 502

No property matches the hotel_id (404), or an upstream service error from Accor (502).

Related Endpoints

Accor Search

Find properties and their best offer; get a hotel id

View Documentation →

Accor Rooms

Get bookable room offers and rate plans for a property

View Documentation →
Request
curl -X GET "https://api.stayapi.com/v1/accor/hotel/price-calendar?hotel_id=2185&date_from=2026-06-20&date_to=2026-06-27" \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "success": true,
  "hotel_id": "2185",
  "name": "Sofitel New York",
  "brand": { "code": "SOF", "name": "Sofitel" },
  "currency": "USD",
  "total": 8,
  "calendar": [
    {
      "date": "2026-06-20",
      "status": "AVAILABLE",
      "amount": 479,
      "formatted": "$479",
      "currency": "USD",
      "aggregation_type": "TOTAL_STAY",
      "nights": 1,
      "best_rate_label": null
    },
    {
      "date": "2026-06-22",
      "status": "UNAVAILABLE",
      "amount": null,
      "formatted": null,
      "currency": null,
      "aggregation_type": null,
      "nights": null,
      "best_rate_label": null
    }
  ]
}