Live SSE stream (one symbol per connection)
A Server-Sent Events (text/event-stream) feed of live per-strike
heatmap updates for one symbol. Open one connection per symbol.
Events:
connected— handshake, payload{symbol, creditsRemaining}.initial_data— current heatmap snapshot on connect.snapshot_update— full heatmap on each change.velocity_update— per-strike % change.credits— emitted every minute boundary, payload{remaining}.closed— stream terminates with{reason: "insufficient_credits" | "account_suspended" | "credit_check_failed"}.reconnect— server is recycling the connection (after ~1h), payload{reason: "max_duration"}. Reconnect to continue.: keepalivecomment every 30s for proxy keepalive.
Pricing. 1 credit on connect (charged before the SSE upgrade —
an under-funded client gets a clean 402 HTTP response, not a
half-open stream), then 1 credit per minute open. The per-minute
ticker emits event: credits {remaining: N} after each successful
debit so clients can budget the next minute.
Concurrency. Up to 5 concurrent streams per customer per pod.
Exceeding the cap returns 429 stream_limit_reached.
OpenAPI is request/response-oriented and can’t fully model an event stream. See docs/api-credits.md for the full stream lifecycle.
Authorizations
Skylit API key in the Authorization header
(Authorization: Bearer <key>). X-API-Key is also accepted.
Query Parameters
Single ticker to stream (e.g. SPY). One symbol per connection.
"SPY"
Which Greek exposure to return per strike.
gamma, vanna Maximum number of strikes around spot to return.
1 <= x <= 400Response
An SSE stream of heatmap events.
SSE frames, e.g. event: snapshot_update then data: {SymbolHeatmap}.
The snapshot_update data payload matches #/components/schemas/SymbolHeatmap.

