POST https://api.naga.ac/v1/videos answers 202 at once with a job id. A clip takes from half a minute to several minutes, so you poll GET /v1/videos/{id} until status is completed or failed, then download the file from GET /v1/videos/{id}/content. The request and job fields follow the OpenRouter Videos API.
GET /v1/videos/models lists the video models on sale, with the values each accepts and its price per second.
Parameters
Every value is checked against the model’s entry inGET /v1/videos/models before the job starts. A value the model does not support fails with 400 and a message that lists the supported ones.
NagaAI checks prompts with its own moderation first. A blocked prompt fails with
403 inappropriate_content.
The job
GET /v1/videos/{id}/content answers 302 with the file’s address, or 409 while the job is not completed. NagaAI keeps the file for seven days after the job completes, so download it if you need it longer. A job of another account, or an unknown id, answers 404.
Billing
The price is per second of video and depends on the resolution and on sound.pricing in GET /v1/videos/models lists per_second for each pair the model sells.
- When the job starts, NagaAI holds its full price on the balance. If the balance minus the holds of your running jobs does not cover it, the request fails with
402. On a key with a credit limit, the rest of the limit has to cover it too, or the request fails with403 credit_limit_exceeded. - NagaAI charges once, when the clip is ready, for the seconds you asked for. For a clip more than half a second shorter, NagaAI charges its real length, rounded up to whole seconds.
- NagaAI does not charge a job that ends
failed.