Get Video Content
Download the rendered binary MP4 video data for a completed video generation job, bypassing Base64 JSON wrapping for high-throughput streaming playback.
The /v1/videos/{id}/content endpoint streams raw binary MP4 video for a completed video generation request. Returning binary media directly rather than Base64 JSON reduces memory consumption and eliminates client decoding overhead.
GET https://api.nrouter.ai/v1/videos/{id}/contentThe gateway authenticates credentials and enforces tenant ownership (cross-tenant calls return HTTP 404 model_not_found). Completed jobs stream video/mp4 data with $0 reservation and $0 download spend; incomplete jobs return HTTP 400 (invalid_request).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Video generation job ID (e.g. nrouter_video_01j89azxckm3287). |
Examples
curl -X GET https://api.nrouter.ai/v1/videos/nrouter_video_01j89azxckm3287/content \
-H "Authorization: Bearer $NROUTER_API_KEY" \
--output video.mp4Headers & Errors
Required request header: Authorization: Bearer sk-nrouter-... (optional Range header for partial buffering). Response headers include Content-Type: video/mp4, x-nr-request-id, x-nr-latency-ms, x-nr-model. See Chat Completions.
| HTTP Status | Error Code | Reason |
|---|---|---|
| 400 Bad Request | invalid_request | Job is still queued or processing, or rendering failed. |
| 401 Unauthorized | invalid_api_key | Virtual key missing, expired, or invalid. |
| 404 Not Found | model_not_found | Job ID not found or belongs to another tenant. |
| 429 Too Many Requests | rate_limit_exceeded | Virtual key bandwidth or RPM ceiling exceeded. |
| 500 / 503 Gateway Error | service_unavailable | Video storage cluster temporarily unreachable. |
Authorization
NRouterApiKey Your nRouter virtual key (sk-nrouter-…). Sent as Authorization: Bearer sk-nrouter-….
In: header
Path Parameters
Header Parameters
Target MCP server ID when routing MCP tool calls or prompts through the gateway
Caller SDK runtime language identification (e.g. typescript, python, rust, go)
Caller session identifier allowed at edge for grouping related client turns
Inbound trace detail level override for request lifecycle spans
Value in
- "off"
- "stages"
- "verbose"
Inbound stage-level trace emission override
Value in
- "off"
- "stages"
- "verbose"
Accepted so a client sending it is not refused; the value is not recorded and not propagated. Every response carries the gateway's own trace ID in this header, never the one sent.
Response Body
video/mp4
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/videos/string/content""video/mp4 byte stream"