Endpoint reference
Search
Cross-platform property discovery, merged into one schema.
/v1/searchCross-platform property discovery, merged into one schema.
Discover properties matching a location, dates, occupancy and filters across one or more platforms. Results from every requested platform are normalized to the same Property shape and merged into a single, cursor-paginated list. This is the breadth / funnel endpoint — and the clearest demonstration of "one schema, every platform".
Parameters
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
location | string | Yes | — | Place name ("Split, HR") or "lat,lng". Required. |
checkIn | date | No | — | YYYY-MM-DD; required if checkOut given; not in the past. |
checkOut | date | No | — | YYYY-MM-DD; required if checkIn given; must be after checkIn. |
adults | integer | No | 2 | ≥ 1. |
children | integer | No | 0 | ≥ 0. |
childAges[] | integer[] | No | — | Length must equal children. Coarsened for Vrbo/Airbnb. |
rooms | integer | No | 1 | ≥ 1. Meaningful for hotel platforms. |
propertyType[] | enum[] | No | — | hotel | apartment | house | villa | cottage | other. |
amenities[] | enum[] | No | — | Canonical amenity taxonomy. Airbnb amenity/pool is post-filtered. |
minBedrooms | integer | No | — | ≥ 0. |
priceMin | number | No | — | ≥ 0, in currency. |
priceMax | number | No | — | ≥ priceMin. |
minGuestRating | number | No | — | Normalized to the response ratingScale. |
platforms[] | enum[] | No | vrbo,booking,airbnb,google | Drives fan-out + per-platform billing. |
limit | integer | No | 20 | 1–100. |
cursor | string | No | — | Opaque base64 cursor from a previous page. |
sort | enum | No | recommended | recommended | price_asc | price_desc | rating_desc. |
currency | string | No | USD | ISO-4217; pass-through + echo. |
Request & response
GET /v1/search?location=Split,HR&checkIn=2026-07-13&checkOut=2026-07-20&adults=2&platforms=airbnb,booking&limit=20
Host: api.scoutingapi.com
Authorization: Bearer scout_live_…
Accept: application/json{
"data": [
{
"id": "stays_booking_abramovic2",
"platform": "booking",
"platformListingId": "abramovic2",
"url": "https://www.booking.com/hotel/hr/abramovic2.html",
"name": "Apartments Abramović",
"propertyType": "apartment",
"location": { "lat": 43.51, "lng": 16.44, "city": "Split", "country": "HR" },
"starRating": null,
"guestRating": 9.1, "ratingScale": 10, "reviewCount": 142,
"maxOccupancy": 4, "bedrooms": 2, "bathrooms": 1,
"amenities": ["pool", "kitchen", "air_conditioning", "wifi"],
"host": { "name": "Marko", "isSuperhost": false },
"price": { "currency": "USD", "nightlyPrice": 303, "totalPrice": 2122, "nights": 7 }
}
// … more Property objects
],
"meta": {
"requestId": "req_8sf…",
"platforms": ["airbnb", "booking"],
"cached": false, "partial": false,
"creditsCharged": 8, "currency": "USD",
"pagination": { "limit": 20, "cursor": null, "nextCursor": "eyJ…", "hasMore": true },
"platformResults": [
{ "platform": "airbnb", "status": "ok", "creditsCharged": 4, "cached": false, "count": 18 },
{ "platform": "booking", "status": "ok", "creditsCharged": 4, "cached": true, "count": 20 }
],
"warnings": []
}
}Code samples
The same call in every language that matters — all returning the identical unified schema.
curl -sS "https://api.scoutingapi.com/v1/search?location=Split,HR&checkIn=2026-07-13&checkOut=2026-07-20&platforms=airbnb,booking&limit=20" \
-H "Authorization: Bearer $SCOUTINGAPI_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 5 credits / platform.
/v1/searchRuns against the deterministic Airbnb + Booking sandbox fixtures — a real 200, zero credits.
Run the call to see a live, deterministic sandbox response.
curl -sS "https://api.scoutingapi.com/v1/search" \
-H "Authorization: Bearer $SCOUTINGAPI_KEY"Notes & gotchas
Default sort is round-robin "recommended"
Partial fan-out never fails the request