Live streams are billed per pair
Opening and holding a live SSE stream is not counted against your monthly request or byte quota, and there is no cap on the number of simultaneous streams. Live streaming is billed per pair — see Endpoints for the subscription model. Abusive request volume is handled at the infrastructure edge, not by a per-account stream cap.
A stream you are not entitled to — an unsubscribed pair, or one whose payment has
lapsed — is rejected at connect with
402 payment_required. It is never silently
throttled.
Control-plane requests share the core quota
The non-streaming requests on this surface — registering, listing and removing
pairs, POST /snapshot, GET /live, GET /status, GET /schemes, and
GET /cmc/top — are ordinary REST calls and draw from the same monthly
request/byte quota as the core API. Check the combined total at
/v1/me/usage or on the X-Quota-*
response headers.
| Action | Counts against quota? |
|---|---|
| Opening / holding an SSE stream | No — billed per pair |
GET/POST/DELETE /streams, GET /cmc/top | Yes — +1 request, served bytes |
POST /snapshot, GET /live, GET /status, GET /schemes | Yes — +1 request, served bytes |
See Quotas and Rate Limits for the core plan limits and reset behavior — they apply to the control-plane requests above, not to the streams themselves.
Errors
Streaming endpoints use the same error envelope and codes as the core API:
402 payment_required— the pair is not in your active streaming subscription, or its payment lapsed. Subscribe or update your payment method to resume.403 plan_forbidden— your plan lacks thestreamingfeature.429 quota_exceeded— a control-plane request crossed the shared monthly budget; honourRetry-After/details.resets_at. Live SSE streams are never rejected for quota.502 temporarily_unavailable— the streaming service is degraded; retry with backoff.
See Errors for the full catalogue.