PlatformXeDocs
Get API Key

Get asset status

Look up a streaming asset by id. Refreshes from Mux automatically when status is still pending.

GET /api/v1/streaming/video/assets/{id}

Returns the current state of a streaming asset, plus a ready-to-use playbackUrls object when the asset has finished transcoding.

Scope

streaming:read

Live-sync behavior

When the cached row is still status: 'pending' AND the asset has a muxAssetId, this endpoint calls Mux's retrieve API inline to refresh state. This closes the "missed webhook" gap — if Mux already finished but our webhook never landed, the next poll catches up:

  • Mux reports ready → row updates to status: 'ready' with muxPlaybackId
  • Mux reports errored → row updates to status: 'errored' with errorMessage
  • Mux still preparing → returns cached pending state as-is

Live-sync probe failures are non-fatal — the caller still sees the cached state.

Response

{
  "success": true,
  "data": {
    "id": "ply7tj9k6xq3v",
    "callerService": "lettings",
    "module": "properties",
    "entityId": "cm123abc456",
    "sourceUrl": "https://cdn.example.com/tours/abc.mp4",
    "callerRef": "your-row-id",
    "muxAssetId": "uW3kQbXyZ...",
    "muxPlaybackId": "Bg9pZ02XYZabc...",
    "durationSeconds": 38,
    "status": "ready",
    "errorMessage": null,
    "submittedAt": "2026-05-20T16:00:00.000Z",
    "readyAt": "2026-05-20T16:01:42.000Z",
    "erroredAt": null,
    "playbackUrls": {
      "hls": "https://stream.mux.com/Bg9pZ02XYZabc....m3u8",
      "mp4High": "https://stream.mux.com/Bg9pZ02XYZabc.../high.mp4",
      "mp4Medium": "https://stream.mux.com/Bg9pZ02XYZabc.../medium.mp4",
      "mp4Low": "https://stream.mux.com/Bg9pZ02XYZabc.../low.mp4",
      "thumbnail": "https://image.mux.com/Bg9pZ02XYZabc.../thumbnail.jpg",
      "animatedThumbnail": "https://image.mux.com/Bg9pZ02XYZabc.../animated.gif"
    }
  }
}

playbackUrls is null until the asset is ready.

Multi-tenant isolation

A caller can only see assets where callerService matches the API key. Cross-caller lookups return 404 NOT_FOUND (not 403) to avoid leaking existence.

Errors

StatusCodeWhen
400BAD_REQUESTid missing
404NOT_FOUNDAsset doesn't exist or belongs to a different caller