Documentation Index
Fetch the complete documentation index at: https://docs.backquant.com/llms.txt
Use this file to discover all available pages before exploring further.
Set your key once and reuse the variable across requests:
export BACKQUANT_API_KEY=bq_live_your_api_key_here
All examples below assume that variable is set. Pipe through jq if
you want pretty JSON.
Health probe (no auth)
curl -s https://api.backquant.com/v2/health | jq
curl -s https://api.backquant.com/v2/meta \
-H "X-API-Key: $BACKQUANT_API_KEY" | jq '.data | {name, version, supported_symbols, rate_limits}'
GEX levels with everything
One call, all the optional sections:
curl -s "https://api.backquant.com/v2/gex/levels?\
symbol=BTCUSDT\
&include=ranked,max_pain,expected_move,zones,spot,candles" \
-H "X-API-Key: $BACKQUANT_API_KEY" | jq '.data | {hvl: .all_expiry.hvl, max_pain, expected_move}'
OPEX calendar — anchors only, next 90 days
curl -s "https://api.backquant.com/v2/options/opex?\
symbol=BTCUSDT\
&horizon=90\
&types=monthly,quarterly" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '.data.expirations[] | {expiry, type, dte, oi: .oi.total_oi, max_pain: .gamma.max_pain.strike}'
Multi-symbol GEX in one call
curl -s "https://api.backquant.com/v2/multi/gex/levels?\
symbols=BTCUSDT,ETHUSDT,SOLUSDT,HYPEUSDT\
&include=ranked,max_pain,expected_move" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '.data.results | to_entries[] | {symbol: .key, hvl: .value.all_expiry.hvl, max_pain: .value.max_pain.strike}'
Filter chain to ATM ±10% with greeks only
curl -s "https://api.backquant.com/v2/options/chain?\
symbol=BTCUSDT\
&moneyness_min=0.9\
&moneyness_max=1.1\
&include=oi,iv,greeks\
&max_contracts=200" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '{contracts: (.data.contracts | length), truncated: .data.truncated, total: .data.total_matching_count}'
Per-expiry max-pain
curl -s "https://api.backquant.com/v2/gex/max-pain?symbol=BTCUSDT&expiry=all" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '.data.per_expiry'
Probability density with 1σ band
curl -s "https://api.backquant.com/v2/options/probability/density?\
symbol=BTCUSDT\
&confidence_band=0.68" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '.data.expiries | to_entries[] | {expiry: .key, lower: .value.confidence_band.lower, upper: .value.confidence_band.upper}'
IV term structure with 30-day historical overlay
curl -s "https://api.backquant.com/v2/options/iv/term-structure?\
symbol=BTCUSDT\
&historical_compare_days=30" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '{current: .data, compare_30d_ago: .data.compare}'
30-day stress history (Postgres-backed)
curl -s "https://api.backquant.com/v2/gex/stress-history?\
symbol=BTCUSDT\
&days=30" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| jq '{points: (.data.timestamps | length), latest_hvl: .data.hvl[-1]}'
curl -s -i "https://api.backquant.com/v2/gex/levels?symbol=BTCUSDT" \
-H "X-API-Key: $BACKQUANT_API_KEY" \
| grep -i "x-ratelimit"
x-ratelimit-limit: 120
x-ratelimit-remaining: 87
x-ratelimit-reset: 1714478160
Save the OpenAPI spec for SDK codegen
curl -s https://api.backquant.com/v2/openapi.json -o backquant-v2-openapi.json
# Generate a Python client (requires `openapi-python-client`):
openapi-python-client generate --path backquant-v2-openapi.json
# Generate a TypeScript client (requires `openapi-typescript-codegen`):
openapi --input backquant-v2-openapi.json --output ./src/api-client
See also
Python recipes
The same patterns wired through requests.
TypeScript recipes
The same patterns wired through fetch.
Quick start
Step-by-step from zero to first call.