> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gregapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.5

Call the domestic Doubao and overseas BytePlus Dreamina Seedance 2.5 through GregAPI.

Seedance 2.5 offers both a domestic Doubao and an overseas BytePlus Dreamina variant. The two share GregAPI's task interface and request structure, but differ in model names, pricing, and web-search capability. When you need to use real-person imagery that has been verified by the person themselves, first complete the H5 verification and asset ingestion for the relevant region through the [Real-Person Asset Library API](/en/api-reference/videos/real-person-assets), then create tasks with `asset://<AssetId>`.

## 1. Models and pricing

| Region | GregAPI stable model | Official version ID | No video input | With video input |
| - | - | - | - | - |
| Domestic | `doubao-seedance-2-5` | `doubao-seedance-2-5-260628` | ¥70/M tokens | ¥42/M tokens |
| Overseas | `dreamina-seedance-2-5` | `dreamina-seedance-2-5-260628` | \$10.70/M tokens | \$6.40/M tokens |

We recommend using the stable model name in requests. The platform also accepts the corresponding official version ID and maps it to the stable model automatically; query and list responses still echo the stable model name. The `video` tier means `content[]` contains `video_url`; otherwise the `novideo` tier applies. 480p and 720p share the same unit price; only successfully generated videos are billed, and the actual video usage is based on `usage.completion_tokens` in the query response. The domestic model additionally supports `tools: [{"type":"web_search"}]` for text-only tasks. Web search is billed separately according to the actual `usage.tool_usage.web_search` count in the response; the overseas model does not support this tool, and specific customer pricing is subject to the GregAPI console.

## 2. Endpoint

```bash theme={null}
export BASE_URL="https://api.gregapi.com"
export TOKEN="oh-xxxxxxxxxxxxxxxx"
```

| Feature | Path |
| - | - |
| Create task | `POST /volcark/api/v3/contents/generations/tasks` |
| Query task | `GET /volcark/api/v3/contents/generations/tasks/{task_id}` |
| List tasks | `GET /volcark/api/v3/contents/generations/tasks` |
| Cancel or delete task | `DELETE /volcark/api/v3/contents/generations/tasks/{task_id}` |

All requests use the GregAPI API Token:

```http theme={null}
Authorization: Bearer <TOKEN>
Content-Type: application/json
```

## 3. Create task

Domestic text-to-video example:

```bash theme={null}
curl -X POST "$BASE_URL/volcark/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-5",
    "content": [
      {
        "type": "text",
        "text": "A 5-second cinematic product clip with soft natural light and a slow push-in."
      }
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true,
    "output_format": "mp4",
    "watermark": false
  }'
```

For overseas calls, simply change `model` to `dreamina-seedance-2-5`; the endpoint still uses GregAPI's `BASE_URL`. A successful creation returns the task ID:

```json theme={null}
{
  "id": "cgt-202608130001-example",
  "model": "doubao-seedance-2-5"
}
```

### Multimodal references

`content[]` supports the following inputs:

| Type | `role` | Max count |
| - | - | - |
| `image_url` | `reference_image`, `first_frame`, `last_frame` | 30 |
| `video_url` | `reference_video` | 10 |
| `audio_url` | `reference_audio` | 10 |

Images, videos, and audio together may total at most 50 items. GregAPI-managed assets can be referenced with `asset://<Asset_Id>`; assets must be uploaded and processed before submitting a generation task.

```json theme={null}
{
  "model": "doubao-seedance-2-5",
  "content": [
    {
      "type": "text",
      "text": "Keep the camera motion of the reference video, use the product look of the reference image, and follow the rhythm of the reference audio."
    },
    {
      "type": "video_url",
      "role": "reference_video",
      "video_url": {"url": "asset://video-asset-id"}
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {"url": "asset://image-asset-id"}
    },
    {
      "type": "audio_url",
      "role": "reference_audio",
      "audio_url": {"url": "asset://audio-asset-id"}
    }
  ],
  "resolution": "720p",
  "ratio": "adaptive",
  "duration": -1
}
```

First-frame/last-frame tasks must use `ratio=adaptive`; `last_frame` must appear together with `first_frame`, and first/last frames cannot be mixed with `reference_*` assets.

### Domestic web search

Web search is supported only by the domestic `doubao-seedance-2-5`, and `content[]` must contain text only:

```json theme={null}
{
  "model": "doubao-seedance-2-5",
  "content": [
    {
      "type": "text",
      "text": "Generate a tech-news-style short clip based on recent public information."
    }
  ],
  "resolution": "720p",
  "duration": 5,
  "tools": [
    {"type": "web_search"}
  ]
}
```

## 4. Parameter boundaries

| Field | Seedance 2.5 constraint |
| - | - |
| `resolution` | Only `480p`, `720p`; `1080p` and `4k` are not supported |
| `duration` | Integer from `4-30`, or `-1` for model auto-selection |
| `ratio` | `adaptive`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16` |
| `output_format` | `mp4`, `mov` |
| `generate_audio` | Boolean; synchronous audio generated by default |
| `return_last_frame` | Boolean; a successful response may return a last-frame URL |
| `priority` | `0-9` |
| `execution_expires_after` | `3600-259200` seconds |
| `service_tier` | Only `default` is supported |
| `draft` | Only `false` is supported |

`seed`, `frames`, `frames_per_second`, `frame_rate`, `fps`, and `camera_fixed` do not apply to Seedance 2.5; passing them returns HTTP 400 before the request reaches the model service.

## 5. Query result

```bash theme={null}
curl "$BASE_URL/volcark/api/v3/contents/generations/tasks/cgt-202608130001-example" \
  -H "Authorization: Bearer $TOKEN"
```

Task statuses include `queued`, `running`, `succeeded`, `failed`, and `expired`. A successful task returns `content.video_url`, the actual specs, and `usage`:

```json theme={null}
{
  "id": "cgt-202608130001-example",
  "model": "doubao-seedance-2-5",
  "status": "succeeded",
  "content": {
    "video_url": "https://example.com/generated-video.mp4"
  },
  "usage": {
    "completion_tokens": 108000
  }
}
```

Successful video URLs are typically valid for 24 hours and are subject to download limits; please transfer them promptly. Failed tasks should read the structured `error` in the response.

## 6. OpenAI-style endpoint

Seedance 2.5 can also create tasks via `POST /v1/videos`:

```bash theme={null}
curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-5",
    "prompt": "A paper boat floating on the water in the early morning",
    "seconds": 5,
    "resolution": "720p",
    "ratio": "16:9",
    "generate_audio": true
  }'
```

The OpenAI-style endpoint is suitable for basic text-to-video and reference-asset calls. When you need full native capabilities such as `content[].role`, `output_format`, and `tools.web_search`, use `/volcark/api/v3/contents/generations/tasks`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.