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 roughly 50 + (3 × 100) = 350 credits (see OpenAPI for your tier).
Some endpoints have a flat cost (e.g. GET /v1/snapshots/at). Exact formulas are in OpenAPI operation descriptions.
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 | 25 | 0 | 25 | 25 | 25 |
GET /v1/symbols | Discovery | 0 | 0 | 0 | 0 | 0 |
GET /v1/markets | Markets | 25 | 0 | 25 | 25 | 25 |
GET /v1/limits | Account | 0 | 0 | 0 | 0 | 0 |
GET /v1/status | Operations | 100 | 10 | 200 | 1,100 | 10,100 |
GET /v1/candles | OHLCV | 50 | 3 | 80 | 350 | 3,050 |
GET /v1/candles (Chainlink) | OHLCV | 50 | 3 | 80 | 350 | 3,050 |
GET /v1/funding | Derivatives | 50 | 3 | 80 | 350 | 3,050 |
GET /v1/open-interest | Derivatives | 50 | 3 | 80 | 350 | 3,050 |
GET /v1/trades | Microstructure | 50 | 2 | 70 | 250 | 2,050 |
GET /v1/flow | Microstructure | 50 | 3 | 80 | 350 | 3,050 |
GET /v1/liquidations | Derivatives | 25 | 2 | 45 | 225 | 2,025 |
GET /v1/snapshots | Snapshots | 50 | 4 | 90 | 450 | 4,050 |
GET /v1/snapshots + order book | Snapshots | 50 | 10 | 150 | 1,050 | 10,050 |
GET /v1/snapshots/at | Point-in-time | 50 | — | 50 | 50 | 50 |
GET /v1/ticker | OHLCV (Pro+) | 50 | 5 | 100 | 550 | 5,050 |
Numbers follow OpenAPI operation text (v1.6.x); verify with GET /v1/limits for your account. There is no separate /v1/oracle or /v1/derived in the published spec — use candles (e.g. source=chainlink) and compose metrics client-side where needed.
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.