GET /v1/derived
Returns pre-computed analytics that combine data across multiple sources into a single time series.
Minimum tier: Pro | Credits: 50 base + 5 per row returned
GET https://kwery-api.com/v1/derived?api-key=YOUR_KEY
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
api-key | string | Yes | — | Your API key. Passed as a query parameter. |
symbol | string | Yes | — | Asset symbol (e.g. BTC, ETH). |
interval | string | No | 1h | Time bucket interval (5m, 15m, 1h, 4h, 1d). |
metrics | string | No | all | Comma-separated list of metrics to include (e.g. basis_spot_futures,funding_differential). Omit to return all available metrics. |
start | string | No | — | ISO 8601 start time (inclusive). |
end | string | No | — | ISO 8601 end time (exclusive). |
limit | integer | No | 100 | Number of rows to return. Range: 1–1000. |
after | string | No | — | Cursor for pagination. Pass the next_cursor value from a previous response. |
Response fields
Each object in data contains the following fields:
| Field | Type | Description |
|---|---|---|
timestamp | string | ISO 8601 bucket open time. |
symbol | string | Asset symbol. |
interval | string | Interval used for this row. |
basis_spot_futures | number | null | Annualized basis between Binance spot and Binance USDT-M futures, calculated as ((futures_close / spot_close) - 1) * (365 / days_to_expiry). Positive values indicate contango. |
basis_binance_hyper | number | null | Annualized basis between Binance USDT-M futures and Hyperliquid perpetual, highlighting venue-specific premium divergence. |
funding_differential | number | null | Difference between Binance perpetual and Hyperliquid perpetual funding rates at the same timestamp. Positive means Binance funding is higher. |
polymarket_chainlink_div | number | null | Divergence between Polymarket implied price (derived from YES probability × strike) and the Chainlink oracle feed for the same asset. Useful for detecting stale oracles or mispriced contracts. |
implied_vol_polymarket | number | null | Implied volatility backed out from Polymarket binary option prices using a Black-Scholes approximation, annualized. |
implied_vol_kalshi | number | null | Implied volatility backed out from Kalshi binary contract prices using a Black-Scholes approximation, annualized. |
Response headers
| Header | Description |
|---|---|
X-Credits-Charged | Total credits consumed by this request. |
X-RateLimit-Remaining | Requests remaining in the current rate-limit window. |
X-RateLimit-Reset | ISO 8601 timestamp when the rate-limit window resets. |
Example request
cURL
curl "https://kwery-api.com/v1/derived?api-key=YOUR_KEY&symbol=BTC&interval=1h&metrics=basis_spot_futures,funding_differential&start=2026-03-01T00:00:00Z&limit=3"
Python
import requests
resp = requests.get("https://kwery-api.com/v1/derived", params={
"api-key": "YOUR_KEY",
"symbol": "BTC",
"interval": "1h",
"metrics": "basis_spot_futures,funding_differential",
"start": "2026-03-01T00:00:00Z",
"limit": 3,
})
data = resp.json()
TypeScript
const params = new URLSearchParams({
"api-key": "YOUR_KEY",
symbol: "BTC",
interval: "1h",
metrics: "basis_spot_futures,funding_differential",
start: "2026-03-01T00:00:00Z",
limit: "3",
});
const res = await fetch(`https://kwery-api.com/v1/derived?${params}`);
const data = await res.json();
Example response
{
"data": [
{
"timestamp": "2026-03-01T00:00:00Z",
"symbol": "BTC",
"interval": "1h",
"basis_spot_futures": 0.0812,
"funding_differential": 0.00034
},
{
"timestamp": "2026-03-01T01:00:00Z",
"symbol": "BTC",
"interval": "1h",
"basis_spot_futures": 0.0798,
"funding_differential": 0.00028
},
{
"timestamp": "2026-03-01T02:00:00Z",
"symbol": "BTC",
"interval": "1h",
"basis_spot_futures": 0.0821,
"funding_differential": 0.00041
}
],
"meta": {
"symbol": "BTC",
"source": "derived",
"interval": "1h",
"count": 3,
"next_cursor": "eyJ0IjoiMjAyNi0wMy0wMVQwMzowMDowMFoifQ=="
}
}
Metric definitions
| Metric | Sources combined | Calculation |
|---|---|---|
basis_spot_futures | Binance Spot + Binance Futures | ((futures_close / spot_close) - 1) * (365 / days_to_expiry) annualized. |
basis_binance_hyper | Binance Futures + Hyperliquid | Same formula, comparing Binance USDT-M futures to Hyperliquid perpetual close. |
funding_differential | Binance Futures + Hyperliquid | binance_funding_rate - hyperliquid_funding_rate at the interval boundary. |
polymarket_chainlink_div | Polymarket + Chainlink | polymarket_implied_price - chainlink_oracle_price, in USD. |
implied_vol_polymarket | Polymarket | Black-Scholes inversion of YES/NO prices given strike, time to expiry, and risk-free rate. Annualized percentage. |
implied_vol_kalshi | Kalshi | Same Black-Scholes inversion applied to Kalshi contract prices. Annualized percentage. |
Tier access
| Tier | Access |
|---|---|
| Free | Locked — returns 403. |
| Pro | basis_spot_futures only. Other metrics return null. History limited to 30 days. |
| Business | All metrics. Full history. |
Errors
| Status | Code | Description |
|---|---|---|
400 | invalid_symbol | The symbol parameter is missing or not recognized. |
400 | invalid_interval | The interval value is not supported for derived metrics. |
400 | invalid_metric | One or more values in metrics are not recognized. |
403 | tier_locked | Your plan does not have access to this endpoint or the requested metric. |
429 | rate_limit_exceeded | You have exceeded your per-minute or per-hour request quota. |