Skip to content

Quickstart

Make your first call in 60 seconds: resolve a hotel to a token, then price its next 90 nights.

You will turn a hotel name into a property token, then price that hotel's next 90 nights in a single call. You need an API key and a terminal.

1. Set your API key

Keys look like sk_ followed by random characters. No key yet? Sign in and create one on the dashboard's API access page. No account? Request access.

Terminal
export SCRAPERCOMPANY_API_KEY="sk_your_key_here"

2. Find a hotel

POST /v1/search resolves a name (and ideally a city) to Google property tokens, best match first. It costs 1 credit.

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"}'
Response
{
  "query": "Hilton Chicago",
  "gl": "us",
  "requested_market": "US",
  "attempted_markets": [
    "US"
  ],
  "matched_market": "US",
  "market_fallback_used": false,
  "search_status": "matched",
  "external_fallback_recommended": false,
  "matches": [
    {
      "token": "ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ",
      "rank": 0,
      "verified": true,
      "name": "Hilton Chicago",
      "name_score": 1
    }
  ]
}

3. Price the calendar

Pass the token to POST /v1/calendar. One call returns up to 330 nights (90 by default) for 5 credits.

curl -i -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"}'
Response (shortened)
{
  "token": "ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ",
  "market": "US",
  "requested_days": 90,
  "coverage": 0.9333,
  "unpriced_dates": [
    "2026-11-29"
  ],
  "tax_profile": {
    "rate": 0.2032,
    "confidence": "high",
    "itemised": 84,
    "derived": 0
  },
  "rates": [
    {
      "stay_date": "2026-11-14",
      "rate": 332.01,
      "rate_base": 332.01,
      "rate_total": 424.48,
      "tax": 67.47,
      "fees": 25,
      "currency": "USD",
      "rates_include_tax": false,
      "adults": 2,
      "los": 1
    }
  ]
}
Real responses also include collection_id, observed_at, timings, validation and a provenance object on every rate.

Read the response

FieldMeaning
rates[]
One row per priced night: stay_date, rate, rate_base, rate_total, tax, fees, currency.
rate
The figure to store for that market: all-in when rates_include_tax is true, otherwise the pre-tax base.
coverage
Share of requested nights that priced, from 0 to 1 (0.9333 = 84 of 90).
unpriced_dates
Nights with no bookable price (sold out, closed, or a minimum stay).
x-credits-charged
Response header: credits this call cost. Failed or empty results report 0.

Store the token

Property tokens are stable. Resolve each hotel once, keep the token, and call the calendar as often as you need — you skip the search credit and its latency.

Where to go next