Skip to content

Media jobs (asynchronous)

The asynchronous mode of /v1/images, /v1/videos, and /v1/audio/speech: `"async": true` returns a job immediately; the result comes from GET /v1/media/jobs/{id}.

Updated on Sep 02, 2026

Generating a video takes minutes — and no HTTP connection (not even an agent's Webhook card) should hang waiting. With "async": true in the body, any call to /v1/images, /v1/videos, or /v1/audio/speech responds in milliseconds with a job_id, and the work continues on the server.

Billing, storage, and results are identical to synchronous mode — the job just wraps the wait.

1. iniciarbash
curl -X POST https://api.hinow.ai/v1/videos \
  -H "Authorization: Bearer hi_SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "bytedance/seedance-2.0-mini", "prompt": "...", "duration": 5, "async": true}'
# → 202 {"data": {"job_id": "8370e7b8-...", "status": "queued",
#        "poll_url": "/v1/media/jobs/8370e7b8-..."}}
GEThttps://api.hinow.ai/v1/media/jobs/{job_id}Bearer

Query the progress and result of a media job. Only the account that created the job can see it.

Parâmetros

  • job_idstring· pathobrigatório

    The id returned in the `202` from the async call.

Respostas

200`status`: `queued` → `running` → `succeeded` | `failed`
{
  "success": true,
  "data": {
    "job_id": "8370e7b8-...",
    "endpoint": "/v1/videos",
    "model": "bytedance/seedance-2.0-mini",
    "status": "succeeded",
    "result": {
      "urls": ["https://s3.us1-stlouis.hinow.ai/.../clip.mp4"],
      "cost": { "amount": 0.575, "currency": "USD" }
    }
  }
}
404Job does not exist, expired (24h), or belongs to another account
DetailBehavior
ResultThe result is **exactly** the data that the synchronous endpoint would return — nothing new to learn.
BillingHappens once, in the normal pipeline, when generation completes. A failed job does not charge for generation.
RetentionThe job remains queryable for 24 hours; the generated file stays in storage normally.
DeadlineA job that does not complete within 35 minutes is marked as failed.
ScopePer account — job_id from another account returns 404.

In agents, async is required for video

The Webhook card should not hold a request for minutes. The standard — route that starts + route that queries + the agent notifying progress — is set up and tested in the Scene Director flow.