# Seedance 2.0 · Clip — /videos/generations

Seedance 2.0 · Clip video generation (async, special per-clip price): duration must be 5, 10 or 15 seconds (default 15; portrait 9:16 is 15 only), 720P, size=16:9 / 9:16; up to 9 reference images (images -- they set the people, scene and style; name them @Image1... in the prompt), and photos of real people work as references; no reference video or audio. Returns a job id (HTTP 202); poll GET /v1/videos/jobs/{id} until status=succeeded, result in data[0].url. $1.00 a clip, the three lengths at one price; fully refunded on failure.

**Endpoint:** `POST https://nezhagate.com/v1/videos/generations`

## Authentication
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Request body
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | Yes | Model ID, here seedance-2.0-clip. |
| `prompt` | string | Yes | Text prompt describing the video, camera and motion. Max 5000 bytes (UTF-8; a Chinese character counts as 3). |
| `duration` | integer | No | Length must be 5, 10 or 15 seconds (default 15, the longest); portrait 9:16 takes 15 only for now; any other value is refused. Alias: seconds. Special per-clip price: all three lengths cost the same. |
| `resolution` | string | No | Resolution is 720P only (also the default); $1.00 a clip whatever the length. |
| `size` | string | No | Aspect ratio: 16:9 (landscape, the default; 5 / 10 / 15 s) or 9:16 (portrait; 15 s). Alias: aspect_ratio. |
| `image` | string | No | Image-to-video: include a reference image (public URL, data: URI or base64); omit for text-to-video. |
| `images` | array | No | Multiple reference images, up to 9. Exceeding the cap is rejected, never truncated. Alias: reference_images. |

## Request example
```bash
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "seedance-2.0-clip", "prompt": "a paper crane unfolding over a misty lake", "duration": 15, "resolution": "720P", "size": "16:9"}'
# image-to-video: also pass  "image": "https://example.com/ref.png"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
```

## Response
```json
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "seedance-2.0-clip"
}
```