Skip to main content

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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Base URL

https://opone.ai/api/v1

Endpoints

POST/v1/generate-video

Submit 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 }
POST/v1/generate-image

Submit 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 }
GET/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://..."] }
GET/v1/models

List 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"
GET/v1/credits

Check 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.