> ## 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.

# Quick start

> Make your first v2 API call in under five minutes

This guide takes you from "I have an account" to "I have a working
integration" in five steps.

<Steps>
  <Step title="Get your API key">
    Sign in at [**backquant.com/api-access**](https://backquant.com/api-access)
    and create a key. Your key looks like:

    ```text theme={null}
    bq_live_<32-character-token>
    ```
  </Step>

  <Step title="Make your first call">
    Hit the composable GEX levels endpoint for BTC. Replace
    `YOUR_API_KEY` with your actual key:

    <CodeGroup>
      ```bash curl theme={null}
      curl "https://api.backquant.com/v2/gex/levels?symbol=BTCUSDT" \
        -H "X-API-Key: YOUR_API_KEY"
      ```

      ```python Python theme={null}
      import requests

      resp = requests.get(
          "https://api.backquant.com/v2/gex/levels",
          params={"symbol": "BTCUSDT"},
          headers={"X-API-Key": "YOUR_API_KEY"},
      )
      print(resp.json())
      ```

      ```typescript TypeScript theme={null}
      const resp = await fetch(
        "https://api.backquant.com/v2/gex/levels?symbol=BTCUSDT",
        { headers: { "X-API-Key": "YOUR_API_KEY" } },
      );
      console.log(await resp.json());
      ```
    </CodeGroup>
  </Step>

  <Step title="Read the envelope">
    Every response uses the same envelope. A successful call returns:

    ```json theme={null}
    {
      "success": true,
      "data": {
        "all_expiry": {
          "hvl": 67000,
          "call_resistance": 70000,
          "call_wall_2": 72500,
          "call_wall_3": 75000,
          "put_support": 64000,
          "put_wall_2": 60000,
          "put_wall_3": 58000
        },
        "odte": {
          "hvl": 67500,
          "call_resistance": 68000,
          "put_support": 66500
        }
      },
      "meta": {
        "version": "2.0",
        "timestamp": "2026-04-30T12:00:00.123Z",
        "request_id": "req_a1b2c3...",
        "symbol": "BTCUSDT",
        "spot_price": 67213.5,
        "computed_at": "2026-04-30T11:59:48.000Z",
        "freshness_seconds": 12.0,
        "source": ["deribit", "bybit", "okx", "binance"]
      }
    }
    ```

    Always check `success` before reading `data`. On failure you get
    `success: false` and an `error` object instead — see
    [Errors](/concepts/errors) for the full code list.

    The `meta` block tells you how stale the data is (`freshness_seconds`),
    which venues it came from (`source`), and the spot price at the time
    of computation (`spot_price`). Use `request_id` when reporting issues.
  </Step>

  <Step title="Add a filter or include">
    Most endpoints support filters. Here's the same call with the
    composable `?include=` parameter and an exchange filter:

    ```bash theme={null}
    curl "https://api.backquant.com/v2/gex/levels?\
    symbol=BTCUSDT\
    &exchanges=deribit,bybit\
    &include=ranked,max_pain,expected_move,zones" \
      -H "X-API-Key: YOUR_API_KEY"
    ```

    Now the response includes the top-10 ranked strikes by |GEX|, the
    0DTE max-pain strike, the 1σ/2σ expected move from ATM straddles,
    and the gamma flip zones — in one call.

    Common filters you'll use across the API:

    * `?symbol=BTCUSDT|ETHUSDT|SOLUSDT|HYPEUSDT` — supported symbols
    * `?exchanges=deribit,bybit,okx,binance` — venue filter
    * `?expiry=all|0dte|<token>` — single expiry slice
    * `?dte_min` / `?dte_max` / `?weekly_only=true` — DTE-axis filter
    * `?moneyness_min` / `?moneyness_max` — strike/spot ratio bounds
    * `?include=...` — opt-in to optional response sections
    * `?fields=...` — top-level projection on heavy endpoints
  </Step>

  <Step title="Try the OPEX calendar">
    For a more product-y example, get the next 30 days of options
    expirations with their classification, OI, walls, and max-pain in
    one call:

    ```bash theme={null}
    curl "https://api.backquant.com/v2/options/opex?symbol=BTCUSDT&horizon=30" \
      -H "X-API-Key: YOUR_API_KEY"
    ```

    The response gives you a ranked calendar of upcoming expirations,
    each tagged `daily | weekly | monthly | quarterly`, with the next
    monthly/quarterly anchor highlighted under `next_anchor`. See
    [the OPEX concept page](/concepts/opex) for what these mean and how
    to use them.
  </Step>
</Steps>

## What to read next

<CardGroup cols={2}>
  <Card title="What is GEX?" icon="chart-line" href="/concepts/gex">
    The single most-asked concept question. Read this before integrating.
  </Card>

  <Card title="Response format" icon="brackets-curly" href="/concepts/response-format">
    Full envelope schema, every meta field explained.
  </Card>

  <Card title="Rate limits" icon="gauge" href="/concepts/rate-limits">
    Per-tier limits, response headers, retry strategy.
  </Card>

  <Card title="Code examples" icon="code" href="/examples/python">
    Python, TypeScript, curl recipes for common workflows.
  </Card>

  <Card title="OPEX calendar" icon="calendar-days" href="/concepts/opex">
    Daily/weekly/monthly/quarterly classification, anchor expirations.
  </Card>

  <Card title="API reference" icon="book-open" href="/api/v2/gex/levels">
    All 38 endpoints, with interactive try-it-out.
  </Card>
</CardGroup>
