The allowances
Full detail on the rate limits page. Plans are on pricing.
The free allowances are a rolling 30-day window, not a calendar month, so the figures below are consumption rates rather than budgets that refill on the 1st. A heavy month keeps its weight for 30 days; see how the allowance refills.
What a stream actually costs
Streams are pushed only when a value changes, so cost tracks the asset’s update rate, not the number of connections you hold open. That rate varies enormously.What sets the update rate
Prices are derived from swaps, so an update happens when a swap moves the price. Two things bound that:- Swap activity. The dominant factor, and in practice the binding one. A heavily traded asset produces a steady stream of price-moving swaps; a thinly traded one produces almost none.
- The recompute cadence. Our pricing pipeline recomputes on a sub-second cycle, which sets an upper bound. No asset streams faster than that, and almost none get close.
/networks reported about 31.3M transactions on Solana against 18,500 on Cronos, a ratio near 1,700 to 1. The price streams for those two chains differed by a factor of 13. Trading activity sets the direction, not the multiple, because prices are recomputed on a cadence rather than once per swap. So the mental model that holds is you pay for how actively the asset trades, not for how long you stay connected, and you should not scale an estimate off transaction counts.
These are real measurements, taken 2026-09-15 from two 7 minute samples of /sse/prices on the keyless tier, eight assets streaming concurrently and then a quieter six. Credits per 30 days is the measured rate times 43,200. Treat them as the right order of magnitude rather than a guarantee, since trading activity changes hour to hour:
Two things fall out of this table immediately.
A single busy asset can dominate a plan. One continuous WBNB subscription is roughly 2.4M credits over 30 days, about half of everything Pro includes. Two such assets and you are out. Note that the busiest asset measured was on BNB Chain rather than Solana, so do not assume the chain you think of as the fastest is the one that will cost you most.
The free tiers are not built for continuous streaming of a busy asset. At 56 updates a minute, WBNB exhausts the 30,000 keyless allowance in about 9 hours, and the 100,000 registered allowance in about 30 hours. A quiet asset is a different story entirely: WETH on Linea at 1.1 a minute runs about 19 days keyless and roughly two months on a registered key, and WFTM delivered nothing at all in seven minutes, which costs exactly nothing. The range across eleven wrapped natives was 0 to 56 updates a minute, so the asset you pick matters more than any other decision on this page.
The connection caps are separate from your credit allowance and unchanged: 25 subscriptions per connection, 10 concurrent streams per IP. Those limit concurrency, not spend.
Stream or poll
The honest answer: streaming saves you credits only when you would otherwise poll faster than the asset changes. Streaming’s real benefit is latency and freshness, not cost. Polling costs exactly what you choose:
Now compare against the measured rates. The crossover is simply whether the asset’s update rate is above or below your poll rate:
- WBNB at 56.4 updates a minute. Streaming costs 2,436,480 credits. Polling once a minute costs 43,200. Polling is 56 times less, at the price of being up to 60 seconds stale.
- WETH on ethereum at 5.6 a minute. Streaming costs 241,920 credits. Polling every 10 seconds costs 259,200. Close to break even, with streaming slightly ahead on both cost and freshness.
- WETH on linea at 1.1 a minute. Streaming costs 47,520 credits. Polling every 10 seconds costs 259,200. Streaming costs about 5 times less and is fresher.
- If you need sub second freshness, stream. Nothing else gets you there, and the cost is the cost.
- If a minute of staleness is acceptable and the asset is busy, poll. It costs far less.
- If the asset is quiet, stream. You pay almost nothing and get instant updates.
Four worked models
1. Price ticker on 10 assets
A dashboard streaming 10 mixed assets, say 3 busy and 7 quiet, averaging about 15 updates a minute each:2. Portfolio refresh, 50 tokens, every 5 minutes
Batch endpoints cut latency and per-minute request pressure, not credits: each token still bills as one credit.3. Drain detection on 25 pools
Reserve streams emit per block in which reserves change, which is far less often than prices tick. Assume about 4 updates a minute per pool:4. Backfill plus live
Size these separately. A one off historical pull is a fixed cost:Cutting real time spend without losing freshness
- Subscribe to fewer, higher signal assets. Cost scales with what you watch, not with connections. Ten idle assets on one connection still bill for every update.
- Split “must be live” from “can be stale.” Stream the price your UI shows in real time; cache names, decimals, pool pairs and completed candles. Completed OHLCV candles never change.
- Filter server side.
liquidity_usd_minand the other threshold filters keep pages small so you pull fewer rows overall. - Poll the boring ones. A stablecoin pinned to $1.00 does not need a live stream.
- Disconnect when nobody is watching. A dashboard nobody has open still bills for every update it receives.
Check your own numbers
Usage is visible in console.dexpaprika.com, andGET /usage returns the same figures for an authenticated key. Both count credits.
The reliable way to size a workload is to measure it: subscribe to exactly what you intend to run, leave it for ten minutes, and multiply. The table above was produced this way, and a ten minute sample of your own assets will beat any estimate on this page.
Which plan do I need?
Take your total from the models above, then:- Under 30,000 credits per rolling 30 days: the free tier, no key needed to start.
- 30,000 to 100,000: register a free key.
- 100,000 to 5M: Pro, $99 a month. Pro calls a different host with a key; read upgrading to Pro before you migrate your client.
- Over 5M: Pro plus $20 per additional 1M, or talk to us about Enterprise on the Pro API page if streaming volume is the driver, since Enterprise limits are set to the workload.
FAQs
Does a streaming update really cost the same as a REST call?
Does a streaming update really cost the same as a REST call?
Yes. One request costs one credit, and each update delivered over a stream costs one credit. Connections themselves are free; what you pay for is updates delivered.
Does streaming cost less than polling?
Does streaming cost less than polling?
Only if the asset updates less often than you would poll. On a busy asset like SOL, streaming can cost 50 times more than polling once a minute. On a quiet asset it costs a fraction. Stream for freshness, poll for thrift.
Does batching save me credits?
Does batching save me credits?
No. Batch endpoints collapse several round trips into one HTTP call, which cuts latency, connection overhead and pressure on the per-minute request limit, but each token still bills as one credit. Ten tokens cost ten credits either way.
Do idle connections cost anything?
Do idle connections cost anything?
No. Updates are pushed only when a value changes, so an idle market costs nothing. The cost is entirely a function of how often what you subscribed to moves.