Free
$0$0 /mo
always free
no card
Try every endpoint on every chain. No card.
- 250 credits / month
- = 250 shops on a 1-credit chain
- = 41 Wyndham shops
- = 1,000 comp-set hotel rows
- 2 requests/s
Pricing
Start on Free with 250 credits a month and no card. Paid tiers are switched by hand today: email us, we flip the plan.
Free
$0$0 /mo
always free
no card
Try every endpoint on every chain. No card.
Starter
$29$24.17 /mo
$290 billed yearly
billed monthly
A side project, a prototype, a weekly report.
GrowthMost picked
$99$82.50 /mo
$990 billed yearly
billed monthly
A product with users: a parity monitor, an award tool, an agent.
Scale
$349$290.83 /mo
$3,490 billed yearly
billed monthly
Daily comp sets across a portfolio, or a calendar store of your own.
Enterprise
from $1,000 /mo
annual contract
annual contract
An annual contract, from 250,000 credits a month, with terms.
Annual billing = two months free; credits are still issued monthly. Paid tiers: email us, we switch the plan by hand — there is no checkout yet.
Credits → calls
| Call | Credits | Free · 250 | Starter · 3,000 | Growth · 15,000 | Scale · 75,000 |
|---|---|---|---|---|---|
| /shop or /award on a 1-credit chain (8 of 11) | 1 | 250 shops | 3,000 shops | 15,000 shops | 75,000 shops |
| /shop on an OTA (Booking.com, Expedia, Hotels.com, Trip.com, Agoda) | 1 | 250 shops | 3,000 shops | 15,000 shops | 75,000 shops |
| /shop or /award on Radisson | 3 | 83 shops | 1,000 shops | 5,000 shops | 25,000 shops |
| /shop or /award on Best Western | 5 | 50 shops | 600 shops | 3,000 shops | 15,000 shops |
| /shop on Wyndham | 6 | 41 shops | 500 shops | 2,500 shops | 12,500 shops |
| /compset hotel rows on a 1-credit chain | 0.25 | 1,000 hotel rows | 12,000 hotel rows | 60,000 hotel rows | 300,000 hotel rows |
| /calendar nights on a native-calendar chain | 0.1 | 2,500 nights | 30,000 nights | 150,000 nights | 750,000 nights |
Four values and no others: 1, 3, 5 and 6 credits a shop. The weight is our measured upstream cost — a Best Western shop is a catalogue call plus one call per rate plan; a Wyndham or Radisson shop mints a per-request sensor — not a view on what the data is worth. A plan may carry per-source overrides (Enterprise).
| Source | /shop, /award | /compset per hotel | member add-on | /calendar per night |
|---|---|---|---|---|
| Wyndham | 6 | 0.5 | 5.5 | 0.25 |
| Best Western | 5 | 0.5 | 0.5 | 0.1 |
| Radisson | 3 | 0.5 | 2.5 | 0.1 |
| Choice | 1 | 0.25 | – | 0.1 |
| Meliá | 1 | 0.25 | – | 0.02 |
| IHG | 1 | 0.25 | – | 0.1 |
| Hilton | 1 | 0.25 | – | 0.1 |
| Hyatt | 1 | 0.25 | – | 0.1 |
| Marriott | 1 | 0.25 | – | 0.1 |
| Premier Inn | 1 | 0.25 | – | 0.1 |
| I Prefer | 1 | 0.25 | – | 0.1 |
| Booking.com | 1 | 0.25 | – | shop |
| Expedia | 1 | 0.25 | – | shop |
| Hotels.com | 1 | 0.25 | – | shop |
| Trip.com | 1 | 0.25 | – | shop |
| Agoda | 1 | 0.25 | – | shop |
Billing rules
A result served from a recent cache bills 0.25× the live price; max_age: 0 forces a live shop at full price.
Errors, a hotel code the chain does not know (not_found), upstream timeouts and an OTA with no listing for the hotel cost nothing.
/compset bills per hotel returned, with a minimum of 1 credit per call; error and not_found hotels are not counted.
The quota is checked before a call is made, so a request that would exceed it is refused (429 quota_exceeded) rather than half-billed.
Rate limits are an abuse guard per key, not a sold feature: 429 rate_limited comes with Retry-After.
Every response states its own price in X-Credits-Charged — the number written to your usage.
Machine-readable: /pricing.json. The docs page Credits & pricing walks through worked examples.
FAQ
The unit every response is priced in, stated on the response itself as X-Credits-Charged. A shop on eight of the eleven chains and on every OTA is 1 credit; Radisson 3, Best Western 5, Wyndham 6. Comp-set rows, calendar nights and cache hits are fractions of a credit.
On Scale, one month. On Free, Starter and Growth they reset monthly. Enterprise credits are pooled across the contract year.
Calls are refused with 429 quota_exceeded until the period resets; nothing is half-billed, because the quota is checked before the call is made. GET /usage is free and still answers when the quota is exhausted.
Email hello@directrate.dev with the plan you want and the email you signed in with; we switch the plan by hand and reply. There is no card checkout yet.
No. The rate limit (2–50 requests a second by tier) is a per-key abuse guard, answered with 429 rate_limited and Retry-After. The quota is the monthly credit allowance. Upstream load is capped globally per chain on our side, not sold.
Never. An error, a hotel code the chain does not know, an upstream timeout, and an OTA with no listing for the hotel all return X-Credits-Charged: 0.
Yes: /pricing.json carries the tiers, every source's weights and the billing rules, for agents and procurement scripts.