Get Video
Retrieve the real-time processing status, progress percentage, and execution metadata for an asynchronous video generation job across supported providers.
The /v1/videos/{id} endpoint retrieves real-time processing status, progress metrics, and metadata for an asynchronous video generation job. Use this endpoint to poll rendering progress following job creation on POST /v1/videos.
GET https://api.nrouter.ai/v1/videos/{id}Credit reservation and settlement complete on POST /v1/videos, while GET /v1/videos/{id} polling and GET /v1/videos/{id}/content execute with $0 reservation and $0 spend. Status normalizes to queued, processing, completed, or failed.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Video generation job ID (e.g. nrouter_video_01j89azxckm3287). |
Response
{
"id": "nrouter_video_01j89azxckm3287",
"object": "video",
"status": "completed",
"progress": 100,
"created_at": 1709251200,
"model": "veo-2.0"
}Examples
curl https://api.nrouter.ai/v1/videos/nrouter_video_01j89azxckm3287 \
-H "Authorization: Bearer $NROUTER_API_KEY"Headers & Errors
Required request header: Authorization: Bearer sk-nrouter-.... Response telemetry includes x-nr-request-id, x-nr-latency-ms, x-nr-model. See Chat Completions.
| HTTP Status | Error Code | Reason |
|---|---|---|
| 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 | Polling frequency exceeded RPM rate limit. |
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
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/videos/string"{ "id": "nrouter_video_01", "object": "video", "status": "completed"}