Opone API
API Reference
Generate AI video from MCP, the CLI, or any script with an API key — text-to-video and image-to-video, with an AI agent routing top models like Veo and Seedance, and 9:16 vertical or 16:9 widescreen output in one call; image generation is supported too. Submit returns a job id (the job survives client disconnects) — poll the jobs endpoint for the result.
Authentication
Create an API key in your profile (an active paid subscription is required). The key is shown once. Send it on every request as a Bearer header:
Authorization: Bearer opone_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBase URL
https://opone.ai/api/v1Endpoints
/v1/generate-videoSubmit a video generation (text-to-video or image-to-video); returns a job id immediately.
curl -X POST https://opone.ai/api/v1/generate-video \
-H "Authorization: Bearer $OPONE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<model-id>",
"input": { "prompt": "a red fox running through fresh snow", "aspect_ratio": "9:16", "duration": 5 }
}'
# → 202 { "id": "<job-id>", "status": "queued", "credits_charged": 20 }/v1/generate-imageSubmit an image generation (also usable as the first frame for image-to-video); returns a job id immediately.
curl -X POST https://opone.ai/api/v1/generate-image \
-H "Authorization: Bearer $OPONE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<model-id>",
"input": { "prompt": "a red fox in snow", "aspect_ratio": "16:9" },
"num_images": 1
}'
# → 202 { "id": "<job-id>", "status": "queued", "credits_charged": 7 }/v1/jobs/{id}Poll job status + result (terminal: done / failed / cancelled / timeout).
curl https://opone.ai/api/v1/jobs/<job-id> \
-H "Authorization: Bearer $OPONE_API_KEY"
# → { "id": "...", "status": "done", "output_urls": ["https://..."] }/v1/modelsList available video/image models (top models like Veo, Seedance, and more) with pricing and input schema.
curl https://opone.ai/api/v1/models -H "Authorization: Bearer $OPONE_API_KEY"/v1/creditsCheck the remaining credit balance.
curl https://opone.ai/api/v1/credits -H "Authorization: Bearer $OPONE_API_KEY"Rate limits & errors
Requests are rate-limited by subscription tier: a rate-limit 429 includes Retry-After + X-RateLimit-* headers — honor them; a concurrency-full request also returns 429 (without rate headers) — just retry shortly. Other codes: 401 invalid key · 403 no active paid subscription · 402 insufficient credits · 422 wrong model type · 400 bad request.