Mint a playback session token
POST
/v1/playback/sessions
const url = 'https://api.wirevod.online/v1/playback/sessions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"asset_id":"ast_01J9Z","ttl_seconds":14400}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.wirevod.online/v1/playback/sessions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "asset_id": "ast_01J9Z", "ttl_seconds": 14400 }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
asset_id
required
string
ttl_seconds
integer
Example
{ "asset_id": "ast_01J9Z", "ttl_seconds": 14400}Responses
Section titled “ Responses ”Signed session token and the delivery URLs it unlocks.
Media typeapplication/json
object
session
required
object
id
required
string
asset_id
required
string
expires_at
required
integer
drm
required
boolean
token
required
string
urls
required
object
manifest
required
string format: uri
telemetry
required
string format: uri
entitlement
Present only for DRM-protected assets.
string format: uri
Example
{ "session": { "id": "pbs_01J9Z", "asset_id": "ast_01J9Z", "expires_at": 1760014400000, "drm": false }, "token": "v1.playback-token", "urls": { "manifest": "https://media.wirevod.online/v1/play/v1.playback-token/package/hls/master.m3u8", "telemetry": "https://media.wirevod.online/v1/telemetry" }}The request was malformed or failed validation.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "invalid_request", "code": "invalid_request", "message": "asset_id is required"}Missing or invalid credentials.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "unauthorized", "code": "unauthorized", "message": "Authentication required"}The principal lacks the required scope or role.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "forbidden", "code": "forbidden", "message": "Missing required scope: write"}The resource does not exist in the tenant, or the route is unknown.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "not_found", "code": "not_found", "message": "Asset not found"}The request conflicts with the resource’s current state.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "upload_in_progress", "code": "upload_in_progress", "message": "An upload is already in progress for this asset"}Too many requests in the current window.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "rate_limited", "code": "rate_limited", "message": "Too many requests", "details": { "retry_after": 60 }}Headers
Section titled “Headers”Retry-After
integer
Seconds to wait before retrying.
A dependency (DRM, Google, playback signing) is not configured or unavailable.
Media typeapplication/json
object
error
required
string
code
required
string
message
required
string
details
Example
{ "error": "playback_unavailable", "code": "playback_unavailable", "message": "Playback is not configured"}