Skip to content
StayingAPI
Docs

Price compare

Cross-OTA price comparison for one property — the flagship endpoint.

GET/v1/price-compare

Cross-OTA price comparison for one property — the flagship endpoint.

Credits30 credits, or the sum of the legs
Cache TTL1 hour
ReturnsPriceCompare
ShapeSingle

Live calls are asynchronous — you poll for the result

Rate-shop one property in a single call. TWO MODES, one response shape. GOOGLE MODE (name / location / googleHotelId) resolves the property through the Google Hotels backbone — you need no ids, but coverage varies: some properties resolve to several OTA offers, others to a single aggregated-lowest offer (then offers has one entry, min equals median, and the entry may be a direct-supplier rate rather than an OTA). Read offers.length before presenting a google-mode result as a multi-platform comparison — the schema does not guarantee more than one. DIRECT MODE (listings=) removes that uncertainty: you supply 2-6 platform:listingId pairs you already know are the same property, and we run a real price call on each one in parallel, so you get exactly the platforms you asked for, each a live quote for your dates and occupancy. Both modes carry StayingAPI-computed min and median as first-class fields.

Parameters

Request parameters
ParameterTypeRequiredDefaultNotes
listingsstring[]One ofDIRECT MODE. 2-6 comma-separated (or repeated) platform:listingId pairs for the SAME property, e.g. airbnb:12345,booking:co/casa-de-alba. Split on the FIRST colon, so a full listing URL works as the id. Mutually exclusive with name / location / googleHotelId.
namestringOne ofGOOGLE MODE. Property name to resolve.
googleHotelIdstringOne ofGOOGLE MODE. Precise Google Hotels id.
locationstringOne ofGOOGLE MODE. Disambiguating place / "lat,lng".
checkIndateYesYYYY-MM-DD; not in the past.
checkOutdateYesMust be after checkIn.
adultsintegerNo2≥ 1.
childrenintegerNo0≥ 0.
childAges[]integer[]NoLength must equal children.
currencystringNoUSDISO-4217; pass-through + echo.

Request & response

/v1/price-compare
Request
GET /v1/price-compare?name=Hotel%20X%20Sibenik&location=Sibenik,HR&checkIn=2026-07-13&checkOut=2026-07-20&adults=2&currency=EUR
Host: api.stayingapi.com
Authorization: Bearer stay_live_…
Response
{
  "data": {
    "property": "Hotel X, Sibenik",
    "checkIn": "2026-07-13",
    "checkOut": "2026-07-20",
    "currency": "EUR",
    "min": 2122,
    "median": 2151,
    "offers": [
      { "ota": "booking.com", "totalPrice": 2122, "currency": "EUR", "url": "https://…" },
      { "ota": "expedia", "totalPrice": 2180, "currency": "EUR", "url": "https://…" }
    ]
  },
  "meta": {
    "requestId": "req_pc…",
    "platforms": ["google"],
    "cached": false, "partial": false,
    "creditsCharged": 30, "currency": "EUR", "pagination": null,
    "platformResults": [
      { "platform": "google", "status": "ok", "creditsCharged": 22, "cached": false, "count": 1 }
    ],
    "warnings": []
  }
}

Code samples

The same call in every language that matters — all returning the identical unified schema.

curl -sS "https://api.stayingapi.com/v1/price-compare?name=Hotel%20X%20Sibenik&location=Sibenik,HR&checkIn=2026-07-13&checkOut=2026-07-20&currency=EUR" \
  -H "Authorization: Bearer $STAYINGAPI_KEY"

Try it

Run this endpoint against the deterministic sandbox right now — a real 200, zero credits, no sign-up. The credit cost of the equivalent live call is 30 credits, or the sum of the legs.

Try itsandbox · 0 credits · no sign-up
GET/v1/price-compare

Runs against the deterministic Google Hotels sandbox fixture — a real 200, zero credits.

Response

Run the call to see a live, deterministic sandbox response.

Copy as curl
curl -sS "https://api.stayingapi.com/v1/price-compare" \
  -H "Authorization: Bearer $STAYINGAPI_KEY"

Workflows using this

Ready-made automations built on /v1/price-compare — an importable n8n workflow + a portable AI-agent skill each.

Notes & gotchas

Which mode should I use?

Fee coverage is uneven — compare on totalPrice

A partial comparison is still a 200

min & median are computed for you

Flagship endpoint