Quotas

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.

ActionCounts against quota?
Opening / holding an SSE streamNo — billed per pair
GET/POST/DELETE /streams, GET /cmc/topYes — +1 request, served bytes
POST /snapshot, GET /live, GET /status, GET /schemesYes — +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 the streaming feature.
  • 429 quota_exceeded — a control-plane request crossed the shared monthly budget; honour Retry-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.