# Echo Router Video Generation

> Echo Router Video Generation is a paid API for AI agents from echo.router.merit.systems, paid per call via x402, $0.5/call, status unknown (last checked 2026-10-10).

Generates videos from text prompts using OpenAI's Sora models, returning a video job object with status tracking and download metadata.

## Facts

- Endpoint: POST https://echo.router.merit.systems/v1/videos?utm_source=zero.xyz
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/echo-router-video-generation-b1d923bb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_srpMVOKSXPWR9qi7qjB4o

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability echo-router-video-generation-b1d923bb -d '<json body>'
```

Example prompt: Generate a 12-second Sora-2-Pro video of a golden retriever running along a sunlit beach at sunset, at 1080p resolution.

## When to prefer this

Use this endpoint when the user explicitly wants to generate a video from a text prompt using OpenAI's Sora models. Prefer this over image generation endpoints when the output must be a video clip (not a still image). Choose sora-2-pro for higher quality results or sora-2 for faster/cheaper generation.

## Known failure modes

- Invalid model name — must be 'sora-2' or 'sora-2-pro'
- Invalid seconds value — must be 4, 8, or 12
- Prompt too long or violates content policy, returning error code and message
- Payment failure (x402 protocol) causing request rejection
- Video generation failure returning status 'failed' with error details
- Expired video link if completed_at is too far in the past

## How this service works

Generates videos using OpenAI's video generation models. Accepts various parameters to customize video output including prompts and configuration options.

## Output

Returns a video job object with a unique ID, model used (sora-2 or sora-2-pro), status (queued/in_progress/completed/failed), progress (0–100), video duration in seconds, size, creation timestamp, expiration timestamp, and an error object if the job failed. The agent can poll status to track completion.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "size": {
   "type": "string"
  },
  "model": {
   "enum": [
    "sora-2",
    "sora-2-pro"
   ],
   "type": "string"
  },
  "prompt": {
   "type": "string"
  },
  "seconds": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "id": {
  "type": "string"
 },
 "size": {
  "type": "string"
 },
 "error": {
  "type": "object",
  "nullable": true,
  "required": [
   "code",
   "message"
  ],
  "properties": {
   "code": {
    "type": "string"
   },
   "param": {
    "type": "string",
    "nullable": true
   },
   "message": {
    "type": "string"
   }
  },
  "additionalProperties": false
 },
 "model": {
  "enum": [
   "sora-2",
   "sora-2-pro"
  ],
  "type": "string"
 },
 "object": {
  "enum": [
   "video"
  ],
  "type": "string"
 },
 "status": {
  "enum": [
   "queued",
   "in_progress",
   "completed",
   "failed"
  ],
  "type": "string"
 },
 "seconds": {
  "anyOf": [
   {
    "enum": [
     4
    ],
    "type": "number"
   },
   {
    "enum": [
     8
    ],
    "type": "number"
   },
   {
    "enum": [
     12
    ],
    "type": "number"
   }
  ]
 },
 "progress": {
  "type": "number",
  "maximum": 100,
  "minimum": 0
 },
 "created_at": {
  "type": "number"
 },
 "expires_at": {
  "type": "number"
 },
 "completed_at": {
  "type": "number",
  "nullable": true
 },
 "remixed_from_video_id": {
  "type": "string"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/echo-router-video-generation-b1d923bb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from echo.router.merit.systems](https://www.zero.xyz/host/echo.router.merit.systems/llms.txt)
