Price a hotel's next 90 nights
Resolve a hotel once, then fetch a whole forward rate calendar in a single 5-credit call.
Overview
You get | One row per night with the room rate, taxes, fees and total, for up to 330 nights. |
Calls | POST/v1/search once per hotel, then POST/v1/calendar |
Cost | 1 credit to resolve (once) + 5 credits per calendar, however many nights it returns |
Latency | Usually under a second for the calendar |
Resolve the property
Search by name and city, check that the best match is the hotel you meant, and store its token. You only do this once per hotel (see Find a property token).
curl -X POST "https://api.scrapercompany.com/v1/search" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Hilton Chicago", "city": "Chicago", "market": "US"}'Fetch the calendar
Ask for 90 nights starting tomorrow (the defaults), in the market and currency you report in. The market sets Google's country and the default tax basis for that market.
curl -X POST "https://api.scrapercompany.com/v1/calendar" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"token": "ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ", "days": 90, "currency": "USD", "market": "US"}'Store the rows keyed by (token, stay_date, adults, los). Each row's provenance records the source, observation time and price basis, so you can audit any number later.
Taxes and fees
Every row carries the full split, so you can present whichever basis your users expect:
| Field | Meaning |
|---|---|
rate_base | Room-only price before tax and mandatory fees. |
fees | Mandatory fees (resort fees, destination fees). |
tax | Taxes. |
rate_total | All-in price including tax and fees. |
rate | The market-correct figure: rate_total when rates_include_tax is true, otherwise rate_base. |
rate_before_taxes_with_fees | rate_base + fees (SearchApi's basis). |
North American and Caribbean markets (US, CA, MX, AG, BZ) quote before tax by default; the European and Australasian markets quote tax-inclusive. GET /v1/markets lists each market's default. If a property advertises the other way, pass rates_include_tax to override. tax_profile summarizes the property's effective tax rate and how confident it is.
Unpriced nights
Nights with no bookable price appear in unpriced_dates, and coverage tells you the share that priced (0–1). Some nights only sell with a two-night minimum; by default the API re-asks for them (probe_min_stay: true) and marks the row with min_length_of_stay, where rate is the per-night figure from that longer stay.
Longer horizons
daysgoes up to 330 per call. Usestartto begin later than tomorrow.los(1–30) prices longer stays;adults(1–8) changes occupancy.basis: "mainstream"adds the cheapest mainstream-OTA figure per night instead of Google's overall lowest (which can be a discounter). It samples heavier pages and costs 3 extra credits per night.- For a whole portfolio, queue calendars as a job instead of a loop.