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

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""0–100

Responses

200Successapplication/json

Example
{
  "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"
  }
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json

Example
{
  "generation": 1
}
Schema
  • generationinteger1–2147483647

Responses

204Success

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

Example
{
  "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"
  ]
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

Example
{
  "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"
}
Schema
  • 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

Example
{
  "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"
}
Schema
  • 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

Example
{
  "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"
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json

Example
{
  "generation": 1,
  "positionMs": 1800000
}
Schema
  • generationinteger1–2147483647
  • positionMsinteger | any | null

Responses

204Success

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "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"
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "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"
}
Schema
  • 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

Example
{
  "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"
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger1–100
revisionquerystring

Responses

200Successapplication/json

Example
{
  "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
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "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"
}
Schema
  • 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

Example
{
  "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"
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "generation": 0,
  "replaces": "string"
}
Schema
  • generationintegerrequired
  • replacesstring

Responses

200Successapplication/json

Example
{
  "epoch": "string",
  "everyMs": 1800000,
  "leaseUntil": "2026-10-18T19:30:00Z"
}
Schema
  • epochstringrequired
  • everyMsintegerrequired
  • leaseUntilstring (date-time)required

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "choiceRevision": 0,
  "generation": 0,
  "positionMs": 1800000
}
Schema
  • choiceRevisionintegerrequired
  • generationintegerrequired
  • positionMsintegerrequired

Responses

200Successapplication/json

Example
{
  "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"
}
Schema
  • 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

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • 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}'