---
title: "Live Tempest updates (Server-Sent Events)"
method: GET
path: "/v1/vol/stream"
tags: ["Tempest"]
---

# Live Tempest updates (Server-Sent Events)

`GET /v1/vol/stream`

## Request

- Base URL: `https://api.skylit.ai`
- URL: `https://api.skylit.ai/v1/vol/stream`
- Auth: HTTP bearer

Pushes a symbol's full module state each time Tempest recomputes it:
about every minute for the most active names and every ~10 minutes for
the rest during regular hours. Quote readings stay frozen after close;
calendar or availability updates can still push a full state with the
same quote timestamp and event ID. Events: `connected`, `vol` (id = asOf in epoch ms; data
is a `data.symbols[]` element of `/v1/vol/snapshot`), `market` (with
`market=true`), `credits`, `closed`, `reconnect` (after an hour).
Resume with `Last-Event-ID` (or `lastEventId`): the initial burst skips
symbols whose asOf is older than it; a frame at exactly that id may
repeat. Up to 10 symbols per stream and 5 streams per account. Each
server also holds a bounded number of open streams across all
customers; at capacity → `503` `stream_capacity` with `Retry-After: 5`
(retry; you may land on another server). Access is re-checked every
minute: a stream closes with `closed` `{"reason":"access_withdrawn"}`
once the account is no longer enabled.
**Cost:** 1 credit to connect and 1 per minute open.

## Query parameters

- `symbols` string, required
- `modules` string
- `market` boolean
- `lastEventId` integer

## Response `200`

An SSE stream (`text/event-stream`).

## Other responses

- `400`: Request validation failed.
- `401`: Missing API key (`unauthorized`), sent by the gateway.
- `402`: Out of credits (`insufficient_credits`).
- `403`: As `Forbidden`, or `not_entitled`: Tempest data is not enabled for this account (it is in preview). Refunded.
- `404`: Unknown symbol, no data available, or none of the requested `expirations` exist for the symbol (`code: expiration_not_found`).
- `429`: Per-minute rate limit exceeded.
- `503`: Tempest data is loading (`warming_up`, with `Retry-After`) or not configured (`unavailable`). Refunded.

---

[API](https://skmtc.dev/skylit/apis/skylit-public-api.md) · [All operations](https://skmtc.dev/skylit/apis/skylit-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skylit/apis/skylit-public-api/revisions/890b0ea4e6f5?raw)
