---
title: "Live per-strike heatmap (one or more symbols)"
method: GET
path: "/v1/heatmap"
tags: ["Heatmap"]
---

# Live per-strike heatmap (one or more symbols)

`GET /v1/heatmap`

Current per-strike heatmap for one or more symbols at the latest
snapshot. Includes the live `velocityPct` per strike. Pass multiple
comma-separated symbols for a single cross-asset (Trinity) call.

## Query parameters

- `symbols` string, required
- `metric` 'gamma' | 'vanna'
- `maxStrikes` integer

## Response `200`

Live heatmap snapshot(s).

- object
  - `data` object, required
    - `symbols` SymbolHeatmap[], required
      - `symbol` string, required — Canonical ticker for the returned data.
      - `asOf` string, date-time, required — RFC3339 timestamp of the snapshot actually returned (nearest to the requested instant).
      - `spot` number, required — Spot price at the snapshot.
      - `previousClose` number, required
      - `priceChange` number, required — Spot minus previous close.
      - `priceChangePercent` number, required
      - `expirations` string[], required — Expiration dates (YYYY-MM-DD) contributing to each strike's net value.
      - `strikes` StrikeNode[], required — Per-strike nodes, ordered by strike ascending.
        - `strike` number, required — Strike price.
        - `value` number, required — Net exposure for the selected `metric` at this strike (summed across the returned expirations).
        - `nodeType` 'king' | 'gatekeeper' | 'pika' | 'barney' | 'significant' | 'normal', required — Skylit's node classification for this strike.
        - `velocityPct` number — Live percent change of this strike's value over the velocity window. Present on `/v1/heatmap` only; omitted on `/v1/historical`.
  - `meta` Meta, required
    - `timestamp` string, date-time, required — Server-side timestamp the response was generated at.
    - `requestId` string, required — Short opaque ID for log correlation.

## Other responses

- `400` — Request validation failed.
- `401` — Missing or invalid API key.
- `403` — API key revoked/expired, monthly quota exceeded, or the account's API access is suspended (`account_suspended`).
- `404` — Unknown resource (ticker / sector / window with no data).
- `429` — Per-minute rate limit exceeded.
- `503` — Underlying data source temporarily unavailable, or the credit balance could not be verified (`credit_check_failed`). Safe to retry.

---

[API](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api.md) · [All operations](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skylit/flowseeker-skylit-public-api/revisions/3280190b1b24/schema)
