Skip to main content
Planned contract. The current sandbox does not create sessions or session tokens. Use the quickstart for supported check authorization and receipt verification.
A live session runs under a session token instead of an authorization token. POST /v1/sessions returns it as token, and renewing the session returns a new one. Each token lives 5 minutes, and the session is renewed every 60 seconds, so a revoked license stops a session at the next renewal even when the session stream is lost. The token is a JWS in compact serialization, signed with ES256.
typ is always tlp-session+jwt. kid names the signing key in the JWKS.

Claims

Example payload

A fan voice chat in Maya Okafor’s speaking voice, run by Northlight under its platform license:
Northlight holds this license itself, so aud and sub are the same account.

Renewal

On 409 session_not_active, stop output at once. On a network error, 429 or 5xx, keep retrying, and stop when the current token expires if no renewal succeeded. Pass each new token to the provider that runs the session; the provider stops when the token it holds expires and no newer one arrives.

Verify a token

A provider that runs a live voice or video session verifies the token before it starts, and each renewed token as it arrives. The steps are those for an authorization token, with these differences:
  1. typ is tlp-session+jwt.
  2. exp is 5 minutes after iat. Allow at most 60 seconds of leeway on exp and on iat.
  3. tlp.session is the session you are running.
  4. There is no tlp.max_generations and no tlp.execution. A session token covers one session, identified by jti, until it expires.
  5. A renewed token must have the same jti, tlp.licenses and tlp.facets as the one it replaces.
The session token also authenticates a client on the session stream, as the subprotocol tlp.session.<token>, offered with tlp.session.v1. The stream checks the token once, when the connection opens; renewing over REST keeps the session and does not reconnect the stream.

Real-time sessions

Renewal, sampling, termination and the one-second stop.

Voice platforms

Licensed voices, scripts and live sessions.