directrate

Pricing

Five tiers. Credits, not requests — so a cheap call costs a cheap amount.

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.

  • 250 credits / month
  • = 250 shops on a 1-credit chain
  • = 41 Wyndham shops
  • = 1,000 comp-set hotel rows
  • 2 requests/s
Start free

Starter

$29$24.17 /mo

$290 billed yearly

billed monthly

A side project, a prototype, a weekly report.

  • 3,000 credits / month
  • $9.67 per 1,000 credits
  • = 3,000 shops on a 1-credit chain
  • = 500 Wyndham shops
  • = 12,000 comp-set hotel rows
  • 10 requests/s
Email us to upgrade

GrowthMost picked

$99$82.50 /mo

$990 billed yearly

billed monthly

A product with users: a parity monitor, an award tool, an agent.

  • 15,000 credits / month
  • $6.6 per 1,000 credits
  • = 15,000 shops on a 1-credit chain
  • = 2,500 Wyndham shops
  • = 60,000 comp-set hotel rows
  • 20 requests/s
Email us to upgrade

Scale

$349$290.83 /mo

$3,490 billed yearly

billed monthly

Daily comp sets across a portfolio, or a calendar store of your own.

  • 75,000 credits / month
  • $4.65 per 1,000 credits
  • = 75,000 shops on a 1-credit chain
  • = 12,500 Wyndham shops
  • = 300,000 comp-set hotel rows
  • 50 requests/s
  • Unused credits roll over one month
Email us to upgrade

Enterprise

from $1,000 /mo

annual contract

annual contract

An annual contract, from 250,000 credits a month, with terms.

  • From 250,000 credits / month
  • From $1,000 a month, billed annually
  • Credits pooled across the year
  • Per-chain weights negotiable
  • Custom rate limits
Talk to us

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

The same credits, in calls.

What a month of credits buys

CallCreditsFree · 250Starter · 3,000Growth · 15,000Scale · 75,000
/shop or /award on a 1-credit chain (8 of 11)1250 shops3,000 shops15,000 shops75,000 shops
/shop on an OTA (Booking.com, Expedia, Hotels.com, Trip.com, Agoda)1250 shops3,000 shops15,000 shops75,000 shops
/shop or /award on Radisson383 shops1,000 shops5,000 shops25,000 shops
/shop or /award on Best Western550 shops600 shops3,000 shops15,000 shops
/shop on Wyndham641 shops500 shops2,500 shops12,500 shops
/compset hotel rows on a 1-credit chain0.251,000 hotel rows12,000 hotel rows60,000 hotel rows300,000 hotel rows
/calendar nights on a native-calendar chain0.12,500 nights30,000 nights150,000 nights750,000 nights

Credit weights per source

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 hotelmember add-on/calendar per night
Wyndham60.55.50.25
Best Western50.50.50.1
Radisson30.52.50.1
Choice10.25–0.1
Meliá10.25–0.02
IHG10.25–0.1
Hilton10.25–0.1
Hyatt10.25–0.1
Marriott10.25–0.1
Premier Inn10.25–0.1
I Prefer10.25–0.1
Booking.com10.25–shop
Expedia10.25–shop
Hotels.com10.25–shop
Trip.com10.25–shop
Agoda10.25–shop

Billing rules

Six rules, all of them in your favour.

  1. 01

    A result served from a recent cache bills 0.25× the live price; max_age: 0 forces a live shop at full price.

  2. 02

    Errors, a hotel code the chain does not know (not_found), upstream timeouts and an OTA with no listing for the hotel cost nothing.

  3. 03

    /compset bills per hotel returned, with a minimum of 1 credit per call; error and not_found hotels are not counted.

  4. 04

    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.

  5. 05

    Rate limits are an abuse guard per key, not a sold feature: 429 rate_limited comes with Retry-After.

  6. 06

    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

Pricing questions

What is a credit?

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.

Do unused credits roll over?

On Scale, one month. On Free, Starter and Growth they reset monthly. Enterprise credits are pooled across the contract year.

What happens when I run out?

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.

How do I upgrade?

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.

Is the rate limit the quota?

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.

Are errors billed?

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.

Is there a machine-readable price list?

Yes: /pricing.json carries the tiers, every source's weights and the billing rules, for agents and procurement scripts.