Planned contract. The current sandbox does not create sessions or session tokens. Use the
quickstart for supported check authorization and receipt verification.
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.
Header
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: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:typistlp-session+jwt.expis 5 minutes afteriat. Allow at most 60 seconds of leeway onexpand oniat.tlp.sessionis the session you are running.- There is no
tlp.max_generationsand notlp.execution. A session token covers one session, identified byjti, until it expires. - A renewed token must have the same
jti,tlp.licensesandtlp.facetsas the one it replaces.
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.
Related
Real-time sessions
Renewal, sampling, termination and the one-second stop.
Voice platforms
Licensed voices, scripts and live sessions.