Skip to main content
One request equals one credit. That includes every update delivered over a stream. This page turns that rule into numbers you can plan against, so you can answer “will 5M a month cover me?” before you pay for anything. If you only read one section, read stream or poll. Streaming is not automatically cheaper, and on a fast-moving asset it is dramatically more expensive.

The quotas

Full detail on the rate limits page. Plans are on pricing.

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.
Fast blocks alone do not mean a fast stream. A chain can produce blocks quickly and still yield few updates, because with little trading there are no swaps to move the price. The gap is larger than most people expect. Over 24 hours, /networks reports roughly 24.8M transactions on Solana against 6,773 on Cronos, and the streams reflect that almost exactly: about 52 updates a minute versus about 1.3. So the useful mental model for capacity planning is that you pay for how actively the asset trades, not for how long you stay connected. These are real measurements from a single 90 second sample of /sse/prices, taken 2026-07-31. 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 SOL price subscription is roughly 2.25M requests a month, about 45% of everything Pro includes. Two such assets is 90%. The free tiers are not built for continuous streaming. At 52 updates a minute, SOL exhausts the 200,000 free allowance in under three days, and the 500,000 registered allowance in about a week. A quiet asset like WCRO would run for months on the same allowance.
The connection caps are separate from quota 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:
  • SOL at 52 updates a minute. Streaming costs 2.25M a month. Polling once a minute costs 43,200. Polling is 52 times cheaper, at the price of being up to 60 seconds stale.
  • WETH on ethereum at 7.1 a minute. Streaming costs 306k. Polling every 10 seconds costs 259k. Roughly break even, and streaming wins on freshness.
  • WCRO at 1.3 a minute. Streaming costs 56k. Polling every 10 seconds costs 259k. Streaming is about 5 times cheaper and fresher.
The rule of thumb:
  • 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 is far cheaper.
  • 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:
That is over Pro’s 5M. Options: drop to the 5 assets users actually watch, or poll the quiet ones and stream only the busy ones.

2. Portfolio refresh, 50 tokens, every 5 minutes

Batch endpoints cut latency, not quota: each token still bills as one request.
Comfortable on a registered free key. Cache the static half (names, decimals, pool pairs) and you spend nothing extra on it.

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:
Fits Pro with headroom. This is the workload streaming is genuinely built for: you cannot poll your way to catching a one block drain.

4. Backfill plus live

Size these separately. A one off historical pull is a fixed cost:
Then add the steady state streaming figure from above. Backfill is almost never the expensive half.

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_min and 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, where the unit is labelled Credits. It is the same count this page calls requests. 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 200,000 a month: the free tier, no key required.
  • 200,000 to 500,000: register a free key.
  • 500,000 to 5M: Pro.
  • Over 5M: Pro plus per-1M overage, or talk to us about Enterprise if streaming volume is the driver, since Enterprise limits are set to the workload.
If the number lands just over a tier boundary, revisit the list above before upgrading. Dropping three idle assets from a ticker is usually cheaper than the next plan.

FAQs

Yes. One request equals one credit, and each update delivered over a stream counts as one request. Connections themselves are free; what you pay for is updates delivered.
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.
No. Batch endpoints collapse several round trips into one HTTP call, which cuts latency and connection overhead, but each token still bills as one request. Ten tokens cost ten requests either way.
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.