API Reference

Every public and customer-facing endpoint of the Streamway API: live streams, clips, on-demand media, analytics, webhooks and account management. Server-to-server fleet endpoints under /v1/system are not part of this reference — they are gated by a system key and an IP allowlist.

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 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.

14 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.

14 endpoints

Recordings

Recorded stream sessions.

3 endpoints

Media Library (VOD)

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

15 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.

14 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