接口 01音乐生成歌词混合
POST /api/v1/apps/music_generation/mashup_lyrics
音乐生成歌词混合
将两段歌词融合为新的混合版本。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | mashup_lyrics |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/mashup_lyrics |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
lyrics_a | string | 是 | - | - | - | 第一段歌词文本。 |
lyrics_b | string | 是 | - | - | - | 第二段歌词文本。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"title": "Lyrics Mashup",
"data": {
"text": "[singer A]\nMorning light on the road\n\n[transition]\n\n[singer B]\nDance through the midnight glare",
"title": "Lyrics Mashup",
"tags": [],
"status": "complete"
}
},
"usage": {
"points_cost": 12,
"actual_points": 12
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 02音乐生成人声处理
POST /api/v1/apps/music_generation/vox
音乐生成人声处理
基于音频 ID 提取指定片段的人声或伴奏处理结果。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | vox |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/vox |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
vocal_start | number | 否 | - | - | - | 人声提取开始时间,单位秒。 |
vocal_end | number | 否 | - | - | - | 人声提取结束时间,单位秒。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址。 |
响应说明
提交成功后返回平台 task_id。请使用本应用查询接口或统一任务查询接口获取最终结果;如果请求传入 callback_url,平台会在任务终态时主动通知。
提交成功示例
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "music_generation",
"api": "vox",
"frozen_points": 14,
"actual_points": 0,
"created_at": "2026-07-06T14:32:35Z"
}
}查询完成示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "completed",
"data": {
"id": "vox_xxxxxxxxxxxx",
"status": "complete",
"vocal_start_s": "0.0",
"vocal_end_s": "20.0"
}
},
"usage": {
"points_cost": 14,
"actual_points": 14
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 03音乐生成优化音乐风格
POST /api/v1/apps/music_generation/style
音乐生成优化音乐风格
根据提示词生成更完整的音乐风格描述。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | style |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/style |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
prompt | string | 是 | - | - | warm electronic pop with female vocal | 需要优化的风格提示词。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"data": {
"upsampled_tags": "Ultra-soft electronic pop at 84 BPM, bright synth arpeggios, muted kick, airy pad chords."
}
},
"usage": {
"points_cost": 14,
"actual_points": 14
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 04音乐生成导出 MIDI
POST /api/v1/apps/music_generation/midi
音乐生成导出 MIDI
基于音频 ID 提取 MIDI 文件。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | midi |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/midi |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址;同步接口可不传。 |
响应说明
提交成功后返回平台 task_id。请使用本应用查询接口或统一任务查询接口获取最终结果;如果请求传入 callback_url,平台会在任务终态时主动通知。
提交成功示例
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "music_generation",
"api": "midi",
"frozen_points": 14,
"actual_points": 0,
"created_at": "2026-07-06T14:32:35Z"
}
}查询处理中示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "processing"
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}查询完成示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "completed",
"file_url": "https://example.com/music/audio.mid"
},
"usage": {
"points_cost": 14,
"actual_points": 14
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 05音乐生成歌词时间轴
POST /api/v1/apps/music_generation/timing
音乐生成歌词时间轴
基于音频 ID 获取歌词与音频时间轴信息。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | timing |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/timing |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址;同步接口可不传。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"data": {
"aligned_words": [
{
"word": "Morning",
"start_s": 18.431,
"end_s": 18.989,
"success": true
}
],
"segments": [
{
"text": "Morning on the street",
"start_s": 18.431,
"end_s": 21.383
}
],
"waveform_data": [
0.05253,
0.09595,
0.08009
]
}
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 06音乐生成导出 MP4
POST /api/v1/apps/music_generation/mp4
音乐生成导出 MP4
基于音频 ID 获取视频文件链接。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | mp4 |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/mp4 |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址;同步接口可不传。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"video_url": "https://example.com/music/video.mp4",
"data": {
"video_url": "https://example.com/music/video.mp4"
}
},
"usage": {
"points_cost": 20,
"actual_points": 20
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 07音乐生成导出 WAV
POST /api/v1/apps/music_generation/wav
音乐生成导出 WAV
基于音频 ID 导出高质量 WAV 文件。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | wav |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/wav |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址;同步接口可不传。 |
响应说明
提交成功后返回平台 task_id。请使用本应用查询接口或统一任务查询接口获取最终结果;如果请求传入 callback_url,平台会在任务终态时主动通知。
提交成功示例
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "music_generation",
"api": "wav",
"frozen_points": 14,
"actual_points": 0,
"created_at": "2026-07-06T14:32:35Z"
}
}查询完成示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "completed",
"file_url": "https://example.com/music/audio.wav",
"data": [
{
"file_url": "https://example.com/music/audio.wav"
}
]
},
"usage": {
"points_cost": 14,
"actual_points": 14
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 08音乐生成声音克隆
POST /api/v1/apps/music_generation/voice_clone
音乐生成声音克隆
基于清晰人声音频创建私有声音风格 ID。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | voice_clone |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/voice_clone |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_url | string | 是 | - | - | https://example.com/voice.mp3 | 可公开访问的 MP3 或 WAV 人声音频 URL。音频至少 10 秒,建议单人清晰人声,尽量避免背景噪音或背景音乐。 |
name | string | 否 | - | - | My Voice | 自定义声音风格名称。 |
description | string | 否 | - | - | - | 自定义声音风格描述。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"voice_id": "voice_xxxxxxxxxxxx",
"data": {
"voice_id": "voice_xxxxxxxxxxxx",
"name": "My Voice"
}
},
"usage": {
"points_cost": 20,
"actual_points": 20
}
}
}失败示例
{
"code": 0,
"msg": "Audio duration must be between 10 and 240 seconds.",
"data": null
}接口 09音乐生成创建歌手风格
POST /api/v1/apps/music_generation/persona
音乐生成创建歌手风格
基于已生成歌曲创建可复用的歌手风格 ID。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | persona |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/persona |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_id | string | 是 | - | - | audio_xxxxxxxxxxxx | 音频 ID,用于定位已生成或已上传的音频片段。 |
name | string | 是 | - | - | My Singer Style | 歌手风格名称。 |
description | string | 否 | - | - | - | 歌手风格的文字描述。 |
vocal_start | number | 否 | - | - | - | 人声片段开始时间,单位秒。 |
vocal_end | number | 否 | - | - | - | 人声片段结束时间,单位秒。 |
vox_audio_id | string | 否 | - | - | - | 用于创建新歌手风格的人声参考音频 ID。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"persona_id": "persona_xxxxxxxxxxxx",
"data": {
"persona_id": "persona_xxxxxxxxxxxx"
}
},
"usage": {
"points_cost": 12,
"actual_points": 12
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 10音乐生成上传参考音频
POST /api/v1/apps/music_generation/upload_audio
音乐生成上传参考音频
提交可访问的音频地址并返回可用于后续创作的音频 ID。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | upload_audio |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/upload_audio |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
audio_url | string | 是 | - | - | https://example.com/ref.mp3 | 可公开访问的音频文件 URL,用于生成后续创作需要的音频 ID。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"audio_id": "audio_xxxxxxxxxxxx",
"audio_url": "https://example.com/music/reference.mp3",
"title": "reference_audio",
"duration": 198,
"data": {
"audio_id": "audio_xxxxxxxxxxxx",
"audio_url": "https://example.com/music/reference.mp3",
"duration": 198
}
},
"usage": {
"points_cost": 13,
"actual_points": 13
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 11音乐生成生成歌词
POST /api/v1/apps/music_generation/lyrics
音乐生成生成歌词
根据主题或风格描述生成结构化歌词。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | lyrics |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/lyrics |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
prompt | string | 是 | - | - | A song about winter | 歌词生成提示词,用于描述歌词主题、情绪或风格。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
成功示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "completed",
"title": "First Light Avenue",
"data": [
{
"text": "[Verse 1]\nThe bakery opens slow\n[Chorus]\nMorning on the street",
"title": "First Light Avenue",
"status": "complete",
"tags": [
"indie pop",
"warm vocal"
]
}
]
},
"usage": {
"points_cost": 12,
"actual_points": 12
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 12音乐生成查询音乐任务
GET /api/v1/apps/music_generation/query
音乐生成查询音乐任务
按平台任务 ID 查询任务状态与结果。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | query |
| 请求方式 | GET |
| 请求路径 | /api/v1/apps/music_generation/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | string | 是 | - | - | task_xxxxxxxxxxxx | 创建任务后返回的平台任务 ID。 |
响应说明
同步返回处理结果。媒体类结果可能包含 audio_url、video_url、file_url、image_url、audio_id、persona_id 等字段,具体以接口实际结果为准。
处理中示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"status": "processing"
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}完成示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "completed",
"audio_url": "https://example.com/music/audio.mp3",
"file_url": "https://example.com/music/audio.wav",
"data": [
{
"id": "audio_xxxxxxxxxxxx",
"title": "Morning API",
"audio_url": "https://example.com/music/audio.mp3"
}
]
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 13音乐生成创建音乐任务
POST /api/v1/apps/music_generation/create
音乐生成创建音乐任务
提交音乐生成、续写、翻唱、分轨或混音任务,返回平台任务 ID。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | music_generation |
| API 编码 | create |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/music_generation/create |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/jsontype 价格对照
请求 create 接口时,type 字段决定具体创作动作和计费规格。
| type 参数值 | 规格说明 | 价格 |
|---|---|---|
generate | 生成音乐 | 65 点/次 |
extend | 续写音乐 | 65 点/次 |
upload_extend | 上传音频续写 | 65 点/次 |
upload_cover | 上传音频翻唱 | 65 点/次 |
concat | 拼接音频 | 14 点/次 |
cover | 风格翻唱 | 65 点/次 |
artist_consistency | 歌手风格生成 | 65 点/次 |
artist_consistency_vox | 歌手风格人声生成 | 65 点/次 |
stems | 基础分轨 | 65 点/次 |
all_stems | 完整分轨 | 230 点/次 |
replace_section | 替换片段 | 90 点/次 |
underpainting | 添加伴奏 | 65 点/次 |
overpainting | 添加人声 | 65 点/次 |
remaster | 音质增强 | 65 点/次 |
mashup | 混音融合 | 65 点/次 |
samples | 添加采样 | 65 点/次 |
inspo | 参考灵感生成 | 65 点/次 |
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
type | string | 否 | generate | generate / extend / upload_extend / upload_cover / concat / cover / artist_consistency / artist_consistency_vox / stems / all_stems / replace_section / underpainting / overpainting / remaster / mashup / samples / inspo | generate | 操作类型。generate 根据提示生成音乐;extend 基于已有音频续写;concat 拼接音频片段;cover 参考既有曲风重新演绎;upload_cover 对上传音频进行风格翻唱;upload_extend 续写上传音频;artist_consistency 按指定歌手风格生成;artist_consistency_vox 使用人声模式按歌手风格生成;stems 分离人声和伴奏;all_stems 分离人声、鼓、贝斯和其他乐器;replace_section 替换指定时间段;underpainting 为人声添加伴奏;overpainting 为伴奏添加人声;samples 在指定时间段添加采样;remaster 增强音质;mashup 混合多首歌曲;inspo 基于 1 到 4 段参考音频生成灵感作品。 |
prompt | string | 否 | - | - | A warm synth-pop song about city nights | 生成音乐的提示词。灵感模式下不超过 500 个字符;自定义歌词模式请优先使用 lyric 和 style。 |
lyric | string | 否 | - | - | - | 自定义模式下使用的歌词。常规模型最多 3000 字符,高质量模型最多 5000 字符。 |
style | string | 否 | - | - | dream pop, warm synth, mellow vocal | 音乐风格描述。常规模型最多 200 字符,高质量模型最多 1000 字符。 |
title | string | 否 | - | - | Neon Night | 自定义模式下的歌曲标题。常规模型最多 80 字符,高质量模型最多 100 字符。 |
custom | boolean | 否 | - | - | - | 是否启用自定义模式。请使用 JSON boolean;平台也兼容 true/false、1/0、yes/no、on/off 字符串。为 true 时按歌词和风格生成;为 false 时按提示词生成。 |
instrumental | boolean | 否 | - | - | - | 纯伴奏模式。请使用 JSON boolean;平台也兼容 true/false、1/0、yes/no、on/off 字符串。开启后将忽略歌词内容。 |
lyric_prompt | string | 否 | - | - | - | 自动生成歌词的提示词,仅在 custom 为 true 且 lyric 为空时生效。 |
audio_id | string | 否 | - | - | - | 已有音频 ID。extend、concat 等基于已有音频的操作需要填写。 |
audio_urls | array | 否 | - | - | ["https:\/\/example.com\/ref.mp3"] | 参考音频 URL 列表。inspo 类型要求 1 到 4 个可公开访问的音频地址。 |
persona_id | string | 否 | - | - | - | 歌手或声音风格 ID,用于让生成歌曲采用指定风格。 |
continue_at | number | 否 | - | - | - | 从已有音频的指定秒数位置继续生成。例如 213.5 表示从 3 分 33.5 秒处续写。 |
vocal_gender | string | 否 | - | m / f | - | 人声性别偏好,m 表示男声,f 表示女声。该参数用于提高目标音色概率,但不保证严格符合。 |
style_negative | string | 否 | - | - | - | 不希望出现在音乐中的风格描述。 |
style_influence | number | 否 | - | - | - | 风格影响强度,范围 0 到 1;数值越高越贴近填写的风格,仅在自定义模式下生效。 |
weirdness | number | 否 | - | - | - | 创意实验强度,范围 0 到 1;数值越高结果越开放,仅在自定义模式下生效。 |
audio_weight | number | 否 | - | - | - | 参考音频权重,范围 0 到 1;数值越高越依赖参考音频,主要用于翻唱类操作。 |
variation_category | string | 否 | - | high / normal / subtle | - | 变化强度,可选 high、normal、subtle。 |
mashup_audio_ids | array | 否 | - | - | - | 用于混合的音频 ID 列表。mashup 类型需要填写。 |
replace_section_start | number | 否 | - | - | - | replace_section 类型中需要替换片段的开始时间,单位秒。 |
replace_section_end | number | 否 | - | - | - | replace_section 类型中需要替换片段的结束时间,单位秒。 |
underpainting_start | number | 否 | - | - | - | 添加伴奏的开始时间,单位秒,默认 0。 |
underpainting_end | number | 否 | - | - | - | 添加伴奏的结束时间,单位秒,需小于歌曲总时长。 |
overpainting_start | number | 否 | - | - | - | 添加人声的开始时间,单位秒,默认 0。 |
overpainting_end | number | 否 | - | - | - | 添加人声的结束时间,单位秒,需小于歌曲总时长。 |
samples_start | number | 否 | - | - | - | 添加采样的开始时间,单位秒,默认 0。 |
samples_end | number | 否 | - | - | - | 添加采样的结束时间,单位秒,需小于歌曲总时长。 |
callback_url | string | 否 | - | - | - | 任务完成或失败时由平台主动通知的 HTTPS 地址。 |
响应说明
提交成功后返回平台 task_id。请使用本应用查询接口或统一任务查询接口获取最终结果;如果请求传入 callback_url,平台会在任务终态时主动通知。
提交成功示例
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "music_generation",
"api": "create",
"frozen_points": 65,
"actual_points": 0,
"created_at": "2026-07-06T14:32:35Z"
}
}查询完成示例
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "completed",
"audio_url": "https://example.com/music/audio.mp3",
"title": "Morning API",
"data": [
{
"id": "audio_xxxxxxxxxxxx",
"title": "Morning API",
"lyric": "[Verse]\nClean lines, clean run",
"style": "bright synth pop",
"duration": 20.5,
"audio_url": "https://example.com/music/audio.mp3"
}
]
},
"usage": {
"points_cost": 65,
"actual_points": 65
}
}
}失败示例
{
"code": 0,
"msg": "任务处理失败,请稍后重试",
"data": null
}接口 14全驱动数字人提交任务
POST /api/v1/apps/image_human/submit
全驱动数字人提交任务
全驱动数字人 - 提交任务
POST /api/v1/apps/image_human/submit
根据输入人物图片和参考音频创建全驱动数字人生成任务。mode 同时作为生成模式和清晰度计费档位,支持 fast、standard、2k、4k;resolution 仅作为兼容别名,新接入建议直接使用 mode=2k 或 mode=4k。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_url | string | 是 | 输入图片 URL。 |
ref_file_url | string | 是 | 输入音频 URL,平台按该音频时长计费。 |
prompt | string | 否 | 用户提示词;未传时使用默认提示词。 |
mode | string | 否 | 生成模式/清晰度档位:fast、standard、2k、4k。默认 standard。 |
resolution | string | 否 | 兼容字段:传 2k 或 4k 时等同于 mode=2k 或 mode=4k。新接入建议直接使用 mode。 |
duration | number | 否 | 音频时长,单位秒;当系统无法自动解析音频时长时必须传入。 |
请求示例
{
"file_url": "https://example.com/person.png",
"ref_file_url": "https://example.com/audio.wav",
"prompt": "一个男人在说话",
"mode": "2k"
}提交成功后请使用查询接口按 task_id 拉取结果。
接口 15全驱动数字人查询任务
POST /api/v1/apps/image_human/query
全驱动数字人查询任务
全驱动数字人 - 查询任务
POST /api/v1/apps/image_human/query
根据提交接口返回的平台任务 ID 查询任务状态和结果。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 平台任务 ID,格式通常为 task_xxxxxxxxxxxx。 |
请求示例
{
"task_id": "task_xxxxxxxxxxxx"
}运行中返回示例
{
"task_id": "task_xxxxxxxxxxxx",
"status": "running"
}完成返回示例
{
"task_id": "task_xxxxxxxxxxxx",
"status": "done",
"data": {
"output_url": "https://example.com/output.mp4",
"cover_url": "https://example.com/cover.jpg",
"duration": 40.68
}
}接口 16人物替换提交任务
POST /api/v1/apps/person_replacement/submit
人物替换提交任务
提交人物替换异步任务。接口接收一张或多张参考人物图片、一个输入视频、可选提示词、生成模式和处理人数,返回平台任务 ID。任务完成后使用“人物替换 · 查询任务”接口获取结果。
接口地址
POST /api/v1/apps/person_replacement/submit鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json计费说明
本接口按输入视频时长计费。平台会优先使用请求中的 duration,未传时会从 video_url 探测视频秒数。
| mode | 计费单位 | 默认价格 |
|---|---|---|
fast | 输入视频秒 | 1 点/秒 |
standard | 输入视频秒 | 2 点/秒 |
max | 输入视频秒 | 3 点/秒 |
实际扣费以当前租户 SKU 售价为准。提交成功时会先冻结预估点数,任务完成后按实际输入视频时长结算。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
type | string | 否 | person_replacement | 固定值;不传时平台会按当前应用补齐。 |
file_url | string / array | 是 | - | 参考人物图片 URL。单图传字符串,多图参考传 URL 数组。 |
video_url | string | 是 | - | 输入视频 URL,也是本接口计费时长来源。 |
prompt | string | 否 | - | 提示词,例如动作、人物、场景补充描述。 |
mode | string | 否 | standard | 生成模式:fast、standard、max。 |
face_count | integer | 否 | 1 | 处理人数,取值范围 1 到 7。 |
duration | number | 否 | - | 输入视频时长,单位秒;通常可不传,由平台自动探测。 |
请求示例
单图参考:
{
"type": "person_replacement",
"file_url": "https://example.com/person.png",
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "standard",
"face_count": 1
}多图参考:
{
"type": "person_replacement",
"file_url": [
"https://example.com/person-1.png",
"https://example.com/person-2.png"
],
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "max",
"face_count": 2
}cURL 示例
curl -X POST "https://你的域名/api/v1/apps/person_replacement/submit" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"type": "person_replacement",
"file_url": "https://example.com/person.png",
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "standard",
"face_count": 1
}'成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "processing",
"app": "person_replacement",
"api": "submit",
"frozen_points": 31.39,
"actual_points": 0,
"created_at": "2026-06-25T00:00:00Z"
}
}| 字段 | 说明 |
|---|---|
data.task_id | 平台任务 ID,查询任务时传入。 |
data.status | 平台任务状态,提交成功通常为 processing。 |
data.frozen_points | 本次任务预冻结点数。 |
data.actual_points | 已实际结算点数;任务完成前通常为 0。 |
失败响应
{
"code": 0,
"msg": "face_count 必须为 1 到 7 的整数",
"data": []
}常见错误:
| HTTP | code | 说明 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误。 |
| 400 | billing_duration_unresolved | 无法解析输入视频时长,可显式传入 duration 后重试。 |
| 400 | billing_sku_unmatched | mode 未命中可用 SKU。 |
| 401 | auth_failed | API Key 缺失或无效。 |
| 402 | insufficient_points | 用户或租户点数不足。 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足。 |
| 403 | permission_denied | 当前 API Key 无权调用应用 API。 |
| 404 | not_found | 应用、API 或任务不存在。 |
| 429 | queue_limit_exceeded | 应用排队任务已达上限。 |
接口 17人物替换查询任务
POST /api/v1/apps/person_replacement/query
人物替换查询任务
根据提交接口返回的 task_id 查询人物替换任务状态、生成结果与计费信息。查询接口不重复计费。
接口地址
POST /api/v1/apps/person_replacement/query鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 提交任务接口返回的平台任务 ID,例如 task_xxxxxxxxxxxxxxxx。 |
请求示例
{
"task_id": "task_xxxxxxxxxxxxxxxx"
}cURL 示例
curl -X POST "https://你的域名/api/v1/apps/person_replacement/query" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"task_id": "task_xxxxxxxxxxxxxxxx"
}'成功响应
处理中:
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "running",
"duration": 0
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}完成后:
任务完成后,result 中会返回生成结果地址。不同上游可能返回 video_url、output_url、url 或 results 数组;平台会尽量归一化为可直接访问的视频地址。
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "done",
"duration": 15.695,
"data": {
"status": "completed",
"video_url": "https://example.com/output.mp4",
"duration": 15.695
}
},
"usage": {
"points_cost": 31.39,
"actual_points": 31.39
}
}
}| 字段 | 说明 |
|---|---|
result.status | 任务状态,常见值:running、done、failed。 |
result.duration | 平台识别到的视频时长,单位秒。 |
result.data.video_url | 生成后的视频地址;实际字段以返回结果为准。 |
usage.actual_points | 任务实际扣费点数。 |
失败响应
{
"code": 0,
"msg": "任务不存在",
"data": []
}常见错误:
| HTTP | code | 说明 |
|---|---|---|
| 400 | invalid_request | task_id 缺失或格式错误。 |
| 401 | auth_failed | API Key 缺失或无效。 |
| 403 | permission_denied | 当前 API Key 无权查询该任务。 |
| 404 | not_found | 任务不存在或不属于当前租户。 |
| 5xx | server_error | 服务异常,请稍后重试。 |
接口 18动作迁移提交任务
POST /api/v1/apps/action_transfer/submit
动作迁移提交任务
提交动作迁移异步任务。接口接收一张或多张参考人物图片、一个输入视频、可选提示词、生成模式和处理人数,返回平台任务 ID。任务完成后使用“动作迁移 · 查询任务”接口获取结果。
接口地址
POST /api/v1/apps/action_transfer/submit鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json计费说明
本接口按输入视频时长计费。平台会优先使用请求中的 duration,未传时会从 video_url 探测视频秒数。
| mode | 计费单位 | 默认价格 |
|---|---|---|
fast | 输入视频秒 | 1 点/秒 |
standard | 输入视频秒 | 2 点/秒 |
max | 输入视频秒 | 3 点/秒 |
实际扣费以当前租户 SKU 售价为准。提交成功时会先冻结预估点数,任务完成后按实际输入视频时长结算。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
type | string | 否 | action_transfer | 固定值;不传时平台会按当前应用补齐。 |
file_url | string / array | 是 | - | 参考人物图片 URL。单图传字符串,多图参考传 URL 数组。 |
video_url | string | 是 | - | 输入视频 URL,也是本接口计费时长来源。 |
prompt | string | 否 | - | 提示词,例如动作、人物、场景补充描述。 |
mode | string | 否 | standard | 生成模式:fast、standard、max。 |
face_count | integer | 否 | 1 | 处理人数,取值范围 1 到 7。 |
duration | number | 否 | - | 输入视频时长,单位秒;通常可不传,由平台自动探测。 |
请求示例
单图参考:
{
"type": "action_transfer",
"file_url": "https://example.com/person.png",
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "standard",
"face_count": 1
}多图参考:
{
"type": "action_transfer",
"file_url": [
"https://example.com/person-1.png",
"https://example.com/person-2.png"
],
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "max",
"face_count": 2
}cURL 示例
curl -X POST "https://你的域名/api/v1/apps/action_transfer/submit" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"type": "action_transfer",
"file_url": "https://example.com/person.png",
"video_url": "https://example.com/input.mp4",
"prompt": "一个女生在跳舞",
"mode": "standard",
"face_count": 1
}'成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "processing",
"app": "action_transfer",
"api": "submit",
"frozen_points": 31.39,
"actual_points": 0,
"created_at": "2026-06-25T00:00:00Z"
}
}| 字段 | 说明 |
|---|---|
data.task_id | 平台任务 ID,查询任务时传入。 |
data.status | 平台任务状态,提交成功通常为 processing。 |
data.frozen_points | 本次任务预冻结点数。 |
data.actual_points | 已实际结算点数;任务完成前通常为 0。 |
失败响应
{
"code": 0,
"msg": "face_count 必须为 1 到 7 的整数",
"data": []
}常见错误:
| HTTP | code | 说明 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误。 |
| 400 | billing_duration_unresolved | 无法解析输入视频时长,可显式传入 duration 后重试。 |
| 400 | billing_sku_unmatched | mode 未命中可用 SKU。 |
| 401 | auth_failed | API Key 缺失或无效。 |
| 402 | insufficient_points | 用户或租户点数不足。 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足。 |
| 403 | permission_denied | 当前 API Key 无权调用应用 API。 |
| 404 | not_found | 应用、API 或任务不存在。 |
| 429 | queue_limit_exceeded | 应用排队任务已达上限。 |
接口 19动作迁移查询任务
POST /api/v1/apps/action_transfer/query
动作迁移查询任务
根据提交接口返回的 task_id 查询动作迁移任务状态、生成结果与计费信息。查询接口不重复计费。
接口地址
POST /api/v1/apps/action_transfer/query鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 提交任务接口返回的平台任务 ID,例如 task_xxxxxxxxxxxxxxxx。 |
请求示例
{
"task_id": "task_xxxxxxxxxxxxxxxx"
}cURL 示例
curl -X POST "https://你的域名/api/v1/apps/action_transfer/query" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"task_id": "task_xxxxxxxxxxxxxxxx"
}'成功响应
处理中:
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "running",
"duration": 0
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}完成后:
任务完成后,result 中会返回生成结果地址。不同上游可能返回 video_url、output_url、url 或 results 数组;平台会尽量归一化为可直接访问的视频地址。
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "done",
"duration": 15.695,
"data": {
"status": "completed",
"video_url": "https://example.com/output.mp4",
"duration": 15.695
}
},
"usage": {
"points_cost": 31.39,
"actual_points": 31.39
}
}
}| 字段 | 说明 |
|---|---|
result.status | 任务状态,常见值:running、done、failed。 |
result.duration | 平台识别到的视频时长,单位秒。 |
result.data.video_url | 生成后的视频地址;实际字段以返回结果为准。 |
usage.actual_points | 任务实际扣费点数。 |
失败响应
{
"code": 0,
"msg": "任务不存在",
"data": []
}常见错误:
| HTTP | code | 说明 |
|---|---|---|
| 400 | invalid_request | task_id 缺失或格式错误。 |
| 401 | auth_failed | API Key 缺失或无效。 |
| 403 | permission_denied | 当前 API Key 无权查询该任务。 |
| 404 | not_found | 任务不存在或不属于当前租户。 |
| 5xx | server_error | 服务异常,请稍后重试。 |
接口 20全能视频生成提交任务
POST /api/v1/apps/full_video/submit
全能视频生成提交任务
提交后保存平台 task_id,并通过本应用的查询接口读取任务状态和视频结果。
鉴权与路径
POST /api/v1/apps/full_video/submit
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json顶层参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 否 | full-video | 固定为 full-video。 |
content | array | 是 | - | 多模态内容数组,必须至少有一个非空 text 项。 |
resolution | string | 否 | 480P | 输出分辨率:480P、768P 或 2K。 |
duration | integer | 否 | 4 | 输出视频时长,支持 4 至 15 的整数秒。 |
ratio | string | 否 | 16:9 | 视频画幅比例;图生视频和参考生成可使用 adaptive。 |
aigc_watermark | boolean | 否 | false | 是否添加生成标识。 |
callback_url | string | 否 | - | HTTPS 地址;任务终态时由平台通知。 |
计费说明
平台先按 resolution 命中分辨率 SKU,再以请求的 duration 作为秒数计量。价格由当前租户为对应 SKU 配置的售价决定:
resolution | 计费规格 |
|---|---|
480P | 480P 按秒 SKU |
768P | 768P 按秒 SKU |
2K | 2K 按秒 SKU |
提交时平台按 duration × 当前 SKU 单价 + 超额参考图片附加点数 冻结点数,完成后按该任务创建时的价格快照结算。默认前 5 张 reference_image 免费,超出部分每张加 20 点;实际免费数量和附加点数以当前应用配置为准。首帧和尾帧不计入参考图片附加项。不同租户可分别配置各分辨率 SKU 的售价;调用方应通过价格查询接口或租户后台读取当前实际售价。
content 元素
媒体地址写入与类型同名的对象中,例如图片地址为 image_url.url。媒体 URL 必须能被服务访问。
type | 必填字段 | 支持的 role | 限制与说明 |
|---|---|---|---|
text | text | 不填写 | 每次请求至少一个非空文本项;所有文本项总长度最多 7000 字符。 |
image_url | image_url.url | first_frame、last_frame、reference_image | 首帧最多 1 张,尾帧最多 1 张,参考图最多 9 张。首帧、尾帧可单独或组合使用。 |
video_url | video_url.url | reference_video | 仅用于参考生成,最多 3 个。 |
audio_url | audio_url.url | reference_audio | 仅用于参考生成,最多 3 个。 |
首帧/尾帧模式与参考媒体模式互斥:出现任意 reference_image、reference_video 或 reference_audio 时,不能同时出现 first_frame 或 last_frame。参考生成不能只传音频,至少需要 1 张参考图或 1 个参考视频。
场景与示例
文本生视频
{
"model": "full-video",
"content": [
{"type": "text", "text": "一只小狗在草地上奔跑,真实自然"}
],
"resolution": "480P",
"duration": 4,
"ratio": "16:9",
"aigc_watermark": false
}首帧生视频
{
"model": "full-video",
"content": [
{"type": "text", "text": "一只小狗从画面左侧开心地跑向镜头,保持首帧小狗外观,真实自然,有环境音"},
{"type": "image_url", "image_url": {"url": "https://example.com/first_frame.png"}, "role": "first_frame"}
],
"resolution": "480P",
"duration": 4,
"ratio": "adaptive",
"aigc_watermark": false
}尾帧生视频
尾帧可以单独使用,也可以与首帧组合使用。
{
"model": "full-video",
"content": [
{"type": "text", "text": "一只小狗在草地上奔跑,最后定格成尾帧图片中的构图,真实自然,有轻快环境音"},
{"type": "image_url", "image_url": {"url": "https://example.com/last_frame.png"}, "role": "last_frame"}
],
"resolution": "480P",
"duration": 4,
"ratio": "adaptive",
"aigc_watermark": false
}首尾帧生视频
{
"model": "full-video",
"content": [
{"type": "text", "text": "一只小狗从首帧位置跑到尾帧位置,动作连贯,镜头稳定,真实自然,有环境音"},
{"type": "image_url", "image_url": {"url": "https://example.com/first_frame.png"}, "role": "first_frame"},
{"type": "image_url", "image_url": {"url": "https://example.com/last_frame.png"}, "role": "last_frame"}
],
"resolution": "480P",
"duration": 4,
"ratio": "adaptive",
"aigc_watermark": false
}多模态参考生成
{
"model": "full-video",
"content": [
{"type": "text", "text": "参考 <Picture 1> 的小狗形象、参考 <Video 1> 的运动节奏、参考 <Audio 1> 的声音氛围,生成一只小狗在画面中轻快奔跑的短视频"},
{"type": "image_url", "image_url": {"url": "https://example.com/ref_image.png"}, "role": "reference_image"},
{"type": "video_url", "video_url": {"url": "https://example.com/ref_video.mp4"}, "role": "reference_video"},
{"type": "audio_url", "audio_url": {"url": "https://example.com/ref_audio.wav"}, "role": "reference_audio"}
],
"resolution": "480P",
"duration": 4,
"ratio": "adaptive",
"aigc_watermark": false
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "pending",
"app": "full_video",
"api": "submit",
"actual_points": 0,
"created_at": "2026-08-04T00:00:00Z"
}
}data.task_id 是平台任务 ID。提交成功后保存它,并调用“全能视频生成 · 查询任务”接口。
常见错误
| HTTP | code | 说明 |
|---|---|---|
| 400 | invalid_request | content 结构、媒体数量、文本长度、时长或模式组合不合法。 |
| 401 | auth_failed | API Key 缺失或无效。 |
| 402 | insufficient_points | 用户或租户点数不足。 |
| 403 | permission_denied | 当前 API Key 无权调用应用 API。 |
| 404 | not_found | 应用或 API 未上架、未配置价格或不存在。 |
| 429 | queue_limit_exceeded | 应用排队任务已达上限。 |
接口 21全能视频生成查询任务
POST /api/v1/apps/full_video/query
全能视频生成查询任务
全能视频生成使用独立的应用查询接口;查询接口不重复计费。
鉴权与路径
POST /api/v1/apps/full_video/query
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求参数
task_id 与 elastic_task_id 二选一。通常直接保存并传回提交接口返回的 task_id。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 二选一 | 提交接口返回的平台任务 ID,例如 task_xxxxxxxxxxxx。 |
elastic_task_id | integer | 二选一 | 兼容弹性任务数字 ID;常规接入不需要传。 |
{
"task_id": "task_xxxxxxxxxxxx"
}成功响应
任务等待或运行中时:
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "running"
},
"usage": {
"points_cost": 0,
"actual_points": 0
}
}
}任务完成后,机器返回的结果位于 data.result.data。视频结果的具体字段由当前部署版本决定;调用方应保存完整 data.result,并从其中的结果地址字段读取视频。
{
"code": 1,
"msg": "success",
"data": {
"result": {
"task_id": "task_xxxxxxxxxxxx",
"status": "done",
"mode": "async_query",
"remote_task_id": "xxxxxxxxxxxxxxxx",
"data": {
"status": "completed",
"output_url": "https://example.com/output.mp4",
"progress": 100
}
}
}
}| 字段 | 说明 |
|---|---|
data.result.task_id | 平台任务 ID,与提交响应一致。 |
data.result.status | 任务状态;常见为 pending、running、done 或 error。 |
data.result.remote_task_id | 任务已进入部署服务后可能返回的内部任务标识。 |
data.result.data | 完成后的机器结果;视频地址通常在其中的 output_url 或同等结果字段。 |
data.usage.actual_points | 任务实际扣费点数。 |
接口 22音色修改、AI翻唱提交任务
POST /api/v1/apps/seedsvc/submit
音色修改、AI翻唱提交任务
创建一条弹性 GPU 任务,返回平台任务 id
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 音色修改、AI翻唱 |
| 应用编码 | seedsvc |
| API 名称 | 提交任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/seedsvc/submit |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/seedsvc/submit该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
mode | string | 否 | async_query | — | — | 任务模式,默认 async_query |
ref_audio | string | 是 | — | — | https://example.com/target_voice.wav | 目标音色参考音频 URL |
source_audio | string | 是 | — | — | https://example.com/original_song.wav | 原始音频文件 URL,需要转换音色的音频 |
请求示例
{
"mode": "async_query",
"ref_audio": "https://example.com/target_voice.wav",
"source_audio": "https://example.com/original_song.wav"
}成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}查询任务结果
GET /api/v1/tasks/{task_id}{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 23音色修改、AI翻唱查询任务
POST /api/v1/apps/seedsvc/query
音色修改、AI翻唱查询任务
按弹性任务 id 查询状态与结果
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 音色修改、AI翻唱 |
| 应用编码 | seedsvc |
| API 名称 | 查询任务 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/seedsvc/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/seedsvc/query业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | integer | 否 | — | — | — | 同 elastic_task_id |
elastic_task_id | integer | 否 | — | — | — | 弹性任务 id(与 task_id 二选一) |
请求示例
{
"task_id": 1,
"elastic_task_id": 1
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 24视频超分提交任务
POST /api/v1/apps/flashvsr/submit
视频超分提交任务
创建一条弹性 GPU 任务,返回平台任务 id
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 视频超分 |
| 应用编码 | flashvsr |
| API 名称 | 提交任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/flashvsr/submit |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/flashvsr/submit该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
mode | string | 否 | async_query | — | — | 任务模式,默认 async_query |
input_url | string | 是 | — | — | https://example.com/low_res_video.mp4 | 输入视频文件 URL,待超分辨率处理的视频 |
请求示例
{
"mode": "async_query",
"input_url": "https://example.com/low_res_video.mp4"
}成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}查询任务结果
GET /api/v1/tasks/{task_id}{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 25视频超分查询任务
POST /api/v1/apps/flashvsr/query
视频超分查询任务
按弹性任务 id 查询状态与结果
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 视频超分 |
| 应用编码 | flashvsr |
| API 名称 | 查询任务 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/flashvsr/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/flashvsr/query业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | integer | 否 | — | — | — | 同 elastic_task_id |
elastic_task_id | integer | 否 | — | — | — | 弹性任务 id(与 task_id 二选一) |
请求示例
{
"task_id": 1,
"elastic_task_id": 1
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 26水印消除去除水印
POST /api/v1/apps/watermark_removal/remove
水印消除去除水印
输入短视频分享链接,返回无水印视频地址
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 去除水印 |
| API 编码 | remove |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/remove |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/remove业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
url | string | 是 | — | — | https://example.com/s/xxxxx/ | 短视频分享链接(各主流平台) |
请求示例
{
"url": "https://example.com/s/xxxxx/"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 27水印消除红薯详情
POST /api/v1/apps/watermark_removal/xhs_note_detail
水印消除红薯详情
笔记详情
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 红薯详情 |
| API 编码 | xhs_note_detail |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/xhs_note_detail |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/xhs_note_detail业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
noteId | string | 是 | — | — | 69db4372000000002103a442 | 笔记 ID(与分享链接中 id 一致) |
请求示例
{
"noteId": "69db4372000000002103a442"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 28水印消除用户笔记
POST /api/v1/apps/watermark_removal/xhs_user_note_list
水印消除用户笔记
用户笔记列表
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 用户笔记 |
| API 编码 | xhs_user_note_list |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/xhs_user_note_list |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/xhs_user_note_list业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
cursor | string | 否 | — | — | — | 翻页游标,取自上一页笔记项中的 cursor |
userId | string | 是 | — | — | 5f85aabb0000000001006faf | 笔记侧用户 ID(userid) |
lastCursor | string | 否 | — | — | — | 上一页末条目的分页游标(可选),也可用 last_cursor |
请求示例
{
"cursor": "string",
"userId": "5f85aabb0000000001006faf",
"lastCursor": "string"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 29水印消除抖音用户作品
POST /api/v1/apps/watermark_removal/douyin_user_video_list
水印消除抖音用户作品
用户作品列表
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 抖音用户作品 |
| API 编码 | douyin_user_video_list |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/douyin_user_video_list |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/douyin_user_video_list业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
secUid | string | 是 | — | — | MS4wLjABAAAA... | 用户 secUid(短视频侧),也可用 sec_uid |
maxCursor | string | 否 | — | — | 0 | 翻页游标,下一页请求时传入(可选),也可用 max_cursor |
请求示例
{
"secUid": "MS4wLjABAAAA...",
"maxCursor": "0"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 30水印消除红薯用户
POST /api/v1/apps/watermark_removal/xhs_user_detail
水印消除红薯用户
红薯用户详情
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 红薯用户 |
| API 编码 | xhs_user_detail |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/xhs_user_detail |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/xhs_user_detail业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
userId | string | 是 | — | — | 5aed3d724eacab31d35121d0 | 小红书用户 ID(userid) |
请求示例
{
"userId": "5aed3d724eacab31d35121d0"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 31水印消除抖音视频详情
POST /api/v1/apps/watermark_removal/douyin_video_detail
水印消除抖音视频详情
视频详情
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 抖音视频详情 |
| API 编码 | douyin_video_detail |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/douyin_video_detail |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/douyin_video_detail业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
videoId | string | 是 | — | — | 7588740680004963593 | 短视频作品 ID,也可用 video_id |
请求示例
{
"videoId": "7588740680004963593"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 32水印消除抖音搜索视频
POST /api/v1/apps/watermark_removal/douyin_search_video
水印消除抖音搜索视频
视频搜索
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 抖音搜索视频 |
| API 编码 | douyin_search_video |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/douyin_search_video |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/douyin_search_video业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
page | string | 否 | — | — | 1 | 页码(可选) |
keyword | string | 是 | — | — | Destiny | 搜索关键词 |
searchId | string | 否 | — | — | — | 搜索会话标识,翻页等场景使用(可选),也可用 search_id |
请求示例
{
"page": "1",
"keyword": "Destiny",
"searchId": "string"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 33水印消除小红书笔记搜索
POST /api/v1/apps/watermark_removal/xhs_search_note
水印消除小红书笔记搜索
小红书笔记搜索
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 水印消除 |
| 应用编码 | watermark_removal |
| API 名称 | 小红书笔记搜索 |
| API 编码 | xhs_search_note |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/watermark_removal/xhs_search_note |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/watermark_removal/xhs_search_note业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
page | string | 否 | — | — | 1 | 页码,默认 1 |
sort | string | 否 | — | general / popularity_descending / time_descending / comment_descending / collect_descending | general | 排序:general / popularity_descending / time_descending / comment_descending / collect_descending |
keyword | string | 是 | — | — | 护肤 | 搜索关键词 |
noteTime | string | 否 | — | — | — | 发布时间筛选(按服务约定传值),也可用 note_time |
noteType | string | 否 | — | — | _0 | 笔记类型:_0 通用 / _1 视频 / _2 图文,也可用 note_type |
请求示例
{
"page": "1",
"sort": "general",
"keyword": "护肤",
"noteTime": "string",
"noteType": "_0"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 34数字人对口型提交任务
POST /api/v1/apps/lipsync/submit
数字人对口型提交任务
创建一条数字人对口型任务,返回平台任务 ID
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 数字人对口型 |
| 应用编码 | lipsync |
| API 名称 | 提交任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/lipsync/submit |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/lipsync/submit该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
mode | string | 否 | async_query | — | — | 任务模式,默认 async_query |
model | string | 否 | xiaojiayu1.0 | — | — | 数字人模型标识,支持 xiaojiayu1.0、xiaojiayu2.0、xiaojiayu3.0 及对应简写 |
audio_url | string | 是 | — | — | https://example.com/speech.wav | 输入音频文件 URL(驱动口型的语音) |
video_url | string | 是 | — | — | https://example.com/avatar_video.mp4 | 输入视频文件 URL(数字人原始视频) |
请求示例
{
"mode": "async_query",
"model": "xiaojiayu1.0",
"audio_url": "https://example.com/speech.wav",
"video_url": "https://example.com/avatar_video.mp4"
}成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}查询任务结果
GET /api/v1/tasks/{task_id}{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 35数字人对口型查询任务
POST /api/v1/apps/lipsync/query
数字人对口型查询任务
按平台任务 ID 查询状态与结果
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 数字人对口型 |
| 应用编码 | lipsync |
| API 名称 | 查询任务 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/lipsync/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/lipsync/query业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | string | 是 | — | — | tsk_xxxxxxxxxxxxxxxx | 提交接口返回的平台任务 ID |
请求示例
{
"task_id": "tsk_xxxxxxxxxxxxxxxx"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 36AI换装提交换装任务
POST /api/v1/apps/dressing_diffusion/submit
AI换装提交换装任务
提交图片换装任务,返回 task_id 用于查询结果
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | AI换装 |
| 应用编码 | dressing_diffusion |
| API 名称 | 提交换装任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/dressing_diffusion/submit |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/dressing_diffusion/submit该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
garment | object | 是 | — | — | — | 服装配置。格式:{"data": [{"category": "upper", "url": "服装图URL"}, ...]}。category 可选值:upper(上衣)、bottom(下装)、full(连衣裙/全身装)。支持单件或上下套装组合,服装图建议白底平铺。 |
model_url | string | 是 | — | JPG / PNG | https://example.com/model.jpg | 模特图片 URL,建议主体清晰、光线均匀的正面或半身模特图。格式:JPG/PNG |
请求示例
{
"garment": {},
"model_url": "https://example.com/model.jpg"
}成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}查询任务结果
GET /api/v1/tasks/{task_id}{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 37AI换装查询换装结果
POST /api/v1/apps/dressing_diffusion/query
AI换装查询换装结果
根据 task_id 查询换装任务状态和结果图片
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | AI换装 |
| 应用编码 | dressing_diffusion |
| API 名称 | 查询换装结果 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/dressing_diffusion/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/dressing_diffusion/query业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | string | 是 | — | — | 7xxxxxxxxxxxxxx | 提交换装任务时返回的任务 ID |
请求示例
{
"task_id": "7xxxxxxxxxxxxxx"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 38音效生成、视频配音提交任务
POST /api/v1/apps/mmaudio/submit
音效生成、视频配音提交任务
创建一条弹性 GPU 任务,返回平台任务 id
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 音效生成、视频配音 |
| 应用编码 | mmaudio |
| API 名称 | 提交任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/mmaudio/submit |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/mmaudio/submit该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
mode | string | 否 | async_query | — | — | 任务模式,默认 async_query |
audio_url | string | 否 | — | — | https://example.com/reference_audio.wav | 可选的输入音频 URL,用于参考配音风格 |
input_url | string | 是 | — | — | https://example.com/silent_video.mp4 | 输入视频文件 URL |
duration | number | 否 | 自动探测 | — | 15.695 | 输入视频时长,单位秒;通常可不传,由平台从 input_url 探测 |
prompt | string | 否 | 系统默认提示词 | — | Generate natural cinematic sound effects and ambience for this video. | 音频生成提示词,用于描述期望的音效、环境声或配乐风格 |
请求示例
{
"mode": "async_query",
"audio_url": "https://example.com/reference_audio.wav",
"input_url": "https://example.com/silent_video.mp4",
"duration": 15.695,
"prompt": "Generate natural cinematic sound effects and ambience for this video."
}成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}查询任务结果
GET /api/v1/tasks/{task_id}{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 39音效生成、视频配音查询任务
POST /api/v1/apps/mmaudio/query
音效生成、视频配音查询任务
按弹性任务 id 查询状态与结果
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | 音效生成、视频配音 |
| 应用编码 | mmaudio |
| API 名称 | 查询任务 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/mmaudio/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/mmaudio/query业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
task_id | integer | 否 | — | — | — | 同 elastic_task_id |
elastic_task_id | integer | 否 | — | — | — | 弹性任务 id(与 task_id 二选一) |
请求示例
{
"task_id": 1,
"elastic_task_id": 1
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 402 | key_quota_exceeded | 当前 API Key 点数额度不足 |
| 403 | permission_denied | 当前 API Key 无权调用该模型/应用 |
| 404 | not_found | 模型 / 应用 / 任务不存在 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error | 服务异常,请稍后重试 |
接口 40Happy Horse提交任务
GET /api/v1/tasks/{task_id}`**
Happy Horse提交任务
创建文生视频、图生视频或多参考图生成任务。提交后为异步:响应返回平台 task_id,请通过本应用 **query 或 GET /api/v1/tasks/{task_id}** 查询进度与结果。
平台需在应用管理中配置可用的 服务地址 与 API 密钥;未配置时返回 app_not_configured。
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | Happy Horse |
| 应用编码 | happy_horse |
| API 名称 | 提交任务 |
| API 编码 | submit |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/happy_horse/submit |
| 调用模式 | 异步(返回 task_id,可 query 或 GET /api/v1/tasks/{task_id} 查询) |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/happy_horse/submit能力与 model / media
| 场景 | model | media 要求 |
|---|---|---|
| 文生视频 | happyhorse-1.1-t2v | 不要传图片、视频 |
| 单图首帧图生 | happyhorse-1.1-i2v | 恰好一张 image |
| 多参考图生成 | happyhorse-1.1-r2v | 1~9 张 image(建议至少两张),不要混入视频 |
| 视频编辑 | happyhorse-1.0-video-edit | 恰好 1 个 video,可附 0~5 张 image |
model 决定生成能力,不需要再传 mode。平台兼容接收 happyhorse-1.1-video-edit,提交时会归一为百炼实际模型 happyhorse-1.0-video-edit。
所有参考素材统一放在 **media** 数组里,每项为 { "url": "https://...", "type": "image" } 或 { "url": "https://...", "type": "video" };type 可省略,系统会按 URL 扩展名推断。图片建议使用 JPG/JPEG/PNG/BMP/WEBP,视频请使用公网可访问地址。
业务参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 能力代号。支持:happyhorse-1.1-t2v、happyhorse-1.1-i2v、happyhorse-1.1-r2v、happyhorse-1.0-video-edit |
prompt | string | 是 | 画面、镜头、风格与对白等描述;最多 2500 字,不能为空 |
resolution | string | 是 | 目标分辨率。支持:720P、1080P(也接受 720p / 1080p,平台会归一) |
duration | number | 是 | 目标生成时长(秒),整数。文生、图生、多参考支持 3~15;视频编辑时长由输入视频决定,但本平台仍按请求时长/矩阵计费 |
ratio | string | 否 | 画幅比例。文生和多参考支持:16:9、9:16、1:1、4:3、3:4;单图首帧不需要传 |
seed | number | 否 | 随机种子,支持 0~2147483647 的整数;不传则随机 |
watermark | boolean | 否 | 是否添加水印。支持:true、false;不传默认 true |
audio_setting | string | 否 | 视频编辑音频处理。支持:auto、origin |
media | array | 否 | 统一参考素材数组。每项包含 url,可选 type(image/video)。文生不传;单图首帧传 1 张 image;多参考传 1~9 张 image;视频编辑传 1 个 video,可附 0~5 张 image |
media 子字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
media[].url | string | 是 | 素材 URL,需为公网可访问地址 |
media[].type | string | 否 | 素材类型。支持:image、video;省略时按 URL 后缀推断 |
**按 model 的补充规则**:
model | media 规则 | 其它规则 |
|---|---|---|
happyhorse-1.1-t2v | 不传 media | 支持 ratio / duration / seed / watermark |
happyhorse-1.1-i2v | 恰好 1 张 image | 不需要传 ratio,画幅由首帧图决定 |
happyhorse-1.1-r2v | 1~9 张 image | 支持 ratio;提示词中可用“图1、图2...”指代素材顺序 |
happyhorse-1.0-video-edit | 恰好 1 个 video,可附 0~5 张 image | 支持 seed / watermark / audio_setting;参考图会按 reference_image 提交 |
请求示例
文生视频
{
"model": "happyhorse-1.1-t2v",
"resolution": "720P",
"duration": 5,
"ratio": "16:9",
"seed": 42,
"watermark": true,
"prompt": "都市夜景,车流水灯,中景推进镜头,对白自然"
}单图首帧
{
"model": "happyhorse-1.1-i2v",
"resolution": "720P",
"duration": 5,
"prompt": "一只猫在草地上奔跑",
"media": [
{
"type": "image",
"url": "https://example.com/first.png"
}
]
}多参考图
{
"model": "happyhorse-1.1-r2v",
"resolution": "720P",
"duration": 5,
"ratio": "16:9",
"prompt": "保持人物与服饰一致,镜头缓慢推进",
"media": [
{
"type": "image",
"url": "https://example.com/ref1.jpg"
},
{
"type": "image",
"url": "https://example.com/ref2.jpg"
}
]
}视频编辑
{
"model": "happyhorse-1.0-video-edit",
"resolution": "720P",
"duration": 3,
"seed": 1234,
"watermark": true,
"audio_setting": "origin",
"prompt": "保持原视频动作和镜头不变,仅将人物替换为参考图中的主体",
"media": [
{
"type": "video",
"url": "https://example.com/input.mp4"
},
{
"type": "image",
"url": "https://example.com/ref.jpg"
}
]
}成功响应
{
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "pending",
"app": "happy_horse",
"api": "submit",
"created_at": "2026-01-01T00:00:00Z"
}常见错误
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 缺 prompt / resolution、媒体与能力不匹配等 |
| 400 | billing_params_unmatched | resolution+duration 未命中任何计费规则 |
| 401 | auth_failed | API Key 无效 |
| 402 | insufficient_points | 点数不足 |
| 404 | not_found | 应用未对租户开放或未配置价格 |
| 502 | app_not_configured | 应用未配置服务地址或密钥 |
第三方返回的业务错误可能以其它 code 出现在 error 对象中,以实际响应为准。
说明
- 冻结与结算点数由 **
resolution+duration** 命中的规则决定;租户可在应用市场调整规则或点数映射。 - 更完整的自动化正文可由
php think ai_developer_doc:sync_from_source --app-id=12 --only=app --force --publish从ai_app_api元数据生成/覆盖本页在库中副本。
接口 41Happy Horse创建任务
GET /api/v1/tasks/{task_id}`**
Happy Horse创建任务
与 **submit 使用完全相同**的请求体格式(DashScope 风格:model、prompt、resolution、duration、ratio、seed、watermark、media)。区别在于本接口 固定走 happyhorse 上游渠道(api-gateway / STS → OSS → **/api/v2/tasks),不参与租户在 submit** 上选择的 DashScope 渠道。
提交后为异步:响应返回平台 task_id,请通过 **query 或 GET /api/v1/tasks/{task_id}** 查询进度与结果。
平台须在应用管理中配置 **api_secret(aorizon Bearer token,用于happyhorse 渠道);可选用 extra_config 覆盖默认网关等业务参数。若未按需配置 happyhorse 渠道,调用会返回与 channel 校验一致的错误。submit 侧使用的 api_key(DashScope)仍用于 DashScope submit** 路径,互不替代。
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | Happy Horse |
| 应用编码 | happy_horse |
| API 名称 | 创建任务 |
| API 编码 | create |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/happy_horse/create |
| 上游渠道 | 固定 **happyhorse**(aorizon) |
| 调用模式 | 异步(返回 task_id,可 query 或 GET /api/v1/tasks/{task_id} 查询) |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json开放平台调用仍使用租户的 平台 API Key;服务端在锁死 happyhorse 渠道时,会使用应用配置中的 **api_secret** 访问上游。
请求路径
POST /api/v1/apps/happy_horse/create能力与 model / media
| 场景 | model | media 要求 |
|---|---|---|
| 文生视频 | happyhorse-1.1-t2v | 不要传图片、视频 |
| 单图首帧图生 | happyhorse-1.1-i2v | 恰好一张 image |
| 多参考图生成 | happyhorse-1.1-r2v | 1~9 张 image(建议至少两张),不要混入视频 |
本接口不支持 happyhorse-1.1-video-edit。若传入该模型,渠道会返回 invalid_request。其它约定与 **submit 文档一致:所有参考素材放在 media** 数组,格式为 { "url": "https://...", "type": "image" }(本渠道 **create** 仅处理图片链路,请勿传 video-edit 或视频素材)。
业务参数
与 **submit 相同字段语义,字段表请直接对齐 [提交任务文档](./api-34-submit.md)。必填/可选、ratio/duration 范围与 submit 一致。差异要点**:
- **
model:仅允许happyhorse-1.1-t2v、happyhorse-1.1-i2v、happyhorse-1.1-r2v;勿传happyhorse-1.1-video-edit**。 - **
seed/watermark**:可传;happyhorse aorizon 流水线当前可作占位,是否透传以实际上线为准(与迁移脚本说明一致)。
请求示例
文生视频
{
"model": "happyhorse-1.1-t2v",
"resolution": "720P",
"duration": 5,
"ratio": "16:9",
"seed": 42,
"watermark": true,
"prompt": "都市夜景,车流水灯,中景推进镜头,对白自然"
}单图首帧
{
"model": "happyhorse-1.1-i2v",
"resolution": "720P",
"duration": 5,
"prompt": "一只猫在草地上奔跑",
"media": [
{
"type": "image",
"url": "https://example.com/first.png"
}
]
}多参考图
{
"model": "happyhorse-1.1-r2v",
"resolution": "720P",
"duration": 5,
"ratio": "16:9",
"prompt": "保持人物与服饰一致,镜头缓慢推进",
"media": [
{
"type": "image",
"url": "https://example.com/ref1.jpg"
},
{
"type": "image",
"url": "https://example.com/ref2.jpg"
}
]
}成功响应
{
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "pending",
"app": "happy_horse",
"api": "create",
"created_at": "2026-01-01T00:00:00Z"
}实际字段以开放平台统一 **AbstractAppDriver / 任务入库封装为准,可能包含等价别名;task_id 可用于 query**。
常见错误
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 缺少必填项、model 为 video-edit、媒体数量与模型不匹配、happhorse 流水线校验失败等 |
| 400 | billing_params_unmatched | resolution + duration(及矩阵维度)未命中 **create** 侧计费矩阵 |
| 401 | auth_failed | 平台 API Key 或上游 api_secret 无效 |
| 402 | insufficient_points | 点数不足 |
| 404 | not_found | 应用未对租户开放或未配置 **create** 价格 |
| 502 | app_not_configured | happyhorse 渠道所需 **api_secret** 或未配置可用的上游参数 |
详见 **submit 页「常见错误」;第三方业务错误仍以实际 error** 响应为准。
说明
- **
create与submit并行存在:前者锁死happyhorse链路,计费矩阵独立**。租户/平台在应用后台可为两者分别编辑「矩阵定价」。 - 更完整的自动化正文可由
php think ai_developer_doc:sync_from_source --app-id=12 --only=app --force --publish从ai_app_api元数据生成或覆盖库存副本。
接口 42Happy Horse查询任务
POST /api/v1/apps/happy_horse/query
Happy Horse查询任务
根据 **submit 或 create 返回的平台** task_id 查询任务状态与结果。本接口为同步调用,不产生新的计费。
任务完成后,结果中可包含 **video_url**(及平台转存后的展示字段,与全站任务查询一致)。
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用名称 | Happy Horse |
| 应用编码 | happy_horse |
| API 名称 | 查询任务 |
| API 编码 | query |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/happy_horse/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/happy_horse/query业务参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | submit 成功返回的平台任务 id(task_…) |
请求示例
{
"task_id": "task_xxxxxxxxxxxxxxxx"
}响应说明
- **
status为processing(或等价进行中状态)**:任务仍在处理,可间隔轮询。 - **
status为completed(或等价成功状态)**:处理完成,响应内带有可播放地址等字段(如video_url,具体以平台任务结果与转存策略为准)。 - **
error**:任务失败或参数错误时返回,含code/message。
示例(进行中,字段名以实际接口为准):
{
"status": "processing",
"task_id": "task_xxxxxxxxxxxxxxxx"
}示例(成功,简化示意):
{
"status": "completed",
"task_id": "task_xxxxxxxxxxxxxxxx",
"video_url": "https://example.com/output.mp4"
}若配置了 **callback_url**,任务终态也会按平台统一规则推送,不必依赖轮询。
常见错误
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 缺少或非法的 task_id |
| 404 | task_not_found | 任务不存在或不属于当前租户 |
| 404 | not_found | 应用未上架或价格未配 |
说明
- 与异步
submit联用时,可轮询本接口;亦可使用 **GET /api/v1/tasks/{task_id}**,与全站任务查询行为对齐(含转存后的展示 URL)。 - 由
php think ai_developer_doc:sync_from_source --app-id=12 --only=app --force --publish可据ai_app_api重生成本页在库中正文。
接口 43Wan 视频生成查询视频任务
GET /api/v1/apps/wan/query?task_id={task_id}
Wan 视频生成查询视频任务
按平台 task_id 查询 Wan 视频任务状态、视频 URL 和计费快照。本接口只读取平台任务表中的数据。
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用编码 | wan |
| API 编码 | query |
| 请求方式 | GET |
| 请求路径 | /api/v1/apps/wan/query |
| 调用模式 | 同步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>请求路径
GET /api/v1/apps/wan/query?task_id={task_id}业务参数
| 参数 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
task_id | string | 是 | task_xxxxxxxxxxxx | 创建接口返回的平台任务 ID |
请求示例
GET /api/v1/apps/wan/query?task_id=task_xxxxxxxxxxxx处理中响应
{
"code": 1,
"msg": "success",
"data": {
"status": "processing"
}
}完成响应
{
"code": 1,
"msg": "success",
"data": {
"status": "completed",
"task_id": "task_xxxxxxxxxxxx",
"model": "wan2.7",
"resolution": "720p",
"duration": 5,
"video_url": "https://example.com/output.mp4",
"data": {
"video_url": "https://example.com/output.mp4"
},
"frozen_points": 717.1,
"actual_points": 717.1
}
}字段说明:
| 字段 | 说明 |
|---|---|
status | processing 表示处理中,completed 表示成功完成 |
video_url | 生成视频地址,优先使用该字段播放或下载 |
data.video_url | 与 video_url 等价,便于兼容不同客户端解析 |
frozen_points | 创建任务时冻结的点数 |
actual_points | 任务完成后实际扣除点数 |
建议客户端每 3 到 5 秒轮询一次;收到 completed 后停止轮询。若创建任务时传入 callback_url,也可以以回调为主、轮询为辅。
失败响应
{
"error": {
"message": "任务不存在或不属于当前租户",
"code": "task_not_found"
}
}常见错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | missing_task_id | 未传任务 ID |
| 401 | auth_failed | API Key 缺失或无效 |
| 404 | task_not_found | 任务不存在或不属于当前租户 |
| 5xx | server_error / task_error | 平台服务异常或任务处理失败 |
接口 44Wan 视频生成创建视频任务
POST /api/v1/apps/wan/create
Wan 视频生成创建视频任务
提交 Wan 模型族视频任务。用户只对接平台统一接口;平台会按 model 选择对应能力,并负责参数过滤、任务入库、扣点冻结和轮询转存。
| 字段 | 内容 |
|---|---|
| 类型 | 应用 API |
| 应用编码 | wan |
| API 编码 | create |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/wan/create |
| 调用模式 | 异步 |
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json请求路径
POST /api/v1/apps/wan/create提交成功后返回平台 task_id。请使用 GET /api/v1/apps/wan/query?task_id={task_id} 查询结果,或在请求中传 callback_url 接收任务完成/失败回调。
模型能力
| model | 场景 | 必填参数 | 说明 |
|---|---|---|---|
wan2.7 | 文生视频 | model, prompt | 不需要素材输入 |
wan2.7-r2v | 角色/参考图生视频 | model, prompt, image_with_roles | 传参考图和图片角色 |
wan2.7-videoedit | 视频编辑 | model, prompt, video_urls | 传待编辑视频 URL,按含视频输入档计费 |
业务参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 示例 | 说明 |
|---|---|---|---|---|---|---|
model | string | 是 | wan2.7 | wan2.7 / wan2.7-r2v / wan2.7-videoedit | wan2.7 | Wan 模型版本,也是能力选择开关 |
prompt | string | 是 | - | - | 一辆复古跑车沿着海岸公路行驶,电影感光影 | 视频画面、动作、镜头、风格描述 |
resolution | string | 否 | 720p | 720p / 1080p | 720p | 输出分辨率,同时参与价格矩阵匹配 |
duration | integer | 否 | 5 | wan2.7/wan2.7-r2v: 2-15;wan2.7-videoedit: 2-10 | 5 | 生成视频时长,单位秒;平台按该值乘以单价扣点 |
size | string | 否 | - | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 | 16:9 | 视频画幅比例 |
image_with_roles | array | wan2.7-r2v 必填 | - | 最多 2 张;role: reference_image / first_frame / last_frame | [{"url":"https://example.com/role.png","role":"reference_image"}] | 参考图列表;每项至少传 url |
image_urls | array | 否 | - | wan2.7 最多 2 张;wan2.7-videoedit 最多 4 张 | ["https://example.com/reference.png"] | 参考图片 URL 列表 |
video_urls | array | wan2.7-videoedit 必填 | - | 最多 1 段 | ["https://example.com/input.mp4"] | 待编辑视频 URL 列表;传入后按 with_video 档位计费 |
audio_url | string | 否 | - | HTTP/HTTPS URL | https://example.com/audio.mp3 | 参考音频 URL |
negative_prompt | string | 否 | - | - | 低清晰度、畸形、闪烁 | 不希望出现在画面中的内容 |
prompt_extend | boolean | 否 | - | true / false | false | 是否启用提示词扩展 |
seed | integer | 否 | - | 0-2147483647 | 42 | 随机种子,用于尽量复现结果 |
watermark | boolean | 否 | - | true / false | false | 是否添加水印 |
callback_url | string | 否 | - | HTTPS URL | https://your-domain.com/webhook/wan | 任务完成或失败时的平台回调地址 |
metadata | object | 否 | - | audio_setting: auto / origin | {"biz_id":"order_1001","audio_setting":"auto"} | 业务透传字段;视频编辑可指定音频处理方式 |
请求示例
文生视频
{
"model": "wan2.7",
"prompt": "一辆复古跑车沿着海岸公路行驶,电影感光影,镜头缓慢推进",
"resolution": "720p",
"duration": 5,
"seed": 42
}角色/参考图生视频
{
"model": "wan2.7-r2v",
"prompt": "让参考图中的人物在城市街头自然行走,保持人物身份一致",
"resolution": "1080p",
"duration": 5,
"image_with_roles": [
{
"url": "https://example.com/role.png",
"role": "reference_image"
}
]
}视频编辑
{
"model": "wan2.7-videoedit",
"prompt": "将视频改成赛博朋克夜景风格,增强霓虹灯和雨夜反光",
"resolution": "720p",
"duration": 5,
"video_urls": [
"https://example.com/input.mp4"
]
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "queued",
"app": "wan",
"api": "create"
}
}计费说明
计费公式:duration × 当前租户价格矩阵单价。
价格矩阵按 model + resolution + 输入类型 匹配。wan2.7-videoedit 因传入 video_urls,会使用 with_video 档位;其它未传视频输入的场景使用 without_video 档位。平台会在提交任务时冻结点数,任务完成后按实际计费结果结算。
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}常见错误码
| HTTP | code | 含义 |
|---|---|---|
| 400 | missing_model / missing_prompt | 必填参数缺失 |
| 400 | unsupported_model | model 不在当前 Wan 版本规格中 |
| 400 | missing_image_with_roles | wan2.7-r2v 未传参考图 |
| 400 | missing_video_urls | wan2.7-videoedit 未传视频素材 |
| 401 | auth_failed | API Key 缺失或无效 |
| 402 | insufficient_points | 点数余额不足 |
| 403 | permission_denied | 当前 API Key 无权调用该应用 |
| 429 | queue_limit_exceeded | 排队任务已达上限 |
| 5xx | server_error / task_error | 平台服务异常或任务处理失败 |
接口 45智能剪辑模板列表
GET /api/v1/apps/smart_clip/template?scene=realMan&pageSize=10&sortBy=desc
智能剪辑模板列表
查询智能剪辑可用模板列表。接口为同步免费查询。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | smart_clip |
| API 编码 | template |
| 请求方式 | GET |
| 请求路径 | /api/v1/apps/smart_clip/template |
| 调用模式 | 同步 |
请求参数
| 参数 | 位置 | 类型 | 必填 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|---|---|
pageSize | query | integer | 否 | 10 | - | 每页大小 |
sid | query | string | 否 | - | - | 分页游标,当有值时代表存在下一页,继续查询下一页时需传入该值 |
scene | query | string | 是 | - | realMan / oralMixCutting / newsMixCutting | 模板使用场景;返回的模板只能提交到对应接口 |
searchKey | query | string | 否 | - | name / id | 搜索字段,name 按名称搜索,id 按模板 ID 搜索 |
searchValue | query | string | 否 | - | - | 搜索值 |
sortBy | query | string | 否 | desc | desc / asc | 排序方式,desc 按上架时间倒序,asc 按上架时间正序 |
scene 枚举
| 值 | 说明 |
|---|---|
realMan | 真人口播模板,对应提交接口 realman_broadcast |
oralMixCutting | 素材混剪模板,对应提交接口 broadcast_mixcut |
newsMixCutting | 新闻混剪模板,对应提交接口 news_mixcut |
请求示例
GET /api/v1/apps/smart_clip/template?scene=realMan&pageSize=10&sortBy=desc
Authorization: Bearer <YOUR_API_KEY>成功响应说明
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
code | string | 是 | 表示本次请求的状态,值为成功状态时表示成功,其他均为失败 |
data | object | 是 | 结果数据 |
data.results | array | 是 | 模板列表 |
data.results[].id | string | 是 | 模板id |
data.results[].name | string | 是 | 模板名称 |
data.results[].coverUrl | string | 是 | 封面url |
data.results[].scene | string | 是 | 场景,枚举同请求参数 scene |
data.results[].demoUrl | string | 是 | 使用该模板生成的视频样片 |
data.sid | string | 否 | 分页游标,当有值时代表存在下一页,继续查询下一页时需传入该值 |
message | string | 否 | 错误描述信息,失败时返回 |
接口 46智能剪辑模板详情
GET /api/v1/apps/smart_clip/template_detail?id=67b7ee802b2beb0030cdeaaf
智能剪辑模板详情
按模板 ID 获取模板结构详情。接口为同步免费查询。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | smart_clip |
| API 编码 | template_detail |
| 请求方式 | GET |
| 请求路径 | /api/v1/apps/smart_clip/template_detail?id={id} |
| 调用模式 | 同步 |
请求参数
| 参数 | 位置 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|---|
id | query | string | 是 | 67b7ee802b2beb0030cdeaaf | 模板id |
请求示例
GET /api/v1/apps/smart_clip/template_detail?id=67b7ee802b2beb0030cdeaaf
Authorization: Bearer <YOUR_API_KEY>成功响应说明
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
code | string | 是 | 表示本次请求的状态,值为成功状态时表示成功,其他均为失败 |
data | object | 是 | 结果数据 |
data.id | string | 是 | 模板id |
data.name | string | 是 | 模板名称 |
data.coverUrl | string | 是 | 封面url |
data.scene | string | 是 | 应用场景,同模板列表接口的 scene |
data.videoStructInfo | object | 是 | 模板结构详情 |
data.videoStructInfo.editInfo | object | 是 | 编辑结构信息 |
data.videoStructInfo.editInfo.canvas.width | integer | 是 | 模板画布尺寸宽 |
data.videoStructInfo.editInfo.canvas.height | integer | 是 | 模板画布尺寸高 |
data.videoStructInfo.editInfo.headerLayer | object | 是 | 标题图层,返回 {} 表示没有相关图层 |
data.videoStructInfo.editInfo.subtitleLayer | object | 是 | 字幕图层,返回 {} 表示没有相关图层 |
data.videoStructInfo.editInfo.ipLayer | object | 是 | 身份栏图层,返回 {} 表示没有相关图层 |
data.videoStructInfo.editInfo.figureLayer | object | 是 | 数字人图层,返回 {} 表示没有相关图层 |
data.videoStructInfo.editInfo.backgroundLayer | object | 是 | 背景图层,返回 {} 表示没有相关图层 |
requestId | string | 是 | 本次请求的唯一标识id |
message | string | 否 | 错误描述信息,失败时返回 |
图层数据结构
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
width | integer | 是 | 图层宽 |
height | integer | 是 | 图层高 |
transform | object | 否 | 图层位置数据 |
transform.anchor | integer[] | 是 | 锚点,辅助定位,不支持修改 |
transform.scalar | integer[] | 是 | 缩放,单位:%,不支持修改 |
transform.position | integer[] | 是 | 锚点定位 |
uri | string | 否 | 背景资源图片,仅背景图层返回 |
接口 47智能剪辑真人口播混剪
POST /api/v1/apps/smart_clip/realman_broadcast
智能剪辑真人口播混剪
提交真人口播混剪视频任务。提交成功后返回平台 task_id。请通过平台任务查询接口获取最终状态与结果,或传入 callbackUrl 接收任务通知。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | smart_clip |
| API 编码 | realman_broadcast |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/smart_clip/realman_broadcast |
| 调用模式 | 异步 |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
styleId | string | 是 | - | - | 视频模板id |
videoUrl | string | 是 | - | mp4 / mov | 视频url。平台会优先探测该媒体时长用于计费 |
language | string | 否 | - | - | 特指视频中(videoUrl)对应的语种,音频驱动时需要传音频中内容的语种,语种参考ASR支持的语种 |
title | string | 否 | - | - | 标题;如果期望生成的视频不显示标题,请不要设置标题值 |
subtitle | array | 否 | - | - | 字幕信息(兼容subtitles字段),用于填充语音识别(ASR)后的结果;每项包含 startMs、endMs、text |
materials | array | 否 | - | image / video | 素材,素材格式要求详见素材要求;每项包含 type、fileUrl |
materialSoundSwitch | boolean | 否 | false | true / false | 当素材为视频时原声开关 |
introduceCard | object | 否 | - | - | 身份栏信息,包含 name、description |
packRules | object | 否 | - | - | 包装规则:仅用于控制标题、素材、字幕、关键词、背景音乐等图层是否参与效果包装 |
processRules | object | 否 | - | - | 处理规则,支持 watermarkShow、resourcePreprocessMethod、materialMatchWay、metadata、firstFrameCover |
structLayers | array | 否 | - | - | 需要修改的图层数据 |
callbackUrl | string | 否 | - | HTTPS URL | 结果回调地址 |
特殊字段说明
subtitle(字幕信息)
- 选填,不设置则由系统智能处理。
- 如果期望手动修改从视频中识别的文字,可以先调用音频转文字(ASR)接口识别出文本信息,更改其中的文字,然后保持 ASR 返回的格式设置到该字段。
processRules.resourcePreprocessMethod(真人视频预处理方式)
- 选填,不设置真人视频预处理方式时,默认保持原始视频时长。
roughCut:粗剪,按照系统内置规则智能处理,例如自动去掉无声片段等。sliceMerge:按照subtitle字段中标注的开始/结束时间,自动去掉不连续时间范围的片段。
processRules
| 字段 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
watermarkShow | boolean | 否 | false | true / false | 是否添加“AI生成”字样水印 |
resourcePreprocessMethod | string | 否 | - | sliceMerge / roughCut | 真人视频预处理方式,不设置时默认保持原始视频时长 |
materialMatchWay | string | 否 | preciseMatch | fuzzyMatch / preciseMatch | 素材匹配方式 |
metadata | object | 否 | - | - | 元水印数据,仅支持写入一组数据,且 value 值需为字符串 |
firstFrameCover | object | 否 | - | - | 首帧封面配置 |
重要规则
- 视频驱动的
videoUrl、素材materials[].fileUrl、背景音乐packRules.backgroundMusic.audioUrl、AI 封面的resultImageUrl地址不能重名,重名会导致渲染异常。 packRules仅用于控制标题、字幕、素材、背景音乐、关键词等图层是否参与效果包装,不能控制对应图层的显示/隐藏。- 如果期望生成的视频不显示标题,请不要设置标题值。
callbackUrl作为平台任务通知地址保存,任务完成或失败后由平台发起通知。- 如无法解析有效输入媒体时长,本次请求会被拒绝,不使用默认时长。
通用对象字段
subtitle[]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
startMs | integer | 是 | 时间戳开始,单位 ms |
endMs | integer | 是 | 时间戳结束,单位 ms,最大支持 310000ms |
text | string | 是 | 文本,只支持单字符级别 |
materials[]
| 字段 | 类型 | 必填 | 可选值 / 默认值 | 说明 |
|---|---|---|---|---|
type | string | 是 | image / video | 素材类型 |
fileUrl | string | 是 | - | 素材url |
soundSwitch | boolean | 否 | false | 当素材为视频时原声开关,素材混剪和新闻体视频支持 |
introduceCard
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 否 | 名称 |
description | string | 否 | 描述 |
packRules
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
headerSwitch | boolean | 否 | - | 标题包装开关 |
materialSwitch | boolean | 否 | - | 素材包装开关 |
subtitleSwitch | boolean | 否 | - | 字幕包装开关 |
keywordSwitch | boolean | 否 | - | 关键词包装开关 |
backgroundMusic | object | 否 | - | 背景音乐设置 |
backgroundMusic.audioSwitch | boolean | 否 | - | 音乐开关 |
backgroundMusic.audioUrl | string | 否 | - | 音频url,模板内置背景音乐和传递audioUrl,优先使用audioUrl |
backgroundMusic.volume | number | 否 | 0.3 | 音量,保留一位小数,范围 0-1 |
processRules.firstFrameCover
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
coverSwitch | boolean | 否 | false | 封面开关 |
templateId | string | 否 | - | 模版ID,如果未设置则系统匹配 |
imageUrl | string | 否 | - | 图片地址,用于生成AI封面图的底图,imageUrl 和 resultImageUrl 二选一必填 |
resultImageUrl | string | 否 | - | 图片生成接口的结果图片地址或其他封面图片地址;传了此值将直接运用作为视频首桢封面,优先级更高 |
structLayers[]
| 字段 | 类型 | 必填 | 可选值 | 说明 |
|---|---|---|---|---|
markCode | string | 是 | headerLayer / subtitleLayer / ipLayer / backgroundLayer / figureLayer | 图层,对应模板详情接口返回的图层数据 |
show | boolean | 否 | - | 是否显示,不设置时默认跟随模板;backgroundLayer、figureLayer 不支持设置,默认显示 |
showMode | string | 否 | always / customize | 显示模式,markCode=headerLayer 时生效,不设置时默认跟随模板 |
showTime | number | 条件必填 | 大于 0 | 显示时长,markCode=headerLayer 且 showMode=customize 时生效且必填,保留 3 位小数 |
layer.transform.position | integer[] | 否 | - | 锚点定位,对应模板详情 transform.position |
layer.uri | string | 否 | - | 背景图片资源链接,仅 backgroundLayer 生效 |
素材与媒体要求
- 输入视频格式:mp4、mov;视频编码 h264、HEVC(h265);帧率 10-60fps,推荐 25;单边分辨率小于 2000px。
- 真人口播
videoUrl时长小于 5 分钟,文件大小小于 500MB,视频中的音频需要能够语音转文本。 - 素材总量限制:单张图片计算为 2 秒,单个视频素材不能超过 60 秒,所有素材总时长不能超过 5 分钟。
- 素材图片格式支持 jpg、png、webp 静态图,单边分辨率小于 2000px。
- 素材视频格式支持 mp4、mov,单个视频小于 500MB,单边分辨率小于 2000px。
- 背景音乐格式支持 mp3、wav、m4a,文件大小不超过 120MB,时长不超过 5 分钟。
- 首帧封面
imageUrl、resultImageUrl格式支持 jpg/jpeg、png,文件大小不超过 10MB,单边分辨率小于 2000px。
请求示例
{
"styleId": "68aebb91b8619ed6f4168f40",
"videoUrl": "https://example.com/a.mp4",
"title": "聊AI行业",
"language": "zh-CN",
"materials": [
{"type": "image", "fileUrl": "https://example.com/a.jpg"},
{"type": "video", "fileUrl": "https://example.com/b.mp4"}
],
"materialSoundSwitch": false,
"introduceCard": {
"name": "廖志勇",
"description": "AI行业领军人物"
},
"packRules": {
"headerSwitch": true,
"materialSwitch": true,
"subtitleSwitch": true,
"keywordSwitch": true,
"backgroundMusic": {
"audioSwitch": true,
"audioUrl": "https://example.com/bg.mp3",
"volume": 1
}
},
"processRules": {
"watermarkShow": true,
"resourcePreprocessMethod": "roughCut",
"materialMatchWay": "fuzzyMatch",
"metadata": {
"AIGC": "{"Label":"1","ContentProducer":"AI服务提供者的名称或统一社会信用代码等","ProduceID":"XXXXXXXXXXXXXXXXXXX"}"
}
},
"subtitle": [
{"startMs": 0, "endMs": 500, "text": "A"},
{"startMs": 500, "endMs": 1000, "text": "I"}
],
"structLayers": [
{
"markCode": "headerLayer",
"show": true,
"showMode": "customize",
"showTime": 2,
"layer": {"transform": {"position": [0, 0, 0]}}
}
],
"callbackUrl": "https://example.com/hook"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "smart_clip",
"api": "realman_broadcast"
}
}响应字段
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
task_id | string | 是 | 平台任务 ID |
status | string | 是 | 平台任务状态,提交后通常为 processing 或 queued |
app | string | 是 | 应用编码,固定为 smart_clip |
api | string | 是 | API 编码 |
任务结果
任务完成后,平台任务查询结果中的 result 通常包含:
| 字段 | 类型 | 说明 |
|---|---|---|
video_url | string | 视频url地址,视频生成类任务返回 |
cover_url | string | 视频封面url地址 |
duration | number | 生成的视频或音频时长,单位:秒 |
data | object | 完整结果数据 |
任务失败时返回错误码和错误描述。
接口 48智能剪辑素材混剪
POST /api/v1/apps/smart_clip/broadcast_mixcut
智能剪辑素材混剪
提交素材混剪视频任务。当前应用仅支持 audioUrl 或素材输入链路;提交时如果传入 content 或 speakerId,平台会返回不支持该分支的明确错误。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | smart_clip |
| API 编码 | broadcast_mixcut |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/smart_clip/broadcast_mixcut |
| 调用模式 | 异步 |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
styleId | string | 是 | - | - | 视频模板ID |
title | string | 否 | - | - | 标题;如果期望生成的视频不显示标题,请不要设置标题值 |
audioUrl | string | 否 | - | mp3 / wav / m4a | 音频URL,与content字段二选一;当前应用仅支持 audioUrl 或素材输入链路,平台会探测该媒体时长用于计费 |
content | string | 否 | - | 3-1800字符 | 文本,与audioUrl字段二选一;当前应用不支持 content + speakerId 定制声音分支 |
language | string | 否 | - | - | 语种,特指音频(audioUrl)对应的语种,语种参考ASR支持的语种 |
speakerId | string | 否 | - | - | 音色ID;当前应用不支持 content + speakerId 定制声音分支 |
speakerExtra | object | 否 | - | - | 音色扩展参数;当前应用不支持 content + speakerId 定制声音分支 |
materials | array | 是 | - | image / video | 素材,每项包含 type、fileUrl、soundSwitch;缺少 audioUrl 时平台会探测素材媒体时长用于计费 |
introduceCard | object | 否 | - | - | 身份栏信息,包含 name、description |
packRules | object | 否 | - | - | 包装规则:仅用于控制标题、素材、字幕、关键词、背景音乐等是否参与模板效果包装 |
processRules | object | 否 | - | - | 处理规则,支持 watermarkShow、metadata、firstFrameCover |
structLayers | array | 否 | - | - | 需要修改的图层数据 |
subtitle | array | 否 | - | - | 字幕信息(兼容subtitles字段),每项包含 startMs、endMs、text |
callbackUrl | string | 否 | - | HTTPS URL | 结果通知回调地址,由平台在任务完成或失败后通知 |
视频生成方式
参考文档支持两种方式:
| 方式 | 字段 | 说明 |
|---|---|---|
| 文本内容 + 定制声音 | content + speakerId | 文本字符数要求 3-1800,声音 ID 为定制声音产生的声音 ID |
| 音频文件 | audioUrl | 音频时长小于 5 分钟,格式 mp3、wav、m4a,文件大小小于等于 100MB,需要能够语音转文本 |
当前平台应用仅支持 audioUrl 或素材输入链路,不支持 content + speakerId 定制声音分支。若传入 content 或 speakerId,平台会返回 unsupported_speaker_branch。
speakerExtra
| 字段 | 类型 | 必填 | 默认值 / 范围 | 说明 |
|---|---|---|---|---|
speedRatio | number | 否 | 默认 1,范围 0.5-2 | 语速,支持 1 位小数,1 表示常速,例如 0.6、0.9、1.2 |
language | string | 否 | - | 语种,特指该克隆声音文本(content)支持的语种 |
marks | array | 否 | - | 文本标记特殊处理处,传 content 时有效 |
marks[].type | string | 是 | break | 标记类型,break 表示停顿 |
marks[].index | integer | 是 | 从 0 开始 | 文本索引处,最大值为 content 文本长度 |
marks[].time | integer | 是 | 100-10000 | 时长,单位 ms |
processRules
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
watermarkShow | boolean | 否 | false | 是否添加“AI生成”字样水印 |
metadata | object | 否 | - | 元水印数据,仅支持写入一组数据,且 value 值需为字符串 |
firstFrameCover | object | 否 | - | 首帧封面配置 |
重要规则
- 音频驱动的
audioUrl、素材materials[].fileUrl、背景音乐packRules.backgroundMusic.audioUrl、AI 封面的resultImageUrl地址不能重名,重名会导致渲染异常。 packRules仅用于控制标题、字幕、素材、背景音乐、关键词等图层是否参与效果包装,不能控制对应图层的显示/隐藏。- 如果期望生成的视频不显示标题,请不要设置标题值。
callbackUrl作为平台任务通知地址保存,任务完成或失败后由平台发起通知。- 如无法解析有效输入媒体时长,本次请求会被拒绝,不使用默认时长。
通用对象字段
subtitle[]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
startMs | integer | 是 | 时间戳开始,单位 ms |
endMs | integer | 是 | 时间戳结束,单位 ms,最大支持 310000ms |
text | string | 是 | 文本,只支持单字符级别 |
materials[]
| 字段 | 类型 | 必填 | 可选值 / 默认值 | 说明 |
|---|---|---|---|---|
type | string | 是 | image / video | 素材类型 |
fileUrl | string | 是 | - | 素材url |
soundSwitch | boolean | 否 | false | 当素材为视频时原声开关,素材混剪和新闻体视频支持 |
introduceCard
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 否 | 名称 |
description | string | 否 | 描述 |
packRules
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
headerSwitch | boolean | 否 | - | 标题包装开关 |
materialSwitch | boolean | 否 | - | 素材包装开关 |
subtitleSwitch | boolean | 否 | - | 字幕包装开关 |
keywordSwitch | boolean | 否 | - | 关键词包装开关 |
backgroundMusic | object | 否 | - | 背景音乐设置 |
backgroundMusic.audioSwitch | boolean | 否 | - | 音乐开关 |
backgroundMusic.audioUrl | string | 否 | - | 音频url,模板内置背景音乐和传递audioUrl,优先使用audioUrl |
backgroundMusic.volume | number | 否 | 0.3 | 音量,保留一位小数,范围 0-1 |
processRules.firstFrameCover
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
coverSwitch | boolean | 否 | false | 封面开关 |
templateId | string | 否 | - | 模版ID,如果未设置则系统匹配 |
imageUrl | string | 否 | - | 图片地址,用于生成AI封面图的底图,imageUrl 和 resultImageUrl 二选一必填 |
resultImageUrl | string | 否 | - | 图片生成接口的结果图片地址或其他封面图片地址;传了此值将直接运用作为视频首桢封面,优先级更高 |
structLayers[]
| 字段 | 类型 | 必填 | 可选值 | 说明 |
|---|---|---|---|---|
markCode | string | 是 | headerLayer / subtitleLayer / ipLayer / backgroundLayer / figureLayer | 图层,对应模板详情接口返回的图层数据 |
show | boolean | 否 | - | 是否显示,不设置时默认跟随模板;backgroundLayer、figureLayer 不支持设置,默认显示 |
showMode | string | 否 | always / customize | 显示模式,markCode=headerLayer 时生效,不设置时默认跟随模板 |
showTime | number | 条件必填 | 大于 0 | 显示时长,markCode=headerLayer 且 showMode=customize 时生效且必填,保留 3 位小数 |
layer.transform.position | integer[] | 否 | - | 锚点定位,对应模板详情 transform.position |
layer.uri | string | 否 | - | 背景图片资源链接,仅 backgroundLayer 生效 |
素材与媒体要求
- 输入视频格式:mp4、mov;视频编码 h264、HEVC(h265);帧率 10-60fps,推荐 25;单边分辨率小于 2000px。
- 真人口播
videoUrl时长小于 5 分钟,文件大小小于 500MB,视频中的音频需要能够语音转文本。 - 素材总量限制:单张图片计算为 2 秒,单个视频素材不能超过 60 秒,所有素材总时长不能超过 5 分钟。
- 素材图片格式支持 jpg、png、webp 静态图,单边分辨率小于 2000px。
- 素材视频格式支持 mp4、mov,单个视频小于 500MB,单边分辨率小于 2000px。
- 背景音乐格式支持 mp3、wav、m4a,文件大小不超过 120MB,时长不超过 5 分钟。
- 首帧封面
imageUrl、resultImageUrl格式支持 jpg/jpeg、png,文件大小不超过 10MB,单边分辨率小于 2000px。
请求示例
{
"styleId": "68aebb91b8619ed6f4168f40",
"audioUrl": "https://example.com/a.mp3",
"title": "聊AI行业",
"language": "zh-CN",
"materials": [
{"type": "image", "fileUrl": "https://example.com/a.jpg", "soundSwitch": false},
{"type": "video", "fileUrl": "https://example.com/b.mp4", "soundSwitch": false}
],
"introduceCard": {
"name": "廖志勇",
"description": "AI行业领军人物"
},
"packRules": {
"headerSwitch": true,
"materialSwitch": true,
"subtitleSwitch": true,
"keywordSwitch": true,
"backgroundMusic": {
"audioSwitch": true,
"audioUrl": "https://example.com/bg.mp3",
"volume": 1
}
},
"processRules": {
"watermarkShow": true,
"metadata": {
"AIGC": "{"Label":"1","ContentProducer":"AI服务提供者的名称或统一社会信用代码等","ProduceID":"XXXXXXXXXXXXXXXXXXX"}"
}
},
"subtitle": [
{"startMs": 0, "endMs": 500, "text": "A"},
{"startMs": 500, "endMs": 1000, "text": "I"}
],
"callbackUrl": "https://example.com/hook"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "smart_clip",
"api": "broadcast_mixcut"
}
}响应字段
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
task_id | string | 是 | 平台任务 ID |
status | string | 是 | 平台任务状态,提交后通常为 processing 或 queued |
app | string | 是 | 应用编码,固定为 smart_clip |
api | string | 是 | API 编码 |
任务结果
任务完成后,平台任务查询结果中的 result 通常包含:
| 字段 | 类型 | 说明 |
|---|---|---|
video_url | string | 视频url地址,视频生成类任务返回 |
cover_url | string | 视频封面url地址 |
duration | number | 生成的视频或音频时长,单位:秒 |
data | object | 完整结果数据 |
任务失败时返回错误码和错误描述。
接口 49智能剪辑新闻体视频
POST /api/v1/apps/smart_clip/news_mixcut
智能剪辑新闻体视频
提交新闻体视频任务。如未传 processRules.videoDuration,平台会探测素材媒体时长用于计费;无法获取有效输入媒体时长时会拒绝提交。
基本信息
| 字段 | 内容 |
|---|---|
| 应用编码 | smart_clip |
| API 编码 | news_mixcut |
| 请求方式 | POST |
| 请求路径 | /api/v1/apps/smart_clip/news_mixcut |
| 调用模式 | 异步 |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
styleId | string | 是 | - | - | 视频模板ID |
title | string | 是 | - | 3-1800字符 | 标题 |
materials | array | 是 | - | image / video | 素材,每项包含 type、fileUrl、soundSwitch;平台会探测素材媒体时长用于计费 |
introduceCard | object | 否 | - | - | 身份栏信息,包含 name、description |
packRules | object | 否 | - | - | 包装规则:仅用于控制标题、素材、字幕、关键词、背景音乐等是否参与模板效果包装 |
processRules.watermarkShow | boolean | 否 | false | true / false | 是否添加“AI生成”字样水印 |
processRules.videoDuration | integer | 否 | - | 5-300 | 视频时长,单位秒,默认跟随素材资源时长 |
processRules.metadata | object | 否 | - | - | 元水印数据,仅支持写入一组数据,且value值需为字符串 |
processRules.materialComposition | string | 否 | random | random / order | 素材组合方式 |
processRules.firstFrameCover | object | 否 | - | - | 首帧封面配置 |
structLayers | array | 否 | - | - | 需要修改的图层数据 |
callbackUrl | string | 否 | - | HTTPS URL | 结果通知回调地址,由平台在任务完成或失败后通知 |
processRules
| 字段 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
watermarkShow | boolean | 否 | false | true / false | 是否添加“AI生成”字样水印 |
videoDuration | integer | 否 | 跟随素材资源时长 | 5-300 | 视频时长,单位:秒 |
metadata | object | 否 | - | - | 元水印数据,仅支持写入一组数据,且 value 值需为字符串 |
materialComposition | string | 否 | random | random / order | 素材组合方式,random 随机,order 顺序 |
firstFrameCover | object | 否 | - | - | 首帧封面配置 |
重要规则
- 素材
materials[].fileUrl、背景音乐packRules.backgroundMusic.audioUrl、AI 封面的resultImageUrl地址不能重名,重名会导致渲染异常。 packRules仅用于控制标题、字幕、素材、背景音乐、关键词等图层是否参与效果包装,不能控制对应图层的显示/隐藏。- 如果期望生成的视频不显示标题,请不要设置标题值。
callbackUrl作为平台任务通知地址保存,任务完成或失败后由平台发起通知。- 如无法解析有效输入媒体时长,本次请求会被拒绝,不使用默认时长。
通用对象字段
subtitle[]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
startMs | integer | 是 | 时间戳开始,单位 ms |
endMs | integer | 是 | 时间戳结束,单位 ms,最大支持 310000ms |
text | string | 是 | 文本,只支持单字符级别 |
materials[]
| 字段 | 类型 | 必填 | 可选值 / 默认值 | 说明 |
|---|---|---|---|---|
type | string | 是 | image / video | 素材类型 |
fileUrl | string | 是 | - | 素材url |
soundSwitch | boolean | 否 | false | 当素材为视频时原声开关,素材混剪和新闻体视频支持 |
introduceCard
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 否 | 名称 |
description | string | 否 | 描述 |
packRules
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
headerSwitch | boolean | 否 | - | 标题包装开关 |
materialSwitch | boolean | 否 | - | 素材包装开关 |
subtitleSwitch | boolean | 否 | - | 字幕包装开关 |
keywordSwitch | boolean | 否 | - | 关键词包装开关 |
backgroundMusic | object | 否 | - | 背景音乐设置 |
backgroundMusic.audioSwitch | boolean | 否 | - | 音乐开关 |
backgroundMusic.audioUrl | string | 否 | - | 音频url,模板内置背景音乐和传递audioUrl,优先使用audioUrl |
backgroundMusic.volume | number | 否 | 0.3 | 音量,保留一位小数,范围 0-1 |
processRules.firstFrameCover
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
coverSwitch | boolean | 否 | false | 封面开关 |
templateId | string | 否 | - | 模版ID,如果未设置则系统匹配 |
imageUrl | string | 否 | - | 图片地址,用于生成AI封面图的底图,imageUrl 和 resultImageUrl 二选一必填 |
resultImageUrl | string | 否 | - | 图片生成接口的结果图片地址或其他封面图片地址;传了此值将直接运用作为视频首桢封面,优先级更高 |
structLayers[]
| 字段 | 类型 | 必填 | 可选值 | 说明 |
|---|---|---|---|---|
markCode | string | 是 | headerLayer / subtitleLayer / ipLayer / backgroundLayer / figureLayer | 图层,对应模板详情接口返回的图层数据 |
show | boolean | 否 | - | 是否显示,不设置时默认跟随模板;backgroundLayer、figureLayer 不支持设置,默认显示 |
showMode | string | 否 | always / customize | 显示模式,markCode=headerLayer 时生效,不设置时默认跟随模板 |
showTime | number | 条件必填 | 大于 0 | 显示时长,markCode=headerLayer 且 showMode=customize 时生效且必填,保留 3 位小数 |
layer.transform.position | integer[] | 否 | - | 锚点定位,对应模板详情 transform.position |
layer.uri | string | 否 | - | 背景图片资源链接,仅 backgroundLayer 生效 |
素材与媒体要求
- 输入视频格式:mp4、mov;视频编码 h264、HEVC(h265);帧率 10-60fps,推荐 25;单边分辨率小于 2000px。
- 真人口播
videoUrl时长小于 5 分钟,文件大小小于 500MB,视频中的音频需要能够语音转文本。 - 素材总量限制:单张图片计算为 2 秒,单个视频素材不能超过 60 秒,所有素材总时长不能超过 5 分钟。
- 素材图片格式支持 jpg、png、webp 静态图,单边分辨率小于 2000px。
- 素材视频格式支持 mp4、mov,单个视频小于 500MB,单边分辨率小于 2000px。
- 背景音乐格式支持 mp3、wav、m4a,文件大小不超过 120MB,时长不超过 5 分钟。
- 首帧封面
imageUrl、resultImageUrl格式支持 jpg/jpeg、png,文件大小不超过 10MB,单边分辨率小于 2000px。
请求示例
{
"styleId": "68aebb91b8619ed6f4168f40",
"title": "聊AI行业",
"materials": [
{"type": "image", "fileUrl": "https://example.com/a.jpg", "soundSwitch": false},
{"type": "video", "fileUrl": "https://example.com/b.mp4", "soundSwitch": false}
],
"introduceCard": {
"name": "廖志勇",
"description": "AI行业领军人物"
},
"packRules": {
"headerSwitch": true,
"materialSwitch": true,
"subtitleSwitch": true,
"keywordSwitch": true,
"backgroundMusic": {
"audioSwitch": true,
"audioUrl": "https://example.com/bg.mp3",
"volume": 1
}
},
"processRules": {
"materialComposition": "random",
"watermarkShow": true,
"videoDuration": 30,
"metadata": {
"AIGC": "{"Label":"1","ContentProducer":"AI服务提供者的名称或统一社会信用代码等","ProduceID":"XXXXXXXXXXXXXXXXXXX"}"
}
},
"structLayers": [
{
"markCode": "headerLayer",
"show": true,
"showMode": "customize",
"showTime": 2,
"layer": {"transform": {"position": [0, 0, 0]}}
}
],
"callbackUrl": "https://example.com/hook"
}成功响应
{
"code": 1,
"msg": "success",
"data": {
"task_id": "task_xxxxxxxxxxxx",
"status": "processing",
"app": "smart_clip",
"api": "news_mixcut"
}
}响应字段
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
task_id | string | 是 | 平台任务 ID |
status | string | 是 | 平台任务状态,提交后通常为 processing 或 queued |
app | string | 是 | 应用编码,固定为 smart_clip |
api | string | 是 | API 编码 |
任务结果
任务完成后,平台任务查询结果中的 result 通常包含:
| 字段 | 类型 | 说明 |
|---|---|---|
video_url | string | 视频url地址,视频生成类任务返回 |
cover_url | string | 视频封面url地址 |
duration | number | 生成的视频或音频时长,单位:秒 |
data | object | 完整结果数据 |
任务失败时返回错误码和错误描述。
接口 50语音TTS克隆音色
POST /api/v1/apps/voice_tts/clone_voice
语音TTS克隆音色
上传参考音频或提供音频URL,创建专属语音音色模型
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
请求路径
POST /api/v1/apps/voice_tts/clone_voice
业务参数
参数 类型 必填 默认值 可选值 / 范围 示例 说明
tags array 否 — — — 模型标签数组
texts array 否 — — — 与音频对应的文本数组;不传时自动ASR
title string 是 — — — 音色名称
audio_url string 否 — mp3 / wav / ogg / flac — 参考音频URL(与上传文件二选一),支持 mp3/wav/ogg/flac
visibility string 否 — public / unlist / private — 可见性:public / unlist / private,平台默认 private
description string 否 — — — 音色描述
enhance_audio_quality boolean 否 — — — 是否增强音频质量,默认 false
请求示例
{
"tags": [],
"texts": [],
"title": "string",
"audio_url": "mp3",
"visibility": "private",
"description": "string",
"enhance_audio_quality": true
}
成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试
请求示例
{
"text": "string",
"model": "s1",
"top_p": 1,
"format": "wav",
"latency": "low",
"prosody": {},
"normalize": true,
"mp3_bitrate": "64",
"sample_rate": 1,
"temperature": 1,
"callback_url": "GET",
"chunk_length": 1,
"opus_bitrate": 1,
"reference_id": "string",
"max_new_tokens": 1,
"min_chunk_length": 1,
"repetition_penalty": 1,
"early_stop_threshold": 1,
"condition_on_previous_chunks": true
}
成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}
查询任务结果
GET /api/v1/tasks/{task_id}
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试接口 51语音TTS文字转语音
POST /api/v1/apps/voice_tts/tts
语音TTS文字转语音
将文本同步合成为语音音频文件(适合短文本,500字符内),直接返回音频URL
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
请求路径
POST /api/v1/apps/voice_tts/tts
业务参数
参数 类型 必填 默认值 可选值 / 范围 示例 说明
text string 是 — — — 待合成文本,同步接口建议不超过 500 字符
model string 否 — s1 / s2-pro — TTS 模型,可选 s1 / s2-pro,默认 s2-pro
top_p number 否 — 0 ~ 1 — Top-P 采样,0~1,默认 0.7
format string 否 — wav / pcm / mp3 / opus — 输出格式:wav / pcm / mp3 / opus,默认 mp3
latency string 否 — low / normal / balanced — 延迟模式:low / normal / balanced
prosody object 否 — — — 语调控制对象:speed、volume、normalize_loudness
normalize boolean 否 — — — 文本规范化,默认 true
mp3_bitrate integer 否 — 64 / 128 / 192 — MP3 比特率:64 / 128 / 192
sample_rate integer 否 — — — 采样率按格式限制
temperature number 否 — 0 ~ 1 — 生成温度,0~1,默认 0.7
chunk_length integer 否 — 100 ~ 300 — 文本分块长度,范围 100~300,默认 300
opus_bitrate integer 否 — -1000 / 24 / 32 / 48 / 64 — Opus 比特率:-1000 / 24 / 32 / 48 / 64
reference_id string 否 — — — 音色模型ID。单说话人传 string;多说话人模式可传 string[](仅 s2-pro)
max_new_tokens integer 否 — — — 每个分块最多生成音频 token,默认 1024
min_chunk_length integer 否 — 0 ~ 100 — 最小分块长度,范围 0~100,默认 50
repetition_penalty number 否 — — — 重复惩罚,默认 1.2
early_stop_threshold number 否 — 0 ~ 1 — 提前停止阈值,范围 0~1,默认 1
condition_on_previous_chunks boolean 否 — — — 是否利用前一段音频作为上下文,默认 true
请求示例
{
"text": "string",
"model": "s1",
"top_p": 1,
"format": "mp3",
"latency": "low",
"prosody": {},
"normalize": true,
"mp3_bitrate": "64",
"sample_rate": 1,
"temperature": 1,
"chunk_length": 1,
"opus_bitrate": "-1000",
"reference_id": "string",
"max_new_tokens": 1,
"min_chunk_length": 1,
"repetition_penalty": 1,
"early_stop_threshold": 1,
"condition_on_previous_chunks": true
}
成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试接口 52语音TTS文字转语音(异步)
POST /api/v1/apps/voice_tts/tts_async
语音TTS文字转语音(异步)
将文本异步合成为语音音频文件(适合长文本),通过回调或轮询获取结果
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
请求路径
POST /api/v1/apps/voice_tts/tts_async
该接口为异步任务,提交后返回 task_id,请通过 GET /api/v1/tasks/{task_id} 查询结果,或在请求中传 callback_url 接收完成回调。
业务参数
参数 类型 必填 默认值 可选值 / 范围 示例 说明
text string 是 — — — 待合成文本,适合长文本(最大约 10000 字符)
model string 否 — s1 / s2-pro — TTS 模型,可选 s1 / s2-pro,默认 s2-pro
top_p number 否 — 0 ~ 1 — Top-P 采样,0~1,默认 0.7
format string 否 — wav / pcm / mp3 / opus — 输出格式:wav / pcm / mp3 / opus,默认 mp3
latency string 否 — low / normal / balanced — 延迟模式:low / normal / balanced
prosody object 否 — — — 语调控制对象:speed、volume、normalize_loudness
normalize boolean 否 — — — 文本规范化,默认 true
mp3_bitrate integer 否 — 64 / 128 / 192 — MP3 比特率:64 / 128 / 192
sample_rate integer 否 — — — 采样率按格式限制
temperature number 否 — 0 ~ 1 — 生成温度,0~1,默认 0.7
callback_url string 否 — — — 回调通知URL;不传则通过任务接口轮询
chunk_length integer 否 — 100 ~ 300 — 文本分块长度,范围 100~300,默认 300
opus_bitrate integer 否 — -1000 / 24 / 32 / 48 / 64 — Opus 比特率:-1000 / 24 / 32 / 48 / 64
reference_id string 否 — — — 音色模型ID。单说话人传 string;多说话人模式可传 string[](仅 s2-pro)
max_new_tokens integer 否 — — — 每个分块最多生成音频 token,默认 1024
min_chunk_length integer 否 — 0 ~ 100 — 最小分块长度,范围 0~100,默认 50
repetition_penalty number 否 — — — 重复惩罚,默认 1.2
early_stop_threshold number 否 — 0 ~ 1 — 提前停止阈值,范围 0~1,默认 1
condition_on_previous_chunks boolean 否 — — — 是否利用前一段音频作为上下文,默认 true
请求示例
{
"text": "string",
"model": "s1",
"top_p": 1,
"format": "wav",
"latency": "low",
"prosody": {},
"normalize": true,
"mp3_bitrate": "64",
"sample_rate": 1,
"temperature": 1,
"callback_url": "string",
"chunk_length": 1,
"opus_bitrate": "-1000",
"reference_id": "string",
"max_new_tokens": 1,
"min_chunk_length": 1,
"repetition_penalty": 1,
"early_stop_threshold": 1,
"condition_on_previous_chunks": true
}
成功响应
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "pending",
"created_at": 1740000000
}
查询任务结果
GET /api/v1/tasks/{task_id}
{
"task_id": "tsk_xxxxxxxxxxxxxxxx",
"status": "completed",
"created_at": 1740000000,
"completed_at": 1740000060,
"result": {
"output": "任务输出内容"
},
"usage": {
"points": 100
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试接口 53语音TTS语音转文字
POST /api/v1/apps/voice_tts/stt
语音TTS语音转文字
将语音音频识别转写为文本,支持文件上传或音频URL
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
请求路径
POST /api/v1/apps/voice_tts/stt
业务参数
参数 类型 必填 默认值 可选值 / 范围 示例 说明
language string 否 — — — 识别语言,不传则自动检测
audio_url string 否 — — — 音频文件URL(与文件上传二选一)
ignore_timestamps boolean 否 — — — 是否忽略精确时间戳,默认 true
请求示例
{
"language": "string",
"audio_url": "string",
"ignore_timestamps": true
}
成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试接口 54语音TTS音色列表
GET /api/v1/apps/voice_tts/list_voices
语音TTS音色列表
查询当前用户创建的语音音色模型列表
鉴权
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
请求路径
GET /api/v1/apps/voice_tts/list_voices
业务参数
参数 类型 必填 默认值 可选值 / 范围 示例 说明
tag string 否 — — — 按标签筛选
title string 否 — — — 按音色名称搜索
sort_by string 否 — score / task_count / created_at — 排序:score / task_count / created_at
language string 否 — — — 按语言筛选
page_size integer 否 — — — 每页数量,官方默认 10
page_number integer 否 — — — 页码,默认 1
title_language string 否 — — — 按标题语言筛选
请求示例
{
"tag": "string",
"title": "string",
"sort_by": "score",
"language": "string",
"page_size": 20,
"page_number": 1,
"title_language": "string"
}
成功响应
{
"code": 1,
"msg": "success",
"data": {
"_comment": "具体字段以接口实际返回为准"
}
}
失败响应
{
"error": {
"message": "点数余额不足",
"type": "insufficient_points",
"code": "insufficient_points"
}
}
错误码
HTTP code 含义
400 invalid_request 参数缺失或格式错误
401 auth_failed API Key 缺失或无效
402 insufficient_points 点数余额不足
402 key_quota_exceeded 当前 API Key 点数额度不足
403 permission_denied 当前 API Key 无权调用该模型/应用
404 not_found 模型 / 应用 / 任务不存在
429 queue_limit_exceeded 排队任务已达上限
5xx server_error 服务异常,请稍后重试
智能剪辑 - 模板列表