Every API request consumes credits from your monthly budget. Cost is determined by the endpoint and the number of rows returned.
How credits are calculated
Most endpoints use:
credits = base + (per_row × rows_returned)
The base cost is charged on every call. The per-row cost scales with how many rows you get. Heavier data (order books, snapshots with depth) costs more per row.
Example: /v1/candles returning 100 rows costs 10 + (2 × 100) = 210 credits.
Some endpoints have a flat cost (e.g. /v1/snapshots/{id}/at).
Credit cost per endpoint
| Endpoint | Category | Base | Per Row | 10 rows | 100 rows | 1,000 rows |
|---|---|---|---|---|---|---|
GET /v1/limits | Account | 0 | 0 | 0 | 0 | 0 |
GET /v1/sources | Discovery | 10 | 1 | 10 | 10 | 10 |
GET /v1/markets | Discovery | 10 | 1 | 10 | 10 | 10 |
GET /v1/status | Discovery | 10 | 1 | 10 | 10 | 10 |
GET /v1/candles | OHLCV | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/oracle | OHLCV | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/funding | OHLCV | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/open-interest | OHLCV | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/trades | Trade ticks | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/liquidations | Events | 10 | 2 | 30 | 210 | 2,010 |
GET /v1/derived | Analytics | 10 | 3 | 40 | 310 | 3,010 |
GET /v1/snapshots/{id} | Snapshots | 10 | 3 | 40 | 310 | 3,010 |
GET /v1/snapshots/{id}?include_orderbook=true | Snapshots + OB | 10 | 8 | 90 | 810 | 8,010 |
GET /v1/snapshots/{id}/at | Point-in-time | 25 | — | 25 | 25 | 25 |
| Binance 1s ticker | Ticker | 10 | 3 | 40 | 310 | 3,010 |
| Kalshi prices | Kalshi | 10 | 3 | 40 | 310 | 3,010 |
Discovery and account endpoints (/v1/limits, /v1/sources, /v1/markets, /v1/status) are cheap or free so you can plan queries and monitor usage without burning credits. Core OHLCV endpoints share the same 10 + 2/row cost. Snapshots with full order book cost more per row (8) because the data is larger and more expensive to store and serve.
Tracking usage
Response headers
Every response includes:
| Header | Description |
|---|---|
X-Credits-Used | Credits charged for this request |
X-Credits-Remaining | Credits left in your billing period |
/v1/limits
Call /v1/limits (0 credits) to check plan, credit balance, and rate limit status:
curl "https://kwery-api.com/v1/limits" -H "X-API-Key: kwery_live_YOUR_KEY"
Monthly reset
Credits reset to your plan’s allocation at the start of each billing cycle. Unused credits do not roll over.
When credits run out
When your balance is zero, data endpoints return 402 Payment Required:
{
"error": "credits_exhausted",
"message": "Monthly credit budget exhausted. Resets on 2026-04-01T00:00:00Z.",
"upgrade_url": "https://kwery.xyz/dashboard/billing"
}
/v1/limits still works at 0 credits so you can always see your balance.
Optimization tips
- Use
limitto request only the rows you need. - Cache discovery data —
/v1/sourcesand/v1/marketschange infrequently. - Use wider intervals (1h, 4h, 24h) when you don’t need 5m/1s — fewer rows for the same range.
- Poll
/v1/limitsto avoid hitting zero mid-pipeline. - Prefer a single request with a higher
limitover many small paginated requests when your tier allows it.