Server-sent events for one account (intents, quota, account mirror, notices, incidents, pricing).
GET/v1/stream
Auth: send the Authorization header from a streaming HTTP client. From a browser EventSource,
use a single-use ticket query parameter instead. A native-auth token is never accepted in a URL.
Event names are the StreamTopic values plus reset, and every client must handle reset.
data: is one StreamEvent JSON object. id: is <hostId>.<bootEpoch>.<seq>: hostId is a or
b (the core host), bootEpoch is the start time of that API process in Unix ms, and seq counts
this account's events on that host.
Last-Event-ID replays up to 300 000 ms or 1 000 events. The server sends event: reset first
when the Last-Event-ID is older than that window, comes from the other API host, or comes from
before a server restart. On reset, reload your data. Each host numbers its own events, so an ID
from one host cannot be resumed on the other.
The server coalesces at 4 to 10 Hz and sends a comment line every 15 000 ms as keep-alive.
Request
Responses
- 200
- 401
- 403
- 429
Event stream of StreamEvent objects.
UNAUTHENTICATED, TOKEN_INVALID (details.expectedShard = 1 when the native-auth block hash is not a shard-1 block), TOKEN_EXPIRED, CHALLENGE_INVALID, API_KEY_INVALID, STREAM_TICKET_INVALID, ASSIGN_PROOF_REQUIRED, ASSIGN_PROOF_INVALID.
FORBIDDEN, ORIGIN_NOT_ALLOWED, API_KEY_SCOPE, ACCOUNT_SUSPENDED, LEASE_INVALID, RECEIVER_NOT_ALLOWED, SENDER_NOT_AUTHORIZED, DEPLOY_NOT_ALLOWED, FREE_FLOW_BARRED.
RATE_LIMITED, GAS_BUDGET_EXCEEDED, HOURLY_BURN_EXCEEDED, TOO_MANY_IN_FLIGHT, QUOTA_EXHAUSTED (the latter without Retry-After; details.reason = CAP_REACHED_PAYG_OFF | PAYG_ESCROW_EMPTY).
Response Headers
Seconds (HTTP standard). Millisecond precision is in details.retryAfterMs of the problem body.
Requests (or RU on the relay path) allowed in the current window.
Remaining units in the current window.
Seconds until the window resets (IETF RateLimit header fields).