Migrating From the OpenRouter Video API to Sume: What Changes
A field-by-field diff for moving an OpenRouter video client to Sume: base path, model ids, size, seed, provider options, webhooks and billing.

Sume's POST /v1/videos follows the OpenRouter Video Generation API field-for-field, so most clients need a base URL and key change. The differences are few but each one produces a 400 or a missing header if you miss it. Here is the full list, with OpenRouter's side read on 2026-10-03.
What stays the same
The flow is identical: submit to /videos, poll GET /videos/{jobId}, download from /videos/{jobId}/content, and list models at /videos/models. Job states pending, in_progress, completed, failed and cancelled carry over. Request fields such as prompt, duration, resolution, aspect_ratio, frame_images, input_references and generate_audio carry over too.
What differs
OpenRouter's guide shows paths under /api/v1/videos and model ids shaped like google/veo-3.1. Sume drops the /api segment and uses bare ids.
| Area | OpenRouter | Sume |
|---|---|---|
| Base path | /api/v1/videos | https://api.sume.com/v1/videos |
| Model ids | provider/name, such as google/veo-3.1 | Bare ids, such as seedance-2 |
| Auto routing | None | model: sume/auto |
| size | Where the model advertises sizes | 400 unsupported_parameter on every model |
| seed | Accepted by many models | Rejected; every model reports seed false |
| provider.options | Forwarded upstream | Non-empty values return 400 |
| Webhook signature | X-OpenRouter-Signature, t=...,v1=... | x-sume-webhook-signature |
| Retries | Not on this route | Idempotency-Key replays the original job |
| Billing | Credits | USD balance, list times 1.25 |
A migration checklist
Strip the provider prefix from model ids, remove size, seed and provider.options from your payload builder, switch your webhook verifier to the Sume header and envelope, and add an Idempotency-Key to your submit call. Then call GET /v1/videos/models and re-derive your allowed resolutions, because Sume's catalog differs from OpenRouter's.
The catalog differs in content too: Sume carries Seedance, Wan, Kling, MiniMax H3 and others listed in its video docs, not necessarily the ids you used on OpenRouter. Map each by capability, not by name.
Sources
Related posts
More in Developers
- MiniMax H3 Max in TypeScript: submit, poll and download with fetch
A TypeScript script under 30 lines: submit a minimax-h3-max job on Sume, poll until completed, save the MP4. Status values and the 409 on failed jobs.
- Mistral Vibe tool globs: keep Sume to read-only tools
Vibe prefixes MCP tools with the server name and lets you allow or deny them by glob. A read-only Sume allowlist for a key that otherwise sees paid tools.
- Mix Seedance, Kling and Omni clips in one video: shared aspect ratio
16:9 and 9:16 are the aspect ratios Seedance 2.5, Kling 3 and Gemini Omni Flash 1.1 all list. Set the Timeline output to match and plan before render.
- Mixed-language script: one Sume TTS request per language, then concat
A script that switches language mid-way needs one TTS request per language on Sume. Join up to 20 parts with timeline audio at $0.01.
Written by Sume