# Video API

**POST** `https://api.oneover.com/functions/v1/api-v1-video` — submit job

**GET** `https://api.oneover.com/functions/v1/api-v1-video?request_id=<uuid>` — poll status

**Scope:** `video`

Async video generation. Submit a job, then poll every few seconds until `status` is `complete` or `failed`.

## Submit request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| model | string | yes | Video model ID |
| prompt | string | usually | Generation prompt (optional for some models) |
| duration | number | no | Duration in seconds |
| resolution | string | no | e.g. `480p`, `720p` |
| aspect_ratio | string | no | e.g. `wide` |
| generate_audio | boolean | no | Include generated audio |
| reference_image | string | no | Base64 reference image |
| reference_video | string | no | Base64 reference video |
| reference_audio | string | no | Base64 reference audio |

## Submit response

```json
{
  "request_id": "uuid",
  "status": "processing",
  "model": "seedance-1.5-pro",
  "credits_estimate": 25
}
```

## Poll response (complete)

```json
{
  "request_id": "uuid",
  "status": "complete",
  "model": "seedance-1.5-pro",
  "video_url": "https://...",
  "credits_charged": 25,
  "balance": { "subscription": 14969, "anytime": 5000 }
}
```

While running: `{ "status": "processing", "provider_status": "..." }`.
