How REST requests are billed
Row-metered routes are billed by the number of rows a request returns. Every other route costs a flat 1 credit:rows_per_credit depends on the endpoint family:
A smaller response lowers the charge only on a row-metered route, and only when it crosses a billing step:
Trades are metered at 1,000 rows per credit, so the 1,001st row starts a second credit. A current L2 order-book snapshot (
/orderbook/{symbol}) is a single-value route that costs 1 credit at any depth. L4 routes, including the current L4 book, are row-metered at 5,000 rows per credit. A request that returns no rows still costs the 1-credit minimum.
JSON and Apache Arrow output are billed identically. The opt-in ?format=arrow response (available for the trades family) is never cheaper or more expensive than JSON.
How WebSocket data is billed
WebSocket data, live and replay, is billed per delivered message, at no more than 1 credit a message. An L4 batch message counts as one message, however many events it carries.Estimate a job
1
Pull a complete sample window
Pick the route and symbol the job will use and a sample window, for example one hour of BTC trades. Page through the whole window, following
meta.next_cursor until meta.has_more is false. The first page shows only what one page costs.2
Add up the charge for every page
Each page costs
max(1, ceil(rows / rows_per_credit)), with rows from that page’s meta.count. Their sum is the window’s cost. You can also watch x-credits-used rise across the run. It counts the whole account’s usage, so it matches the run’s cost only when nothing else on the account runs at the same time.3
Sample more than one period
Row counts follow market activity, so one quiet hour underestimates a busy one. For a large job, sample several windows, such as a quiet and a busy hour or the same hour on several days. Scale the highest window cost by the number of windows and symbols in the job.
4
Compare with your balance
Every metered response carries
x-credits-remaining and x-credits-reset headers. Keep the estimate under what remains, with headroom for retries.Export credits
Export credits pay toward Bulk Exports, separately from API credits: each paid plan adds a monthly amount, listed on Rate limits. Monthly export credits roll over without expiry up to 2x the monthly allowance. The served credits response reportsexpiry_policy as "never" and rollover_cap_cents. Quotes, payment and order status are on Export checkout.
Credits pay for access; they do not grant data rights. Benchmark, index, financial-product, standalone or substitute market-data, raw-redistribution, white-label and OEM uses need written permission: see Data rights or contact us.