Modes
Calendar — POST /calendar
One hotel × up to 60 forward check-in dates → the lowest cash, member and points per night.
Request
{ "chain": "choice", "hotel_code": "IL263", "start": "2026-11-10", "days": 7, "los": 1 }
| Field | Type | Notes |
|---|---|---|
chain, hotel_code |
as /shop |
|
start |
YYYY-MM-DD |
first check-in date |
days |
int 1–60 | nights to price; default 30 |
los |
int 1–7 | length of stay per night; default 1 — the native calendars price single nights |
occupancy, currency, max_age |
as /shop; max_age is judged by the oldest night served from cache |
Response
CalendarResponse: nights[], each { date, status, min_los, lowest { bar, member, bar_after_tax, member_after_tax }, lowest_points, currency, source, cache_age_sec }, plus the hotel and the window.
lowest_points is the copay-free award for that night.
{ "nights": [
{ "date": "2026-11-10", "status": "available", "lowest": { "bar": 126.95, "member": 114.26 }, "lowest_points": 20000, "source": "live" },
{ "date": "2026-11-12", "status": "available", "lowest": { "bar": 119.6 }, "lowest_points": 12000, "source": "live" } ] }
Where the nights come from
Where the chain has a native date-range calendar — Marriott, Hilton, IHG, Choice, Radisson, I
Prefer, Wyndham, Best Western — a los: 1 window is one or two upstream calls, so a night costs a
fraction of a shop. Hyatt’s calendar carries availability and points but no cash and Meliá’s availability
only: on those the open nights are shopped singly and the closed ones are not. Premier Inn has no
calendar endpoint; its window is built from ≤9-night span prices, billed 0.1 a night like a native one. The OTAs have no calendar: a night is a shop.
Billing
Billed the shop weight per live night; cached nights 0.25×. On native-calendar chains a night
through the calendar is 0.1 credit (0.25 on Wyndham) instead of the shop weight — a 30-night IHG
window is 3 credits; a Hyatt window shops its open nights (no cash on its calendar); the same window on
an OTA is 30. max_age=0 shops every night live.
Larger windows
For hotels × nights × lengths of stay at scale — up to 200 hotels × 366 nights — use POST /matrix,
which answers from the cell store at the cache-hit rate and queues the rest as a job; see the
API reference.