Cross-OTA price comparison · REST + MCP · self-serve
The rental price comparison API that doesn’t exist anywhere else.
Every scraper gives you one site at a time and leaves the comparison to you. ScoutingAPI’s /v1/price-compare returns one property’s price across every OTA — Booking, Expedia, Vrbo, Airbnb, and Google — in a single call, with a computed lowest (min) and median rate, in one schema.
One call → every OTA + computed min/median · 100 credits free, no card · failed or empty calls cost 0 credits
GET /v1/price-compare
?name=D-Resort Sibenik
&location=Sibenik, HR
&checkIn=2026-07-13&checkOut=2026-07-20
&adults=2&children=2{
"data": {
"property": "D-Resort Sibenik",
"checkIn": "2026-07-13", "checkOut": "2026-07-20",
"currency": "EUR", "min": 2870, "median": 2910,
"offers": [
{ "ota": "google_hotels", "totalPrice": 2870, "currency": "EUR",
"url": "https://www.google.com/travel/hotels/.../prices" },
{ "ota": "booking.com", "totalPrice": 2910, "currency": "EUR",
"url": "https://www.booking.com/hotel/hr/d-resort-sibenik.html" },
{ "ota": "expedia", "totalPrice": 3025, "currency": "EUR",
"url": "https://www.expedia.com/...D-Resort-Sibenik..." }
]
},
"meta": {
"platforms": ["google"], "cached": false, "creditsCharged": 5, "currency": "EUR",
"platformResults": [{ "platform": "google", "status": "ok", "count": 3 }],
"pagination": null
}
}Show, don’t sell
One property, every OTA — with the lowest and median computed for you.
This is an actual /v1/price-compare response. Give it a property and dates; get back each OTA’s total price plus a server-computed lowest (min) and median rate — apples-to-apples, one currency, one schema. No incumbent returns this.
property + checkIn/checkOutThe compared property and the exact stay window every price is for.
offers[].otaThe source OTA for each price — google_hotels, booking.com, expedia, and more.
offers[].totalPriceTotal stay price per OTA in one currency, so the comparison is apples-to-apples.
minThe computed lowest total across every OTA — the cheapest bookable rate.
medianThe computed median total — a robust “fair price” signal that ignores outliers.
meta.creditsCharged5 credits per successful price-compare call — and 0 on a failed or empty call.
Google Hotels is the cross-OTA backbone, so a single call resolves the property and pulls each OTA’s bookable total for your exact dates. You read min for the cheapest rate and median for a robust “fair price” signal — no stitching together per-site scrapers, no reconciling three different output shapes. The same call works for hotels and short-term rentals.
Self-serve access
Instant access. No partner application. No sales call.
Building cross-OTA price comparison the hard way means integrating a different gated or per-site source for every OTA, then normalizing and reconciling the results yourself. ScoutingAPI is self-serve: sign up, get a key, and make your first price-compare call in under five minutes.
100 free credits — no credit card
Enough to build and test cross-OTA price comparison against real responses before you decide anything.
scout_test_ sandbox at zero cost
Deterministic price-compare fixtures wire up your integration before you ever spend a credit.
One schema for every OTA
Add or drop an OTA without touching your code — the offers array shape never changes.
- 1Get your free key
- 2curl the /v1/price-compare example
- 3Ship
The trust wedge
Reliability you can build a price-comparison product on.
A price-comparison feature that silently returns stale or partial numbers is worse than none. We run a product — monitoring, multi-actor failover, retries, and caching behind one contract — so the compare you show is one you can stand behind.
99.9% monthly uptime SLA
Committed on the ScoutingAPI response envelope and published on a public status page. Multi-actor failover, retries, and caching sit behind one contract.
Failed calls cost 0 credits
A blocked or unreachable OTA returns a typed upstream_unavailable (or meta.partial when some OTAs succeeded) and we charge nothing — not the pay-per-attempt model of raw scrapers.
Honest partial results, surfaced in meta
If one OTA is briefly unreachable, you get the OTAs that succeeded plus a meta.partial flag — never a silently-wrong min. The SLA covers our envelope; upstream degradation is surfaced, not hidden.
Runnable in five minutes
curl it, import the SDK, or hand it to your agent.
Every sample calls /v1/price-compare and is copy-paste runnable against your free key, generated from @scoutingapi/sdk so it never drifts from the live API.
curl -s -G "https://api.scoutingapi.com/v1/price-compare" \
-H "Authorization: Bearer scout_test_YOUR_KEY" \
--data-urlencode "name=D-Resort Sibenik" \
--data-urlencode "location=Sibenik, HR" \
--data-urlencode "checkIn=2026-07-13" \
--data-urlencode "checkOut=2026-07-20" \
--data-urlencode "adults=2" \
--data-urlencode "children=2"
# One call → every OTA's total, plus computed min & median. scout_test_ is $0.The MCP tab adds ScoutingAPI’s native server (Streamable HTTP, OAuth 2.1 / PKCE) to Claude, Cursor, or n8n — then the agent calls compare_prices({ name: "D-Resort Sibenik", checkIn: "2026-07-13", checkOut: "2026-07-20" }) and reads offers, min, and median straight from the result.
The honest comparison
Cross-OTA price comparison: raw scraper, SERP scraper, analytics tool, or ScoutingAPI?
| Capability | ScoutingAPI | Raw scraper / RapidAPI | Google-SERP scraper (SerpApi / DataForSEO) | STR analytics (AirROI / AirDNA) |
|---|---|---|---|---|
| Cross-OTA compare in one call | Yes — every OTA + computed min/median | No — one site per actor, you assemble | Raw SERP listings, no normalized compare | No — analytics, not live rates |
| Computed min / median | Yes — server-side, in every response | No — you compute it | No | No |
| Coverage | Hotels and short-term rentals | One platform per actor | Google Hotels SERP only | Airbnb / Vrbo only (STR) |
| Output schema | One unified offers[] schema | Different shape per actor | SERP-shaped JSON | Analytics-specific |
| Access | Self-serve, free key in minutes | Self-serve, but per-actor | Self-serve (SERP credits) | $10 min (AirROI) / ~$50k, sales-gated (AirDNA) |
| Reliability | 99.9% SLA, status page, failover | None (~86% success, no SLA) | SERP-dependent | Vendor-dependent |
| Failed-call billing | Free — 0 credits | You pay per attempt | You pay per SERP call | n/a |
| Agent-native (MCP) | First-class MCP + OAuth + Connectors | Bolt-on per actor | No | No |
| Pricing | Predictable credits + free tier | Pay-per-result | Pay-per-SERP-call | PAYG / enterprise contract |
The honest read: raw scrapers and SERP APIs give you inputs — one site or one SERP at a time — and leave the comparison, normalization, and outlier handling to you; analytics tools answer “how did this market perform,” not “what’s the cheapest rate right now.” ScoutingAPI returns the finished cross-OTA answer — every OTA plus a computed min/median, for hotels and short-term rentals, in one schema, with an SLA.
Built for real work
What developers and agents build on cross-OTA price comparison.
Not “scrape prices” — the outcomes a specific reader recognizes, with every OTA’s rate and a computed min/median in one feed.
Meta-search & best-rate widgets
Show the cheapest rate for a property across every OTA and deep-link straight to it — one /v1/price-compare call per property, no per-OTA integration to maintain.
Cheapest-rate reports for clients
The travel or retreat agency that stopped checking four sites by hand now runs one call per property and hands the client a ranked, sourced cheapest-rate table.
Market-rate & price-drift intelligence
Track how min and median move for a property or destination across a date range to build a real-time competitive-pricing view.
Rate-parity monitoring
Watch a property’s rate across every OTA for the same dates and flag parity gaps where one channel is undercutting the others.
Price-drop alerts & automation
Schedule a /v1/price-compare poll and fire a Slack, email, or Telegram alert when the min drops below a threshold — shippable from /workflows in minutes.
Price-aware planning agents
Give your AI agent a dependable compare tool: “cheapest rate for D-Resort Šibenik, July 13–20” → real cross-OTA prices with min/median via the native MCP server.
Answers
Rental price comparison API — frequently asked questions
The questions developers actually search — answered in full, with FAQ structured data for rich results.
Compare every OTA in one call.
100 credits, no credit card. Get each OTA’s price plus a computed min/median in your first call, in under five minutes.
One call → every OTA + min/median · failed calls cost 0 credits · native MCP included