Skip to content
ScoutingAPI

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

99.9% uptime SLAFailed calls cost 0 creditsNative MCP for AI agentsOne unified schema
Response · /v1/price-compare
Request
GET /v1/price-compare
  ?name=D-Resort Sibenik
  &location=Sibenik, HR
  &checkIn=2026-07-13&checkOut=2026-07-20
  &adults=2&children=2
Response
{
  "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
  }
}

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.

Same schema acrossAirbnbBooking.comVrboGoogle Hotels
property + checkIn/checkOut

The compared property and the exact stay window every price is for.

offers[].ota

The source OTA for each price — google_hotels, booking.com, expedia, and more.

offers[].totalPrice

Total stay price per OTA in one currency, so the comparison is apples-to-apples.

min

The computed lowest total across every OTA — the cheapest bookable rate.

median

The computed median total — a robust “fair price” signal that ignores outliers.

meta.creditsCharged

5 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.

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.

  1. 1Get your free key
  2. 2curl the /v1/price-compare example
  3. 3Ship

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.

99.9%Monthly uptime SLAOn the ScoutingAPI envelope, backed by a public status page.
0 creditsFor failed or bad dataEmpty, blocked, or upstream-degraded calls are never charged.
min + medianComputed server-sideThe cheapest rate and a robust fair-price signal, in every response.
1 schemaHotels and short-term rentalsThe same offers array for an OTA hotel or a vacation rental.

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.

Cross-OTA price comparison: raw scraper, SERP scraper, analytics tool, or ScoutingAPI?

CapabilityScoutingAPIRaw scraper / RapidAPIGoogle-SERP scraper (SerpApi / DataForSEO)STR analytics (AirROI / AirDNA)
Cross-OTA compare in one callYes — every OTA + computed min/medianNo — one site per actor, you assembleRaw SERP listings, no normalized compareNo — analytics, not live rates
Computed min / medianYes — server-side, in every responseNo — you compute itNoNo
CoverageHotels and short-term rentalsOne platform per actorGoogle Hotels SERP onlyAirbnb / Vrbo only (STR)
Output schemaOne unified offers[] schemaDifferent shape per actorSERP-shaped JSONAnalytics-specific
AccessSelf-serve, free key in minutesSelf-serve, but per-actorSelf-serve (SERP credits)$10 min (AirROI) / ~$50k, sales-gated (AirDNA)
Reliability99.9% SLA, status page, failoverNone (~86% success, no SLA)SERP-dependentVendor-dependent
Failed-call billingFree — 0 creditsYou pay per attemptYou pay per SERP calln/a
Agent-native (MCP)First-class MCP + OAuth + ConnectorsBolt-on per actorNoNo
PricingPredictable credits + free tierPay-per-resultPay-per-SERP-callPAYG / 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.

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.

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