Docs

Playback payload for an embed

Returns JSON playback metadata for native/mobile SDKs (bundle rules, subscription, CDN: aligned with iframe embed business rules where applicable). Authentication: a valid publishable API key (mvi_pub_*) is required via Authorization: Bearer … or x-api-key. Anonymous access is not supported. Private keys (mvi_priv_*, legacy mvi_*, or any non-publishable key) are rejected with HTTP 403, even with playback:read. Send x-moviie-client (bundle_id=...;platform=...;sdk=...) from native clients when using bundle allow lists.

GET
/v1/embeds/{embedId}/playback

Authorization

BearerAuth
AuthorizationBearer <token>

Pass the raw API key as a Bearer token (Authorization: Bearer <key>). Publishable keys start with mvi_pub_ (playback-scoped). Other prefixes denote private/admin keys for general REST routes. GET /v1/embeds/{embedId}/playback accepts publishable keys only.

In: header

Path Parameters

embedId*string

Embed UUID.

Formatuuid

Header Parameters

x-moviie-client?string

Client fingerprint, e.g. bundle_id=com.app;platform=ios;sdk=1.0.0.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.moviie.ai/v1/embeds/497f6eca-6276-4993-bfeb-53cbbbba6f08/playback"
{
  "embedId": "8971aebf-fca4-4062-b2a4-87771d70de31",
  "title": "string",
  "smartProgressEnabled": true,
  "durationSeconds": 0,
  "isVertical": true,
  "videoWidthPx": 1,
  "videoHeightPx": 1,
  "variants": [
    {
      "id": "string",
      "kind": "string",
      "label": "string",
      "durationSeconds": 0,
      "uri": "string",
      "contentType": "hls"
    }
  ],
  "playback": {
    "uri": "http://example.com",
    "contentType": "hls",
    "expiresAt": "string",
    "refreshAfter": "string",
    "requestHeaders": {
      "property1": "string",
      "property2": "string"
    }
  },
  "posterUrl": "string",
  "branding": {
    "primaryColor": "string",
    "showWatermark": true,
    "organizationName": "string"
  },
  "controls": {
    "autoplay": true,
    "preload": true,
    "muted": true,
    "loop": true,
    "showSpeed": true,
    "rememberPosition": true,
    "chromecast": true,
    "disableAirplay": true,
    "showProgress": true,
    "showPlay": true,
    "showPlayLarge": true,
    "showCaptions": true,
    "showSettings": true,
    "showPip": true,
    "showFullscreen": true,
    "showCurrentTime": true,
    "showDuration": true,
    "showMute": true,
    "showVolume": true,
    "seekBackwardEnabled": true,
    "seekForwardEnabled": true,
    "showChapters": true,
    "turboStartEnabled": true,
    "playbackRate": 0
  },
  "captions": [
    {
      "language": "string",
      "label": "string",
      "url": "http://example.com"
    }
  ],
  "chapters": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "title": "string",
      "startTimeSeconds": 0,
      "order": 0
    }
  ],
  "ctas": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "title": "string",
      "url": "string",
      "startTimeSeconds": 0,
      "endTimeSeconds": 0,
      "placement": "overlay",
      "position": "string",
      "size": "sm",
      "color": "string",
      "passUrlParams": true
    }
  ],
  "speech": {
    "present": true
  },
  "audioTracks": [
    {
      "language": "string",
      "label": "string",
      "default": true
    }
  ],
  "summarizable": true,
  "ebookable": true,
  "mindMappable": true,
  "quizzable": true,
  "tutorable": true,
  "telemetry": {
    "bootstrapUrl": "http://example.com"
  }
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}