Cast 2.0

Get streamer token

post
/cast/streamer-token

Generates LiveKit credentials for a streamer to broadcast in a scene. This endpoint validates a streaming token and provides the necessary credentials for a streamer to connect to the LiveKit room and start streaming. No authentication required - uses streaming token for validation.

Body
tokenstringRequired

Streaming token for authentication

identitystringRequired

Display name for the streamer

Responses
chevron-right
200

Streamer token generated successfully

application/json
urlstringRequired

LiveKit connection URL

tokenstringRequired

LiveKit JWT token for authentication

roomIdstringRequired

LiveKit room ID

identitystringRequired

Unique internal identity for the streamer

post
/cast/streamer-token

Get watcher token

post
/cast/watcher-token

Generates LiveKit credentials for a watcher to view streams in a location. This endpoint allows users to join as viewers in a specific location (parcel or world) and watch active streams. No authentication required.

Body
locationstringRequired

Location (parcel coordinates or world name)

Example: 20,-4
identitystringRequired

Display name for the watcher

Responses
chevron-right
200

Watcher token generated successfully

application/json
urlstringRequired

LiveKit connection URL

tokenstringRequired

LiveKit JWT token for authentication

roomIdstringRequired

LiveKit room ID

identitystringRequired

Unique internal identity for the watcher

placeNamestringOptional

Name of the place being watched

post
/cast/watcher-token
get
/cast/generate-stream-link

Generates a unique stream link for a scene that allows streamers to broadcast and watchers to view the stream. Only scene administrators can generate stream links. The generated link expires after 4 days. Requires Signed Fetch authentication from decentraland-kernel-scene. Must include the complete identity header chain: x-identity-auth-chain-0, x-identity-auth-chain-1, x-identity-auth-chain-2, x-identity-timestamp, and x-identity-metadata.

Authorizations
x-identitystringRequired

Signed Fetch authentication for scene-based requests. Requires a chain of identity headers:

  • x-identity-auth-chain-0: Signer information
  • x-identity-auth-chain-1: Ephemeral key information
  • x-identity-auth-chain-2: Signed entity information
  • x-identity-timestamp: Request timestamp
  • x-identity-metadata: Request metadata Used for authentication from decentraland-kernel-scene.
Responses
chevron-right
200

Stream link generated successfully

application/json
streamLinkstringRequired

URL for streamers to access the stream

watcherLinkstringRequired

URL for watchers to access the stream

streamingKeystringRequired

Unique streaming key for authentication

placeIdstringRequired

ID of the place

placeNamestringRequired

Name of the place

expiresAtstring · date-timeRequired

Expiration timestamp in ISO format

expiresInDaysintegerRequired

Number of days until expiration

get
/cast/generate-stream-link

Get stream information

get
/cast/stream-info/{streamingKey}

Retrieves information about a stream using its streaming key. This endpoint provides details about the place, location, and stream status. No authentication required.

Path parameters
streamingKeystringRequired

Streaming key for the stream

Responses
chevron-right
200

Stream information retrieved successfully

application/json
placeNamestringRequired

Name of the place

placeIdstringRequired

ID of the place

locationstringRequired

Location identifier (world name or parcel coordinates)

isWorldbooleanRequired

Whether this is a world or a parcel

get
/cast/stream-info/{streamingKey}

Generate presentation bot token

post
/cast/presentation-bot-token

Generates a LiveKit token for a presentation bot to join a cast room. The bot uses this token to connect to the room and manage presentations. No authentication required - uses streaming key for validation.

Body
streamingKeystringRequired

Streaming key to generate presentation bot token for

Responses
chevron-right
200

Presentation bot token generated successfully

application/json
tokenstringRequired

LiveKit JWT token for the presentation bot

roomIdstringRequired

LiveKit room ID the bot can join

post
/cast/presentation-bot-token

List presenters in a room

get
/cast/presenters

Returns the list of participants with the presenter role in a cast room. The roomId is derived server-side from the Signed Fetch auth metadata (sceneId + realm). Only scene administrators can list presenters. Requires Signed Fetch authentication.

Authorizations
x-identitystringRequired

Signed Fetch authentication for scene-based requests. Requires a chain of identity headers:

  • x-identity-auth-chain-0: Signer information
  • x-identity-auth-chain-1: Ephemeral key information
  • x-identity-auth-chain-2: Signed entity information
  • x-identity-timestamp: Request timestamp
  • x-identity-metadata: Request metadata Used for authentication from decentraland-kernel-scene.
Responses
chevron-right
200

Presenters listed successfully

application/json
presentersstring[]Required

List of participant identities with presenter role

get
/cast/presenters

Promote participant to presenter

put
/cast/presenters/{participantIdentity}

Promotes a participant in a cast room to the presenter role, allowing them to share content. The roomId is derived server-side from the Signed Fetch auth metadata (sceneId + realm). Only scene administrators can promote presenters. Requires Signed Fetch authentication.

Authorizations
x-identitystringRequired

Signed Fetch authentication for scene-based requests. Requires a chain of identity headers:

  • x-identity-auth-chain-0: Signer information
  • x-identity-auth-chain-1: Ephemeral key information
  • x-identity-auth-chain-2: Signed entity information
  • x-identity-timestamp: Request timestamp
  • x-identity-metadata: Request metadata Used for authentication from decentraland-kernel-scene.
Path parameters
participantIdentitystringRequired

Ethereum address of the participant to promote (0x + 40 hex characters)

Pattern: ^0x[0-9a-fA-F]{40}$
Responses
chevron-right
200

Participant promoted to presenter

application/json
messagestringRequired

Success message

put
/cast/presenters/{participantIdentity}

Demote presenter to watcher

delete
/cast/presenters/{participantIdentity}

Demotes a presenter back to the watcher role, revoking their ability to share content. The roomId is derived server-side from the Signed Fetch auth metadata (sceneId + realm). Only scene administrators can demote presenters. Requires Signed Fetch authentication.

Authorizations
x-identitystringRequired

Signed Fetch authentication for scene-based requests. Requires a chain of identity headers:

  • x-identity-auth-chain-0: Signer information
  • x-identity-auth-chain-1: Ephemeral key information
  • x-identity-auth-chain-2: Signed entity information
  • x-identity-timestamp: Request timestamp
  • x-identity-metadata: Request metadata Used for authentication from decentraland-kernel-scene.
Path parameters
participantIdentitystringRequired

Ethereum address of the participant to demote (0x + 40 hex characters)

Pattern: ^0x[0-9a-fA-F]{40}$
Responses
chevron-right
200

Participant demoted from presenter

application/json
messagestringRequired

Success message

delete
/cast/presenters/{participantIdentity}

Last updated