model 必须使用模型列表接口返回的完整 ID,格式为 {channelCode}:{model}。/v1/videos 是异步生成入口:传入视频模型时创建视频任务,传入图片模型时创建图片任务。为了兼容已经适配 OpenAI/Sora 视频协议的下游平台,图片生成也通过 /v1/videos 创建和查询,不使用 OpenAI 官方同步图片接口。| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| Authorization | Header | String | Y | 固定格式:Bearer {apiKey} |
/v1/videos。/v1/models。object 固定为 video。metadata.result_url。GET BaseUrl/v1/models 获取当前可用模型列表。data[].id,创建任务时原样传入 model。POST BaseUrl/v1/videos 创建生成任务;传视频模型生成视频,传图片模型生成图片。id 调用 GET BaseUrl/v1/videos/{video_id} 轮询任务状态。status=completed 后,可读取 metadata.result_url,或调用 GET BaseUrl/v1/videos/{video_id}/content 获取 302 下载跳转。| 状态值 | 说明 |
|---|---|
| queued | 已创建,等待执行 |
| in_progress | 执行中 |
| completed | 任务成功完成 |
| failed | 任务执行失败 |
{
"error": {
"message": "model must be one of /newapi/v1/models response ids",
"type": "invalid_request_error",
"param": "model",
"code": "model_ambiguous"
}
}| HTTP 状态码 | code | 说明 |
|---|---|---|
| 400 | invalid_request | 请求体缺失或字段格式不合法 |
| 400 | model_ambiguous | model 未使用模型列表返回的完整 ID,或无法匹配当前可用模型 |
| 400 | invalid_metadata | metadata 字段格式不合法,或传入不支持的扩展字段 |
| 400 | unsupported_parameter | 当前参数值暂不支持,例如 n 不为 1、variant 不为 video 或 image |
| 400 | video_not_completed | 内容下载接口请求的任务尚未完成 |
| 400 | content_not_available | 任务已完成但内容地址不可用 |
| 401 | invalid_api_key | API Key 缺失、格式错误、已禁用或不存在 |
| 404 | not_found | 任务不存在,或不属于当前 API Key 对应账号 |
| 500 | internal_error | 服务内部异常 |
POST https://wellapi.cc/v1/videosUTF-8application/json| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | String | Y | 模型列表接口返回的 data[].id,必须原样传入 |
| prompt | String | Y | 生成提示词 |
| image | String | N | 单张参考图片 URL;会作 为参考图片列表的第一张 |
| seconds | String | N | 视频任务时长,单位:秒;优先级高于 duration;图片任务忽略 |
| duration | Integer | N | 视频任务时长,单位:秒;未传 seconds 时生效;图片任务忽略 |
| size | String | N | 画幅比例,如 16:9、9:16、1:1;图片任务直接使用该字段作为图片比例,未传时自动选择默认比例 |
| width | Integer | N | 期望宽度;未传 size 和 metadata.size 时会与 height 一起换算画幅比例 |
| height | Integer | N | 期望高度;未传 size 和 metadata.size 时会与 width 一起换算画幅比例 |
| n | Integer | N | 生成数量;当前仅支持 1 |
| metadata | Object | N | 平台扩展参数 |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| resolution | String | N | 分辨率或质量档位,如 720p、1080p、1K;图片任务未传时自动选择模型默认值 |
| size | String | N | 画面比例,如 16:9、9:16;优先级高于 width / height |
| mode_type | String | N | 视频生成模式:text2video、image2video、frames2video;图片任务忽略 |
| images | List<String> | N | 参考图片 URL 列表;会追加在顶层 image 之后 |
| videos | List<String> | N | 视频任务参考视频 URL 列表;图片任务忽略 |
| audios | List<String> | N | 视频任务参考音频 URL 列表;图片任务忽略 |
| 模式 | 说明 | 素材要求 |
|---|---|---|
| text2video | 文生视频 | 不允许传入参考图片 |
| image2video | 全能参考 | 至少传入 1 张参考图片;可按线路能力组合参考视频、参考音频 |
| frames2video | 首尾帧生视频 | 必须正好传入 2 张参考图片,顺序为首帧、尾帧 |
mode_type 必须被所选模型和线路支持。mode_type 时:存在参考图片则按 image2video(全能参考)处理,否则按 text2video 处理。{
"model": "sec-seedance-2.0-720p",
"prompt": "海边日落,镜头缓慢向前推进",
"seconds": "10",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "720p",
"mode_type": "image2video",
"images": [
"https://example.com/reference.jpg"
],
"audios": [
"https://example.com/music.mp3"
]
}
}| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | String | Y | 任务 ID,用于查询任务和获取内容 |
| object | String | Y | 固定为 video |
| model | String | N | 创建任务时使用的模型 |
| status | String | Y | 任务状态,见"任务状态" |
| progress | Integer | N | 任务进度,范围 0-100 |
| seconds | String | N | 视频时长,单位:秒;图片任务为空 |
| size | String | N | 视频或图片画幅比例 |
| created_at | Long | N | 创建时间,Unix 秒 |
| completed_at | Long | N | 完成时间,Unix 秒;未完成时为空 |
| metadata | Object | N | 扩展元信息,完成后可能包含 result_url |
| error | Object | N | 任务失败时的错误信息 |
{
"id": "task_xxxxx",
"object": "video",
"model": "sec-seedance-2.0-720p",
"status": "queued",
"progress": 0,
"seconds": "10",
"size": "16:9",
"created_at": 1781539200
}GET BaseUrl/v1/videos/{video_id}UTF-8| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| video_id | Path | String | Y | 创建接口返回的 id |
{
"id": "task_xxxxx",
"object": "video",
"model": "example-video-model",
"status": "in_progress",
"progress": 45,
"seconds": "10",
"size": "16:9",
"created_at": 1781539200
}{
"id": "task_xxxxx",
"object": "video",
"model": "example-video-model",
"status": "completed",
"progress": 100,
"seconds": "10",
"size": "16:9",
"created_at": 1781539200,
"completed_at": 1781539260,
"metadata": {
"result_url": "https://example.com/result.mp4"
}
}{
"id": "task_xxxxx",
"object": "video",
"model": "example-image-model",
"status": "completed",
"progress": 100,
"size": "1:1",
"created_at": 1781539200,
"completed_at": 1781539260,
"metadata": {
"result_url": "https://example.com/result.png"
}
}{
"id": "task_xxxxx",
"object": "video",
"model": "example-video-model",
"status": "failed",
"progress": 100,
"seconds": "10",
"size": "16:9",
"created_at": 1781539200,
"completed_at": 1781539260,
"error": {
"code": "task_failed",
"message": "生成失败,请检查文案或素材"
}
}Location 下载或播放真实文件。GET BaseUrl/v1/videos/{video_id}/contentUTF-8| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| video_id | Path | String | Y | 创建接口返回的 id |
| variant | Query | String | N | 支持空值、video、image;图片任务可传 image |
| Header | 说明 |
|---|---|
| Location | 真实内容文件 URL |