A seat and its viewer token (server admission), or a place in line
Call it from your backend after your own login. Without `seat`, a new seat id is made; while the viewer waits, call again with the `seat` from the last answer every `retry_after_ms`. A seat is kept by the player's heartbeat (`/v1/play/{id}/hb`): 20 s without one (60 s for a hidden tab) and the seat is lost and its relay sessions closed.
Call it from your backend after your own login. Without seat, a new
seat id is made; while the viewer waits, call again with the seat
from the last answer every retry_after_ms. A seat is kept by the
player's heartbeat (/v1/play/{id}/hb): 20 s without one (60 s for a
hidden tab) and the seat is lost and its relay sessions closed.
secretKeyAuthorizationBearer <token>sk_...
id*stringapplication/json- body
seat?SeatId^se_[0-9a-f]{32}$viewer_ref?stringyour id for the viewer, in the relay logs as viewer:
join?booleantake a seat offered to this viewer (false: answer state offer and wait for a second call)
truettl?integerseconds; default 120. The token bounds the join, not the watching
1 <= value <= 3600seated
application/json- response
A token and where to use it; the player and the SDK publisher take it whole.
token?stringthe CAT, base64url without padding; CLIENT_SETUP AUTHORIZATION TOKEN type 1
token_id?|the CWT cti: s-... (viewer), pub-... (SDK publisher asked with token_id), ing-... (gateway), turn: (controller); null for a device publisher token
expires_at?stringdate-timeexp?integerUnix seconds
relays?array<>namespace?stringcatalog?stringrelay_cert_sha256?stringonly for a relay with a self-signed certificate
hls?stringthe LL-HLS playlist for the player fallback; with the API edge, /v1/play/{id}/hls/index.m3u8 and only for streams with encoder ingest
state?"in""in"seat?SeatId^se_[0-9a-f]{32}$heartbeat_ms?integerplay_url?stringwhere the player keeps the seat: POST {play_url}/hb every heartbeat_ms, and {play_url}/leave on close, with the seat alone; present when the API knows its public address
curl -X POST 'https://api.nearglass.com/v1/streams/st_8f2c41d09a7be3105c6e2d77/viewer-tokens' \ -H 'Content-Type: application/json' \ -d '{ "viewer_ref": "user-4821"}'{ "token": "string", "token_id": "string", "expires_at": "2019-08-24T14:15:22Z", "exp": 0, "relays": [ { "url": "string" } ], "namespace": "string", "catalog": "string", "relay_cert_sha256": "string", "hls": "string", "state": "in", "seat": "string", "heartbeat_ms": 0, "play_url": "string"}A token for an SDK publisher (nearglass-pub, nearglass.h) POST
Previous Page
A driver's turn (interactive streams) POST
The viewer's rights plus publish on `control/<namespace>/<turn_id>`. Token id `turn:<turn_id>`, subject `driver:<driver_ref>`. Your backend runs the queue of drivers; the device's Gate ends the turn at its own deadline.