Core concepts
Credits & pricing
One credit balance per account powers REST, the App and MCP. Credits are metered per result — and failed, empty and blocked calls are always free.
You pay for data delivered, not attempts
0 credits. In a fan-out, each failed platform is free and only the successful, non-empty legs are billed. See the failed-calls-free rule.Credit costs by endpoint
Credits are metered per result. Search and reviews bill per returned item above a small per-leg minimum (the + below), except Google Hotels search, which bills per page of results; availability bills by the requested date range, once per call; listing, price and price-compare are flat per call. These are the launch defaults (1 credit ≈ $0.01 nominal retail).
| Endpoint | Credits | Billing unit |
|---|---|---|
/v1/listing | 3 (vrbo 15) | flat, per call |
/v1/price | 3 | flat, per call |
/v1/reviews | 5+ | per returned review, min 5 per platform |
/v1/availability | 5+ | max(5, ⌈days/2⌉) credits per call, days = endDate − startDate (max 365); Vrbo minimum 12. E.g. 30 days = 15, 90 = 45, 364 = 182, 365 = 183. |
/v1/search | 2+ | Airbnb 2/result · Booking.com & Vrbo 1/result · Google Hotels 15 per page of up to 20 hotels · min 5 / platform |
/v1/price-compare | 30 | flat, per call (one property, many OTAs) |
/v1/jobs/{jobId} | 0 | polling is always free |
Plans & top-ups
| Plan | Price / mo | Credits / mo | Rate limit |
|---|---|---|---|
| Free / Sandbox | $0 (no card) | 300 · valid 90 days | 30 / min |
| Starter | $19 | 1,900 | 60 / min |
| Pro | $99 | 9,900 | 120 / min |
| Scale | $499 | 49,900 | 300 / min |
| Enterprise | Custom | Custom | Custom |
Top-up packs: $10 → 1,000, $50 → 5,000, $200 → 20,000. See the pricing page for the full breakdown and a credit calculator. Top-ups are a subscriber add-on: POST /v1/billing/topups returns 403 subscription_required for an account with no active paid plan.
How credits behave
- One balance per account. REST keys, the App and the MCP/Connectors channel all draw from the same ledger.
- Cache hits still bill at the full endpoint tier — caching is our margin lever, not a customer discount. Polling
/jobsis the one exception (always 0). - Charge on success only, pre-authorized via a reservation: a low balance is rejected with
402 insufficient_creditsbefore any upstream spend. - Free plan: live calls have a fair-use limit. It is measured in our upstream data cost, not in credits, so it can be reached before all 300 free credits are spent. Past it, live calls return
403 free_tier_budget_exhaustedat 0 credits; the sandbox stays unlimited, and upgrading or a top-up removes the limit. Your dashboard shows how much of it you have used. - Credits expire on a schedule. Your free signup grant of 300 credits is valid for 90 days; monthly subscription credits reset each period and don’t roll over (unused monthly credits expire at the end of the billing period); top-up credits stay valid for at least 30 days — and while you’re subscribed, at least until your next renewal. Usage always spends the soonest-to-expire credits first.
Read your usage
meta.creditsCharged reports the total for a request, and meta.platformResults[].creditsCharged breaks it down per platform. The dashboard shows the full ledger and per-endpoint usage over time.Check your balance from code
GET /v1/account to read your current credits.available, credits.held, plan and rate limit programmatically — it’s free (0 credits) and works for live and sandbox keys. Per call, meta.creditsCharged still tells you exactly what that request cost.