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 tostatus: 'ready'withmuxPlaybackId - Mux reports
errored→ row updates tostatus: 'errored'witherrorMessage - Mux still
preparing→ returns cachedpendingstate 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
| Status | Code | When |
|---|---|---|
| 400 | BAD_REQUEST | id missing |
| 404 | NOT_FOUND | Asset doesn't exist or belongs to a different caller |