Playback
Generated playback operations.
GET/v1/playback/controlsRead this account’s playback on each device and the controls it may useplayback
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
get_remote_playback_controls
Parameters
| Name | In | Type | Description |
|---|---|---|---|
cursor | query | string | |
limit | query | integer | ""0–100 |
Responses
200Successapplication/json
{
"items": [
{
"actions": [
"string"
],
"device": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"durationMs": 1800000,
"generation": 0,
"item": {
"id": "id_8h2k4q",
"title": "Fargo"
},
"kind": "string",
"next": {
"album": "string",
"albumId": "id_8h2k4q",
"artist": "string",
"artistId": "id_8h2k4q",
"available": true,
"backdropUrl": "https://example.com/…",
"disc": 0,
"durationMs": 1800000,
"entryId": "id_8h2k4q",
"episode": {
"number": 0,
"seasonNumber": 0
},
"itemId": "id_8h2k4q",
"kind": "string",
"libraryId": "id_8h2k4q",
"position": 0,
"posterUrl": "https://example.com/…",
"seasonId": "id_8h2k4q",
"segmentId": "id_8h2k4q",
"showId": "id_8h2k4q",
"stillUrl": "https://example.com/…",
"title": "Fargo",
"track": 0
},
"positionMs": 1800000,
"revision": "r12",
"sessionId": "id_8h2k4q",
"state": "string"
}
],
"nextCursor": "eyJvIjoyMH0",
"streamLimit": {
"limit": 0,
"playing": 0,
"scope": "string"
}
}itemsarray of objectrequired
- actionsarray of stringrequired
deviceobjectrequired
- idstringrequired
- namestringrequired
- durationMsinteger
- generationintegerrequired
itemobject
- idstringrequired
- titlestringrequired
- kindstringrequired
nextobject
- albumstring
- albumIdstring
- artiststring
- artistIdstring
- availablebooleanrequired
- backdropUrlstring
- discinteger
- durationMsinteger
- entryIdstringrequired
episodeobject
- numberintegerrequired
- seasonNumberintegerrequired
- itemIdstringrequired
- kindstringrequired
- libraryIdstring
- positionintegerrequired
- posterUrlstring
- seasonIdstring
- segmentIdstringrequired
- showIdstring
- stillUrlstring
- titlestringrequired
- trackinteger
- positionMsintegerrequired
- revisionstringrequired
- sessionIdstringrequired
- statestringrequired
- nextCursorstringrequired
streamLimitobject
- limitintegerrequired
- playingintegerrequired
- scopestringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/playback/controls" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/playback/controls/{id}:stopStop playback belonging to this account without disclosing a hidden titleplayback
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
stop_account_playback- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json
{
"generation": 1
}- generationinteger1–2147483647
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/playback/controls/{id}:stop" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"generation":1}'GET/v1/playback/delivery-policyRead playback delivery policyread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_playback_delivery_policy
Responses
200Successapplication/json
{
"ladder": [
{
"dataGBPerHour": 0,
"id": "id_8h2k4q",
"label": "string",
"maxAudioBitrateBps": 0,
"maxVideoBitrateBps": 0,
"targetDisplayHeight": 0
}
],
"planningPolicies": [
"string"
],
"policy": {
"allowHDR": true,
"clamps": [
{
"applied": 0,
"field": "string",
"requested": 0,
"source": "string"
}
],
"directPlay": "string",
"directStream": "string",
"maxAudioBitrateBps": 0,
"maxVideoBitrateBps": 0,
"maxVideoHeight": 0,
"networkClass": "string",
"planningPolicy": "string",
"preferenceLane": "string",
"qualityMode": "string",
"serverLocality": "string",
"transcode": "string",
"transportClass": "string"
},
"savedQualities": [
"string"
],
"serverId": "id_8h2k4q",
"transportClasses": [
"string"
]
}ladderarray of objectrequired
- dataGBPerHournumberrequired
- idstringrequired
- labelstringrequired
- maxAudioBitrateBpsintegerrequired
- maxVideoBitrateBpsintegerrequired
- targetDisplayHeightintegerrequired
- planningPoliciesarray of stringrequired
policyobjectrequired
- allowHDRbooleanrequired
clampsarray of objectrequired
- appliedintegerrequired
- fieldstringrequired
- requestedintegerrequired
- sourcestringrequired
- directPlaystringrequired
- directStreamstringrequired
- maxAudioBitrateBpsintegerrequired
- maxVideoBitrateBpsintegerrequired
- maxVideoHeightintegerrequired
- networkClassstringrequired
- planningPolicystringrequired
- preferenceLanestringrequired
- qualityModestringrequired
- serverLocalitystringrequired
- transcodestringrequired
- transportClassstringrequired
- savedQualitiesarray of stringrequired
- serverIdstringrequired
- transportClassesarray of stringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/playback/delivery-policy" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/playback/sessionsStart playback (201), or report that it is being prepared (202)playback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
start_playback_session- Max body
- 8 KiB
Request body application/json · required
{
"audio": {
"channels": 0,
"trackId": "id_8h2k4q"
},
"castTransferId": "id_8h2k4q",
"channelGeneration": "string",
"channelId": "id_8h2k4q",
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"itemId": "id_8h2k4q",
"network": "string",
"partIndex": 0,
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"replacesSessionId": "id_8h2k4q",
"startFrom": "string",
"startPositionMs": 1800000,
"state": "string",
"subtitles": {
"delivery": "string",
"trackId": "id_8h2k4q"
},
"throughputKbps": 0,
"transferId": "id_8h2k4q",
"versionId": "id_8h2k4q"
}audioobject
- channelsinteger
- trackIdstringrequired
- castTransferIdstring
- channelGenerationstring
- channelIdstring
discTitleobject
- idstringrequired
- revisionstringrequired
- itemIdstring
- networkstring
- partIndexinteger
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
queueobject
- entryIdstringrequired
- queueIdstringrequired
- replacesSessionIdstring
- startFromstring
- startPositionMsinteger
- statestring
subtitlesobject
- deliverystring
- trackIdstringrequired
- throughputKbpsinteger
- transferIdstring
- versionIdstring
Responses
201Successapplication/json
{
"channelId": "id_8h2k4q",
"control": {
"revision": "r12",
"state": "string"
},
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"end": {
"message": "string",
"reason": "string"
},
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"kind": "vod",
"lease": {
"expiresAt": "2026-10-18T19:30:00Z",
"reportEveryMs": 1800000
},
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"playbackInfo": {
"basis": "committed_delivery_plan",
"delivered": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
},
"estimatedBitrateKbps": 0,
"losses": [
{
"feature": "string",
"replacement": {
"audioCodec": "string",
"channels": 0,
"dynamicRange": "string",
"layout": "string"
}
}
],
"network": "string",
"reason": {
"audioCodec": "string",
"container": "string",
"kind": "string",
"maxBitrateKbps": 0,
"maxHeight": 0,
"videoCodec": "string"
},
"route": "string",
"routes": {
"picture": "string",
"sound": "string",
"subtitles": "Fargo"
},
"source": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
}
},
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [
0
],
"intervalMs": 1800000,
"startLufs": [
0
]
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"subtitles": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"video": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
}
},
"engine": "native",
"generation": 0,
"linear": {
"clocks": [
{
"endMs": 1800000,
"offsetMs": 1800000,
"startMs": 1800000
}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "direct",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "original",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "source-relative",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"retryAfterMs": 1800000,
"revision": "r12",
"role": "local",
"state": "playing",
"variant": "session",
"versionId": "id_8h2k4q"
}- channelIdstring
controlobject
- revisionstringrequired
- statestringrequired
discTitleobject
- idstringrequired
- revisionstringrequired
endobject
- messagestring
- reasonstringrequired
- idstringrequiredlength 1–∞
- itemIdstring
- kindstringrequiredone of "vod", "audio", "live", "channel"
leaseobjectrequired
- expiresAtstringrequiredpattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]{1,9})?Z$
- reportEveryMsintegerrequired≥ 1
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
playbackInfoobject
- basisstringrequiredone of "committed_delivery_plan"
deliveredobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
- estimatedBitrateKbpsinteger
lossesarray of objectrequired
- featurestringrequired
replacementobjectrequired
- audioCodecstring
- channelsinteger
- dynamicRangestring
- layoutstring
- networkstringrequired
reasonobjectrequired
- audioCodecstring
- containerstring
- kindstringrequired
- maxBitrateKbpsinteger
- maxHeightinteger
- videoCodecstring
- routestringrequired
routesobjectrequired
- picturestring
- soundstring
- subtitlesstring
sourceobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequiredone of "native", "mpv", ""
- generationintegerrequired≥ 0
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequiredone of "direct", "stream"
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequiredone of "original", "automatic", "fixed", "limit", "cd-quality"
- stepstring
- seekIdstring
- startPositionMsintegerrequired≥ 0
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequiredone of "source-relative"
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
queueobject
- entryIdstringrequired
- queueIdstringrequired
- retryAfterMsinteger1–10000
- revisionstringrequiredlength 1–∞
- rolestringrequiredone of "local"
- statestringrequiredone of "playing", "paused", "ended"
- variant"session"required
- versionIdstring
202Successapplication/json
{
"channelId": "id_8h2k4q",
"control": {
"revision": "r12",
"state": "string"
},
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"end": {
"message": "string",
"reason": "string"
},
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"kind": "vod",
"lease": {
"expiresAt": "2026-10-18T19:30:00Z",
"reportEveryMs": 1800000
},
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"playbackInfo": {
"basis": "committed_delivery_plan",
"delivered": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
},
"estimatedBitrateKbps": 0,
"losses": [
{
"feature": "string",
"replacement": {
"audioCodec": "string",
"channels": 0,
"dynamicRange": "string",
"layout": "string"
}
}
],
"network": "string",
"reason": {
"audioCodec": "string",
"container": "string",
"kind": "string",
"maxBitrateKbps": 0,
"maxHeight": 0,
"videoCodec": "string"
},
"route": "string",
"routes": {
"picture": "string",
"sound": "string",
"subtitles": "Fargo"
},
"source": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
}
},
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [
0
],
"intervalMs": 1800000,
"startLufs": [
0
]
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"subtitles": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"video": {
"action": "direct",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
}
},
"engine": "native",
"generation": 0,
"linear": {
"clocks": [
{
"endMs": 1800000,
"offsetMs": 1800000,
"startMs": 1800000
}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "direct",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "original",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "source-relative",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"retryAfterMs": 1800000,
"revision": "r12",
"role": "local",
"state": "playing",
"variant": "session",
"versionId": "id_8h2k4q"
}- channelIdstring
controlobject
- revisionstringrequired
- statestringrequired
discTitleobject
- idstringrequired
- revisionstringrequired
endobject
- messagestring
- reasonstringrequired
- idstringrequiredlength 1–∞
- itemIdstring
- kindstringrequiredone of "vod", "audio"
leaseobjectrequired
- expiresAtstringrequiredpattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]{1,9})?Z$
- reportEveryMsintegerrequired≥ 1
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
playbackInfoobject
- basisstringrequiredone of "committed_delivery_plan"
deliveredobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
- estimatedBitrateKbpsinteger
lossesarray of objectrequired
- featurestringrequired
replacementobjectrequired
- audioCodecstring
- channelsinteger
- dynamicRangestring
- layoutstring
- networkstringrequired
reasonobjectrequired
- audioCodecstring
- containerstring
- kindstringrequired
- maxBitrateKbpsinteger
- maxHeightinteger
- videoCodecstring
- routestringrequired
routesobjectrequired
- picturestring
- soundstring
- subtitlesstring
sourceobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequiredone of "direct", "copy", "transcode", "burn"
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequiredone of "native", "mpv", ""
- generationintegerrequired≥ 0
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequiredone of "direct", "stream"
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequiredone of "original", "automatic", "fixed", "limit", "cd-quality"
- stepstring
- seekIdstring
- startPositionMsintegerrequired≥ 0
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequiredone of "source-relative"
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
queueobject
- entryIdstringrequired
- queueIdstringrequired
- retryAfterMsintegerrequired1–10000
- revisionstringrequiredlength 1–∞
- rolestringrequiredone of "local"
- statestringrequiredone of "playing", "paused"
- variant"session"required
- versionIdstring
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_foundidempotency_key_requiredidempotency_key_reusedstream_limit_reachedconversion_capacitytranscode_not_allowedsource_unavailablestorage_offlineunsupported_mediaconnection_too_slowfeature_restrictedno_tuner_availablequeue_buildingtimeoutdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/playback/sessions" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio": {
"channels": 0,
"trackId": "id_8h2k4q"
},
"castTransferId": "id_8h2k4q",
"channelGeneration": "string",
"channelId": "id_8h2k4q",
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"itemId": "id_8h2k4q",
"network": "string",
"partIndex": 0,
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"replacesSessionId": "id_8h2k4q",
"startFrom": "string",
"startPositionMs": 1800000,
"state": "string",
"subtitles": {
"delivery": "string",
"trackId": "id_8h2k4q"
},
"throughputKbps": 0,
"transferId": "id_8h2k4q",
"versionId": "id_8h2k4q"
}'DELETE/v1/playback/sessions/{id}Stop playback; idempotentplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
stop_playback_session- Max body
- 1 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json
{
"generation": 1,
"positionMs": 1800000
}- generationinteger1–2147483647
- positionMsinteger | any | null
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_foundrevision_mismatchtimeoutidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/playback/sessions/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"generation":1,"positionMs":1800000}'GET/v1/playback/sessions/{id}Read a playback sessionread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_playback_session
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"channelId": "id_8h2k4q",
"control": {
"revision": "r12",
"state": "string"
},
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"end": {
"message": "string",
"reason": "string"
},
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"kind": "string",
"lease": {
"expiresAt": "2026-10-18T19:30:00Z",
"reportEveryMs": 1800000
},
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"playbackInfo": {
"basis": "committed_delivery_plan",
"delivered": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
},
"estimatedBitrateKbps": 0,
"losses": [
{
"feature": "string",
"replacement": {
"audioCodec": "string",
"channels": 0,
"dynamicRange": "string",
"layout": "string"
}
}
],
"network": "string",
"reason": {
"audioCodec": "string",
"container": "string",
"kind": "string",
"maxBitrateKbps": 0,
"maxHeight": 0,
"videoCodec": "string"
},
"route": "string",
"routes": {
"picture": "string",
"sound": "string",
"subtitles": "Fargo"
},
"source": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
}
},
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [
0
],
"intervalMs": 1800000,
"startLufs": [
0
]
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"subtitles": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"video": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
}
},
"engine": "string",
"generation": 0,
"linear": {
"clocks": [
{
"endMs": 1800000,
"offsetMs": 1800000,
"startMs": 1800000
}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "string",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "2026-10-18T19:30:00Z",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"retryAfterMs": 1800000,
"revision": "r12",
"role": "string",
"state": "string",
"versionId": "id_8h2k4q"
}- channelIdstring
controlobject
- revisionstringrequired
- statestringrequired
discTitleobject
- idstringrequired
- revisionstringrequired
endobject
- messagestring
- reasonstringrequired
- idstringrequired
- itemIdstring
- kindstringrequired
leaseobjectrequired
- expiresAtstringrequired
- reportEveryMsintegerrequired
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
playbackInfoobject
- basisstringrequiredone of "committed_delivery_plan"
deliveredobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
- estimatedBitrateKbpsinteger
lossesarray of objectrequired
- featurestringrequired
replacementobjectrequired
- audioCodecstring
- channelsinteger
- dynamicRangestring
- layoutstring
- networkstringrequired
reasonobjectrequired
- audioCodecstring
- containerstring
- kindstringrequired
- maxBitrateKbpsinteger
- maxHeightinteger
- videoCodecstring
- routestringrequired
routesobjectrequired
- picturestring
- soundstring
- subtitlesstring
sourceobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequired
- generationintegerrequired
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequired
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
- seekIdstring
- startPositionMsintegerrequired
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequired
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
queueobject
- entryIdstringrequired
- queueIdstringrequired
- retryAfterMsinteger
- revisionstringrequired
- rolestringrequired
- statestringrequired
- versionIdstring
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_foundtimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/playback/sessions/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY"PATCH/v1/playback/sessions/{id}Change tracks, quality, version or state, or report that the player failed; a change to the bytes re-plans the same session as a new generation and keeps its queueplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
change_playback_session- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"audio": {
"channels": 0,
"trackId": "id_8h2k4q"
},
"failure": {
"code": "string",
"detail": "string"
},
"partIndex": 0,
"positionMs": 1800000,
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"replan": true,
"seek": {
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"subtitleOffsetMs": 1800000,
"subtitleOffsetUs": "Fargo",
"subtitles": {
"delivery": "string",
"trackId": "id_8h2k4q"
},
"throughputKbps": 0,
"versionId": "id_8h2k4q"
}audioobject
- channelsinteger
- trackIdstringrequired
failureobject
- codestringrequired
- detailstring
- partIndexinteger
- positionMsinteger
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
- replanboolean
seekobject
- idstringrequired
- liveboolean
- positionMsintegerrequired
- statestring
- subtitleOffsetMsinteger
- subtitleOffsetUsstring
subtitlesobject
- deliverystring
- trackIdstringrequired
- throughputKbpsinteger
- versionIdstring
Responses
200Successapplication/json
{
"channelId": "id_8h2k4q",
"control": {
"revision": "r12",
"state": "string"
},
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"end": {
"message": "string",
"reason": "string"
},
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"kind": "string",
"lease": {
"expiresAt": "2026-10-18T19:30:00Z",
"reportEveryMs": 1800000
},
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"playbackInfo": {
"basis": "committed_delivery_plan",
"delivered": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
},
"estimatedBitrateKbps": 0,
"losses": [
{
"feature": "string",
"replacement": {
"audioCodec": "string",
"channels": 0,
"dynamicRange": "string",
"layout": "string"
}
}
],
"network": "string",
"reason": {
"audioCodec": "string",
"container": "string",
"kind": "string",
"maxBitrateKbps": 0,
"maxHeight": 0,
"videoCodec": "string"
},
"route": "string",
"routes": {
"picture": "string",
"sound": "string",
"subtitles": "Fargo"
},
"source": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {
"enhancementDiscarded": true,
"felResidualDiscarded": true,
"kind": "string",
"sourceDolbyVisionProfile": 0,
"sourceEnhancementType": "string"
},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
}
},
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [
0
],
"intervalMs": 1800000,
"startLufs": [
0
]
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"subtitles": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"video": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
}
},
"engine": "string",
"generation": 0,
"linear": {
"clocks": [
{
"endMs": 1800000,
"offsetMs": 1800000,
"startMs": 1800000
}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "string",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "2026-10-18T19:30:00Z",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"retryAfterMs": 1800000,
"revision": "r12",
"role": "string",
"state": "string",
"versionId": "id_8h2k4q"
}- channelIdstring
controlobject
- revisionstringrequired
- statestringrequired
discTitleobject
- idstringrequired
- revisionstringrequired
endobject
- messagestring
- reasonstringrequired
- idstringrequired
- itemIdstring
- kindstringrequired
leaseobjectrequired
- expiresAtstringrequired
- reportEveryMsintegerrequired
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
playbackInfoobject
- basisstringrequiredone of "committed_delivery_plan"
deliveredobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
- estimatedBitrateKbpsinteger
lossesarray of objectrequired
- featurestringrequired
replacementobjectrequired
- audioCodecstring
- channelsinteger
- dynamicRangestring
- layoutstring
- networkstringrequired
reasonobjectrequired
- audioCodecstring
- containerstring
- kindstringrequired
- maxBitrateKbpsinteger
- maxHeightinteger
- videoCodecstring
- routestringrequired
routesobjectrequired
- picturestring
- soundstring
- subtitlesstring
sourceobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequired
- generationintegerrequired
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequired
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
- seekIdstring
- startPositionMsintegerrequired
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequired
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
queueobject
- entryIdstringrequired
- queueIdstringrequired
- retryAfterMsinteger
- revisionstringrequired
- rolestringrequired
- statestringrequired
- versionIdstring
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_foundsession_endedrevision_requiredrevision_mismatchstream_limit_reachedconversion_capacitytranscode_not_allowedunsupported_mediaconnection_too_slowtimeoutdatabase_busywriter_capacity
Example request
curl -X PATCH "http://127.0.0.1:32500/v1/playback/sessions/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio": {
"channels": 0,
"trackId": "id_8h2k4q"
},
"failure": {
"code": "string",
"detail": "string"
},
"partIndex": 0,
"positionMs": 1800000,
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"replan": true,
"seek": {
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"subtitleOffsetMs": 1800000,
"subtitleOffsetUs": "Fargo",
"subtitles": {
"delivery": "string",
"trackId": "id_8h2k4q"
},
"throughputKbps": 0,
"versionId": "id_8h2k4q"
}'GET/v1/playback/sessions/{id}/chaptersRead playback sessions chaptersread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_playback_sessions_id_chapters
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer1–100 | |
revision | query | string |
Responses
200Successapplication/json
{
"chapters": [
{
"action": {
"id": "id_8h2k4q",
"positionMs": 1800000
},
"endMs": 1800000,
"id": "id_8h2k4q",
"index": 0,
"startMs": 1800000,
"thumbnailUrl": "https://example.com/…",
"title": "Fargo"
}
],
"durationMs": 1800000,
"nextCursor": "eyJvIjoyMH0",
"reason": "string",
"revision": "r12",
"scope": {
"generation": 0,
"itemId": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"serverId": "id_8h2k4q",
"sessionId": "id_8h2k4q",
"sourceId": "id_8h2k4q",
"viewerFence": "string"
},
"status": "string",
"totalCount": 0
}chaptersarray of objectrequired
actionobjectrequired
- idstringrequired
- positionMsintegerrequired≥ 0
- endMsintegerrequired≥ 0
- idstringrequired
- indexintegerrequired
- startMsintegerrequired≥ 0
- thumbnailUrlstring
- titlestringrequired
- durationMsintegerrequired≥ 0
- nextCursorstringrequired
- reasonstring | any | nullrequired
- revisionstringrequired
scopeobjectrequired
- generationintegerrequired
- itemIdstringrequired
- libraryIdstringrequired
- serverIdstringrequired
- sessionIdstringrequired
- sourceIdstringrequired
- viewerFencestringrequired
- statusstringrequired
- totalCountintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/playback/sessions/{id}/chapters" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/playback/sessions/{id}/observationReport the player's latest state about once a second; the latest wins and a missed one is replaced by the nextplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
put_playback_observation- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"audioTrackId": "id_8h2k4q",
"bandwidthKbps": 0,
"bufferedMs": 1800000,
"droppedFrames": 0,
"epoch": "string",
"error": {
"code": "string",
"detail": "string"
},
"generation": 0,
"monotonicMs": 1800000,
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"partIndex": 0,
"playClockMs": 1800000,
"positionMs": 1800000,
"rate": 0,
"seekSerial": 0,
"seq": 0,
"skipped": {
"markerId": "id_8h2k4q",
"mode": "string",
"positionMs": 1800000
},
"state": "string",
"subtitleTrackId": "id_8h2k4q",
"viewTag": "string"
}- audioTrackIdstring
- bandwidthKbpsinteger
- bufferedMsinteger
- droppedFramesinteger
- epochstringrequired
errorobject
- codestringrequired
- detailstring
- generationintegerrequired
- monotonicMsintegerrequired
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
- partIndexinteger
- playClockMsintegerrequired
- positionMsintegerrequired
- ratenumberrequired
- seekSerialintegerrequired
- seqintegerrequired
skippedobject
- markerIdstringrequired
- modestringrequired
- positionMsintegerrequired
- statestringrequired
- subtitleTrackIdstring
- viewTagstring
Responses
200Successapplication/json
{
"acceptedSeq": 0,
"leaseUntil": "2026-10-18T19:30:00Z",
"session": {
"channelId": "id_8h2k4q",
"control": {
"revision": "r12",
"state": "string"
},
"discTitle": {
"id": "id_8h2k4q",
"revision": "r12"
},
"end": {
"message": "string",
"reason": "string"
},
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"kind": "string",
"lease": {
"expiresAt": "2026-10-18T19:30:00Z",
"reportEveryMs": 1800000
},
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"playbackInfo": {
"basis": "committed_delivery_plan",
"delivered": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
},
"estimatedBitrateKbps": 0,
"losses": [
{
"feature": "string",
"replacement": {}
}
],
"network": "string",
"reason": {
"audioCodec": "string",
"container": "string",
"kind": "string",
"maxBitrateKbps": 0,
"maxHeight": 0,
"videoCodec": "string"
},
"route": "string",
"routes": {
"picture": "string",
"sound": "string",
"subtitles": "Fargo"
},
"source": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"delivery": "string",
"layout": "string",
"lossless": true,
"objectAudio": "string",
"profile": "string",
"sampleRate": 0,
"variant": "string"
},
"subtitles": {
"format": "2026-10-18T19:30:00Z",
"language": "en",
"origin": "string",
"rendering": "string",
"title": "Fargo"
},
"video": {
"bitDepth": 0,
"chromaSubsampling": "string",
"codec": "string",
"container": "string",
"conversion": {},
"dolbyVisionBaseLayer": true,
"dolbyVisionCmVersion": "string",
"dolbyVisionCompatibility": 0,
"dolbyVisionEnhancementType": "string",
"dolbyVisionProfile": 0,
"dolbyVisionRpu": true,
"dynamicRange": "string",
"frameRate": 0,
"frameRateDenominator": 0,
"frameRateMode": "string",
"frameRateNumerator": 0,
"hdr10Plus": true,
"height": 0,
"interlaced": true,
"masterDisplay": "string",
"maxCll": "string",
"profile": "string",
"width": 0
}
}
},
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [],
"intervalMs": 1800000,
"startLufs": []
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "string",
"channels": 0,
"reasons": [],
"to": "string"
},
"subtitles": {
"action": "string",
"channels": 0,
"reasons": [],
"to": "string"
},
"video": {
"action": "string",
"channels": 0,
"reasons": [],
"to": "string"
}
},
"engine": "string",
"generation": 0,
"linear": {
"clocks": [
{}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "string",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "2026-10-18T19:30:00Z",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"queue": {
"entryId": "id_8h2k4q",
"queueId": "id_8h2k4q"
},
"retryAfterMs": 1800000,
"revision": "r12",
"role": "string",
"state": "string",
"versionId": "id_8h2k4q"
},
"viewTag": "string"
}- acceptedSeqintegerrequired
- leaseUntilstring (date-time)required
sessionobject
- channelIdstring
controlobject
- revisionstringrequired
- statestringrequired
discTitleobject
- idstringrequired
- revisionstringrequired
endobject
- messagestring
- reasonstringrequired
- idstringrequired
- itemIdstring
- kindstringrequired
leaseobjectrequired
- expiresAtstringrequired
- reportEveryMsintegerrequired
observedPlaybackobject
audioobject
- bitDepthinteger
- channelsinteger
- codecstring
- handlingstring
- layoutstring
- objectAudiostring
- sampleRateinteger
- deliveredBitrateKbpsinteger
screenobject
- dynamicRangestring
- refreshRateHznumber
subtitlesobject
- renderingstringrequired
videoobject
- bitDepthinteger
- dynamicRangestring
- frameRateHznumber
- heightinteger
- widthinteger
playbackInfoobject
- basisstringrequiredone of "committed_delivery_plan"
deliveredobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
- estimatedBitrateKbpsinteger
lossesarray of objectrequired
- featurestringrequired
replacementobjectrequired
- audioCodecstring
- channelsinteger
- dynamicRangestring
- layoutstring
- networkstringrequired
reasonobjectrequired
- audioCodecstring
- containerstring
- kindstringrequired
- maxBitrateKbpsinteger
- maxHeightinteger
- videoCodecstring
- routestringrequired
routesobjectrequired
- picturestring
- soundstring
- subtitlesstring
sourceobjectrequired
audioobject
- bitDepthinteger
- channelsinteger
- codecstringrequired
- deliverystring
- layoutstring
- losslessboolean
- objectAudiostring
- profilestring
- sampleRateinteger
- variantstring
subtitlesobject
- formatstring
- languagestring
- originstring
- renderingstring
- titlestring
videoobject
- bitDepthinteger
- chromaSubsamplingstring
- codecstringrequired
- containerstring
conversionobject
- enhancementDiscardedbooleanrequired
- felResidualDiscardedbooleanrequired
- kindstringrequired
- sourceDolbyVisionProfileintegerrequired
- sourceEnhancementTypestring
- dolbyVisionBaseLayerboolean
- dolbyVisionCmVersionstring
- dolbyVisionCompatibilityinteger
- dolbyVisionEnhancementTypestring
- dolbyVisionProfileinteger
- dolbyVisionRpuboolean
- dynamicRangestring
- frameRatenumber
- frameRateDenominatorinteger
- frameRateModestring
- frameRateNumeratorinteger
- hdr10Plusboolean
- heightinteger
- interlacedboolean
- masterDisplaystring
- maxCllstring
- profilestring
- widthinteger
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequired
- generationintegerrequired
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequired
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
- seekIdstring
- startPositionMsintegerrequired
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequired
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
queueobject
- entryIdstringrequired
- queueIdstringrequired
- retryAfterMsinteger
- revisionstringrequired
- rolestringrequired
- statestringrequired
- versionIdstring
- viewTagstring
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_foundsession_endedrevision_requiredrevision_mismatchobservation_epoch_changedrate_limitedtimeoutdatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/playback/sessions/{id}/observation" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audioTrackId": "id_8h2k4q",
"bandwidthKbps": 0,
"bufferedMs": 1800000,
"droppedFrames": 0,
"epoch": "string",
"error": {
"code": "string",
"detail": "string"
},
"generation": 0,
"monotonicMs": 1800000,
"observedPlayback": {
"audio": {
"bitDepth": 0,
"channels": 0,
"codec": "string",
"handling": "string",
"layout": "string",
"objectAudio": "string",
"sampleRate": 0
},
"deliveredBitrateKbps": 0,
"screen": {
"dynamicRange": "string",
"refreshRateHz": 0
},
"subtitles": {
"rendering": "string"
},
"video": {
"bitDepth": 0,
"dynamicRange": "string",
"frameRateHz": 0,
"height": 0,
"width": 0
}
},
"partIndex": 0,
"playClockMs": 1800000,
"positionMs": 1800000,
"rate": 0,
"seekSerial": 0,
"seq": 0,
"skipped": {
"markerId": "id_8h2k4q",
"mode": "string",
"positionMs": 1800000
},
"state": "string",
"subtitleTrackId": "id_8h2k4q",
"viewTag": "string"
}'POST/v1/playback/sessions/{id}/observerBecome the player that reports this session; returns the epoch its observations carryplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
claim_playback_observer- Max body
- 1 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"generation": 0,
"replaces": "string"
}- generationintegerrequired
- replacesstring
Responses
200Successapplication/json
{
"epoch": "string",
"everyMs": 1800000,
"leaseUntil": "2026-10-18T19:30:00Z"
}- epochstringrequired
- everyMsintegerrequired
- leaseUntilstring (date-time)required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_foundsession_endedrevision_requiredrevision_mismatchobservation_ownedobservation_capacitytimeoutdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/playback/sessions/{id}/observer" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"generation":0,"replaces":"string"}'POST/v1/playback/sessions/{id}/receivers/airplayPrepare the current choices as native HLS before wireless handoffplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
prepare_airplay_receiver- Max body
- 1 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"choiceRevision": 0,
"generation": 0,
"positionMs": 1800000
}- choiceRevisionintegerrequired
- generationintegerrequired
- positionMsintegerrequired
Responses
200Successapplication/json
{
"choiceRevision": 0,
"generation": 0,
"presentation": {
"audioRender": {
"bitDepth": 0,
"bytes": 0,
"channels": 0,
"codec": "string",
"container": "string",
"conversionGainDb": 0,
"decoderConfig": "string",
"downmixed": true,
"durationFrames": 0,
"gain": {
"albumDb": 0,
"albumPeak": 0,
"source": "string",
"trackDb": 0,
"trackPeak": 0
},
"id": "id_8h2k4q",
"loudnessAppliedDb": 0,
"loudnessEnvelope": {
"endLufs": [
0
],
"intervalMs": 1800000,
"startLufs": [
0
]
},
"mode": "string",
"prefetchBytes": 0,
"reason": "string",
"sampleRate": 0,
"seekIndex": {
"url": "https://example.com/…"
},
"sourceBitrateBps": 0,
"trim": {
"endFrames": 0,
"source": "string",
"startFrames": 0
},
"url": "https://example.com/…",
"version": 0
},
"audioTrackId": "id_8h2k4q",
"bitrateKbps": 0,
"choiceRevision": 0,
"container": "string",
"decision": {
"audio": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"subtitles": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
},
"video": {
"action": "string",
"channels": 0,
"reasons": [
"string"
],
"to": "string"
}
},
"engine": "string",
"generation": 0,
"linear": {
"clocks": [
{
"endMs": 1800000,
"offsetMs": 1800000,
"startMs": 1800000
}
],
"confirmedPositionMs": 1800000,
"errorCode": "string",
"liveEdgeMs": 1800000,
"name": "Fargo",
"next": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"nowMs": 1800000,
"originMs": 1800000,
"programme": {
"endMs": 1800000,
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"startMs": 1800000,
"title": "Fargo"
},
"reservationRequiredAtMs": 1800000,
"seek": {
"acknowledged": true,
"error": "string",
"id": "id_8h2k4q",
"live": true,
"positionMs": 1800000
},
"state": "string",
"windowEndMs": 1800000,
"windowStartMs": 1800000
},
"mode": "string",
"quality": {
"id": "id_8h2k4q",
"maxAudioBitrateKbps": 0,
"maxHeight": 0,
"maxVideoBitrateKbps": 0,
"mode": "string",
"step": "string"
},
"seekId": "id_8h2k4q",
"startPositionMs": 1800000,
"subtitle": {
"delivery": "string",
"kind": "string",
"trackId": "id_8h2k4q"
},
"subtitles": [
{
"companionUrl": "https://example.com/…",
"fontsUrl": "https://example.com/…",
"format": "2026-10-18T19:30:00Z",
"linesUrl": "https://example.com/…",
"offsetMs": 1800000,
"timeDomain": "2026-10-18T19:30:00Z",
"trackId": "id_8h2k4q",
"url": "https://example.com/…"
}
],
"url": "https://example.com/…",
"videoHeight": 0
},
"sessionId": "id_8h2k4q"
}- choiceRevisionintegerrequired
- generationintegerrequired
presentationobjectrequired
audioRenderobject
- bitDepthinteger
- bytesinteger
- channelsinteger
- codecstring
- containerstring
- conversionGainDbnumber
- decoderConfigstring
- downmixedboolean
- durationFramesinteger
gainobject
- albumDbnumber
- albumPeaknumber
- sourcestringrequired
- trackDbnumber
- trackPeaknumber
- idstringrequired
- loudnessAppliedDbnumber
loudnessEnvelopeobject
- endLufsarray of numberrequired
- intervalMsintegerrequired
- startLufsarray of numberrequired
- modestringrequired
- prefetchBytesinteger
- reasonstring
- sampleRateinteger
seekIndexobject
- urlstringrequired
- sourceBitrateBpsinteger
trimobject
- endFramesintegerrequired
- sourcestringrequired
- startFramesintegerrequired
- urlstring
- versionintegerrequired
- audioTrackIdstring
- bitrateKbpsinteger
- choiceRevisioninteger
- containerstring
decisionobjectrequired
audioobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
subtitlesobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
videoobject
- actionstringrequired
- channelsinteger
- reasonsarray of stringrequired
- tostring
- enginestringrequired
- generationintegerrequired
linearobject
clocksarray of object
- endMsintegerrequired
- offsetMsintegerrequired
- startMsintegerrequired
- confirmedPositionMsinteger
- errorCodestring
- liveEdgeMsintegerrequired
- namestringrequired
nextobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- nowMsinteger
- originMsintegerrequired
programmeobject
- endMsintegerrequired
- idstringrequired
- itemIdstring
- startMsintegerrequired
- titlestringrequired
- reservationRequiredAtMsinteger
seekobject
- acknowledgedbooleanrequired
- errorstring
- idstringrequired
- liveboolean
- positionMsinteger
- statestringrequired
- windowEndMsintegerrequired
- windowStartMsintegerrequired
- modestringrequired
qualityobject
- idstring
- maxAudioBitrateKbpsinteger
- maxHeightinteger
- maxVideoBitrateKbpsinteger
- modestringrequired
- stepstring
- seekIdstring
- startPositionMsintegerrequired
subtitleobject
- deliverystringrequired
- kindstringrequired
- trackIdstringrequired
subtitlesarray of objectrequired
- companionUrlstring
- fontsUrlstring
- formatstringrequired
- linesUrlstring
- offsetMsintegerrequired
- timeDomainstringrequired
- trackIdstringrequired
- urlstringrequired
- urlstringrequired
- videoHeightinteger
- sessionIdstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundsession_endedrevision_mismatchconversion_capacitytranscode_not_allowedunsupported_mediatimeoutdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/playback/sessions/{id}/receivers/airplay" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"choiceRevision":0,"generation":0,"positionMs":1800000}'No operations match that filter.