API Reference

Every public and customer-facing endpoint of the Streamway API: live streams, restream, clips, on-demand media, analytics, webhooks and account management. Two families are out of scope: server-to-server fleet endpoints under /v1/system, gated by a system key and an IP allowlist, and the operator-only endpoints that expose fleet topology, which are documented internally.

Conventions

Rules that hold across every endpoint. Read this once and the reference below gets much shorter.

Response envelope

Successful responses wrap the payload: { "success": true, "data": … }. The Response examples in this reference show the data payload only — so a field shown as id is read at body.data.id. Every endpoint that does not follow this carries an explicit note: the stats group, the billing group, the manifest redirect, the embed player, and the 204 deletes.

Errors

{ "success": false, "error": "…", "code": "…" }. Two layers deviate and it matters when you write a client: the auth and role middleware omit code entirely, and the rate limiter answers with a different shape altogether — { "code": "too_many_requests", "message": "…" }. Branch on the HTTP status, not on the presence of a field.

Authentication

Three credentials, tried in this order: x-api-key, then the access_token cookie, then Authorization: Bearer <jwt>. A key that fails to resolve does not end the request — it falls through to the next credential, so a stale key beside a valid session silently succeeds as the session user.

Rate limiting

Per client IP, 100 requests per minute by default, applied to everything under /v1. No X-RateLimit-* headers are sent — the only signal is the 429 itself, so back off on status rather than waiting for a header that never arrives.

Pagination

Three shapes, by group. Streams use { page, limit, total, total_pages }; clips use { page, per_page, total, items }; recordings, media, webhook logs, the stream error journal and system events use { total, limit, offset }. Empty results are inconsistent too — some return [], some null — so treat both as empty.

Times, sizes and IDs

All timestamps are RFC3339 UTC. All sizes and transfer figures are bytes, never gigabytes. Note which id an endpoint takes: the public playback routes key on ingress_id, while the client routes key on the stream id — passing the wrong one returns a clean 404 that looks like a missing resource.

Error codes

CodeStatusMeaning
BAD_REQUEST400Malformed body or a missing required field.
VALIDATION_ERROR400Well-formed but semantically invalid — a value outside its allowed set.
UNAUTHORIZED401No usable credential, or the wrong password on a password route.
FORBIDDEN403Authenticated but not permitted. Some endpoints return 404 instead, on purpose.
NOT_FOUND404Absent — or present but not yours, where existence itself is withheld.
CONFLICT409Only reachable from register, when the email is taken.
REQUEST_ENTITY_TOO_LARGE413Upload exceeds the reserved size or your remaining quota.
INTERNAL_ERROR500Unexpected fault. The message is deliberately generic.
SERVICE_UNAVAILABLE503A dependency is missing or at capacity — no edge server, or a feature not configured.

Service

Health, build info and counters. Not under /v1, no authentication.

3 endpoints

Authentication

Register, sign in, rotate sessions and reset passwords.

8 endpoints

Public & Playback

Unauthenticated endpoints: platform counters, public stream lookup, manifest redirect and the embed player.

5 endpoints

Streams

Create, configure and monitor live streams — push (RTMP) and pull (RTSP/RTMP/HLS) ingest.

15 endpoints

Restream

Forward a live stream on to YouTube, Twitch and other RTMP endpoints while it is running.

6 endpoints

Clips

Cut shareable segments out of a stream by time offset.

4 endpoints

Schedules

Plan broadcasts ahead of time and drive a calendar view.

5 endpoints

Analytics

Viewer and delivery metrics, ingest health, player quality of experience, and live vs on-demand traffic.

15 endpoints

Recordings

Recorded stream sessions.

4 endpoints

Media Library (VOD)

Upload, organise, transcode and play back on-demand files.

16 endpoints

Webhooks

Receive stream, recording and media events as HTTP callbacks.

6 endpoints

API Keys

Long-lived credentials for server-to-server calls.

3 endpoints

Templates

Reusable stream settings presets.

5 endpoints

Organizations

Teams, membership, roles and invitations.

11 endpoints

Ingest Tasks

Pull-based ingest: we connect out to an RTSP, RTMP or HLS source and publish it as a stream.

4 endpoints

Account

Profile, workspace settings, quotas, onboarding and the account event log.

12 endpoints

Billing

Subscription and invoices. Proxied to the platform billing service.

4 endpoints

Notifications

Which events reach you by email and by webhook.

2 endpoints