Livqeno Docs

Live Streaming API

Stream lifecycle, host and co-host credentials, viewer tokens.

A stream wraps an RTC room and a chat conversation. Creating one provisions both; minting a host or viewer credential returns tokens for both, already shaped for LiveStream.join().

See Streams & lifecycle.

Endpoints

MethodPathCredential
GET/v1/live-streamsProject API key
POST/v1/live-streamsProject API key
GET/v1/live-streams/{streamId}Project API key
PATCH/v1/live-streams/{streamId}Project API key
POST/v1/live-streams/{streamId}/endProject API key
POST/v1/live-streams/{streamId}/hostsProject API key
DELETE/v1/live-streams/{streamId}/hosts/{identity}Project API key
POST/v1/live-streams/{streamId}/leaveProject API key
POST/v1/live-streams/{streamId}/startProject API key
POST/v1/live-streams/{streamId}/viewer-tokensProject API key
GET/v1/projects/{projectId}/live-streamsDashboard session (JWT)
POST/v1/projects/{projectId}/live-streamsDashboard session (JWT)
GET/v1/projects/{projectId}/live-streams/{streamId}Dashboard session (JWT)
PATCH/v1/projects/{projectId}/live-streams/{streamId}Dashboard session (JWT)
POST/v1/projects/{projectId}/live-streams/{streamId}/endDashboard session (JWT)

GET /v1/live-streams

List the project's live streams

Credential Project API key

No parameters.

POST /v1/live-streams

Create a live stream — a dedicated RTC room plus an attached chat conversation

Credential Project API key · Rate limit 30 per window (details) · Idempotent send Idempotency-Key to replay safely

ParameterInTypeRequiredNotes
titlebodystringYes1–200 chars
hostIdentitybodystringYes1–128 chars, pattern-checked — The developer's own identity for whoever is starting this stream. Registered as its HOST — the only identity a stream is created with, and the only one whose role is ever HOST rather than CO_HOST.
descriptionbodystringNo0–2000 chars
thumbnailUrlbodystringNo0–2048 chars — A URL you host — Livqeno does not accept or store thumbnail uploads.
categorybodystringNo0–64 chars
tagsbodystring[]Noarray
languagebodystringNo0–16 chars
visibilitybodyLiveStreamVisibilityNo
metadatabodyRecord<string, unknown>NoYour own JSON, capped at 4 KB — same convention as Room/Conversation metadata.
scheduledAtbodystringNoWhen set, the stream is created for a future start — see docs/live-streaming/overview.md#scheduled-streams. Livqeno does not automatically transition status at this time; your backend still calls start().

GET /v1/live-streams/{streamId}

Get a stream, including its live viewer count

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes

PATCH /v1/live-streams/{streamId}

Update a stream's metadata — title, description, thumbnail, visibility, etc.

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes
titlebodystringNo1–200 chars
descriptionbodystringNo0–2000 chars
thumbnailUrlbodystringNo0–2048 chars
categorybodystringNo0–64 chars
tagsbodystring[]Noarray
languagebodystringNo0–16 chars
visibilitybodyLiveStreamVisibilityNo
metadatabodyRecord<string, unknown>No

POST /v1/live-streams/{streamId}/end

LIVE → ENDED. Terminal — an ended stream cannot be restarted; create a new one.

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes

POST /v1/live-streams/{streamId}/hosts

Register a host/co-host and mint their RTC + chat credentials

Credential Project API key · Rate limit 60 per window (details)

ParameterInTypeRequiredNotes
streamIdpathstringYes
identitybodystringYes1–128 chars, pattern-checked
rolebodyLiveStreamHostRoleNoHOST and CO_HOST get identical RTC/chat grants — the difference is bookkeeping, not permissions. A stream already has a HOST (set at creation); this is normally CO_HOST.

DELETE /v1/live-streams/{streamId}/hosts/{identity}

Remove a co-host — soft removal, their history in the stream chat is preserved

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes
identitypathstringYes

POST /v1/live-streams/{streamId}/leave

Signal that a viewer left, for live_stream.viewer_left

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes
identitybodystringYes1–128 chars, pattern-checked

POST /v1/live-streams/{streamId}/start

CREATED → LIVE

Credential Project API key

ParameterInTypeRequiredNotes
streamIdpathstringYes

POST /v1/live-streams/{streamId}/viewer-tokens

Mint a viewer's RTC + chat credentials

Credential Project API key · Rate limit 120 per window (details)

ParameterInTypeRequiredNotes
streamIdpathstringYes
identitybodystringYes1–128 chars, pattern-checked — The viewer's identity, from your own authenticated session — never trusted from an unauthenticated client. Always minted with subscribe-only RTC permissions; there is no field here that can request publish access.

GET /v1/projects/{projectId}/live-streams

List a project's live streams

Credential Dashboard session (JWT)

ParameterInTypeRequiredNotes
projectIdpathstringYes

POST /v1/projects/{projectId}/live-streams

Create a live stream in this project

Credential Dashboard session (JWT)

ParameterInTypeRequiredNotes
projectIdpathstringYes
titlebodystringYes1–200 chars
hostIdentitybodystringYes1–128 chars, pattern-checked — The developer's own identity for whoever is starting this stream. Registered as its HOST — the only identity a stream is created with, and the only one whose role is ever HOST rather than CO_HOST.
descriptionbodystringNo0–2000 chars
thumbnailUrlbodystringNo0–2048 chars — A URL you host — Livqeno does not accept or store thumbnail uploads.
categorybodystringNo0–64 chars
tagsbodystring[]Noarray
languagebodystringNo0–16 chars
visibilitybodyLiveStreamVisibilityNo
metadatabodyRecord<string, unknown>NoYour own JSON, capped at 4 KB — same convention as Room/Conversation metadata.
scheduledAtbodystringNoWhen set, the stream is created for a future start — see docs/live-streaming/overview.md#scheduled-streams. Livqeno does not automatically transition status at this time; your backend still calls start().

GET /v1/projects/{projectId}/live-streams/{streamId}

Get one stream, including its live viewer count and registered hosts

Credential Dashboard session (JWT)

ParameterInTypeRequiredNotes
streamIdpathstringYes
projectIdpathstringYes

PATCH /v1/projects/{projectId}/live-streams/{streamId}

Update a stream's metadata — title, description, thumbnail, visibility, etc.

Credential Dashboard session (JWT)

ParameterInTypeRequiredNotes
streamIdpathstringYes
projectIdpathstringYes
titlebodystringNo1–200 chars
descriptionbodystringNo0–2000 chars
thumbnailUrlbodystringNo0–2048 chars
categorybodystringNo0–64 chars
tagsbodystring[]Noarray
languagebodystringNo0–16 chars
visibilitybodyLiveStreamVisibilityNo
metadatabodyRecord<string, unknown>No

POST /v1/projects/{projectId}/live-streams/{streamId}/end

LIVE → ENDED. Terminal — an ended stream cannot be restarted; create a new one.

Credential Dashboard session (JWT)

ParameterInTypeRequiredNotes
streamIdpathstringYes
projectIdpathstringYes

Next steps

  • Conventions — base path, error envelope, request ids, pagination.
  • Errors — every code this API can return.
  • All endpoints — the whole surface on one page.