| 端点 | 方法 | 说明 | 版本 |
|---|---|---|---|
/v1/chat/completions | POST | 统一生成端点(OpenAI标准格式) | v1.0+ |
/v1/videos | POST | 创建视频/角色任务(异步) | v1.0+ |
/v1/videos/{video_id} | GET | 查询视频状态或角色信息 | v1.0+ |
/v1/videos/{video_id}/remix | POST | Remix视频 | v1.0+ |
/v1/videos/{video_id}/content | GET | 获取视频内容 | v1.0+ |
/v1/images/generations | POST | 生成图片(OpenAI标准) | v1.2+ |
/v1/images/edits | POST | 编辑图片(OpenAI标准) | v1.2+ |
/v1/models | GET | 列出可用模型 | v1.0+ |
application/json - JSON格式请求multipart/form-data - 表单数据格式(支持文件上传)| 风格ID | 中文名 | 效果描述 | 适用场景 |
|---|---|---|---|
festive | 节日风格 | 欢庆、热闹的氛围,色彩鲜艳 | 节日庆典、派对场景 |
retro | 复古风格 | 怀旧、老式电影感,颗粒质感 | 回忆录、复古主题 |
news | 新闻风格 | 正式、专业的新闻播报效果 | 新闻报道、正式场合 |
selfie | 自拍风格 | 第一人称视角、亲密感强 | 个人Vlog、自拍视频 |
handheld | 手持风格 | 手持摄影、纪实感、轻微抖动 | 纪录片、街拍 |
anime | 动漫风格 | 日式动画风格、二次元效果 | 动画片、卡通内容 |
{
"model": "sora-2-landscape-15s",
"prompt": "城市街道上的夜景,霓虹灯闪烁",
"style_id": "retro"
}sora-2-characterssora-2-characters 是专门用于角色创建和管理的模型,提供以下核心能力:| 模式 | 模型选择 | 说明 | 使用场景 |
|---|---|---|---|
| 角色创建 | sora-2-characters | 上传视频,不提供prompt | 仅提取角色信息 |
| 角色生成 | 任意视频模型 | 上传视频+提供prompt | 创建角色并立即生成视频 |
| 角色复用 | 任意视频模型 | 在prompt中使用@username | 使用已创建的角色 |
| 特性 | 说明 |
|---|---|
| 输入要求 | 必须提供视频文件 |
| 输出内容 | 角色信息(username、display_name) |
| 处理时间 | 通常 1-2 分钟 |
| 最佳实践 | 视频长度 3-10 秒,清晰展示角色正面 |
[时长s]镜头描述 [时长s]镜头描述 [时长s]镜头描述{
"model": "sora-2-landscape-15s",
"prompt": "[5.0s]开场:城市全景,镜头缓慢上升 [4.0s]转场:街道人群,人来人往 [6.0s]特写:主角微笑,阳光洒在脸上"
}{
"model": "sora-2-landscape-15s",
"prompt": "[5.0s]猫咪从飞机上跳伞,降落伞打开\n[5.0s]猫咪平稳降落在草地上\n[5.0s]猫咪在田野中快乐奔跑"
}完整链接: https://sora.chatgpt.com/p/s_68e3a06dcd888191b150971da152c1f5
短ID格式: s_68e3a06dcd888191b150971da152c1f5{
"model": "sora-2-landscape-15s",
"prompt": "https://sora.chatgpt.com/p/s_abc123... 改成水墨画风格"
}{
"model": "sora-2-landscape-15s",
"prompt": "改成水墨画风格,添加中国风音乐",
"remix_target_id": "s_68e3a06dcd888191b150971da152c1f5"
}sora-2-landscape 或 sora-2-portrait横屏 或 竖屏{
"model": "sora-2",
"prompt": "竖屏,一个女孩在跳舞"
}竖屏关键词并设置为竖屏模式(9:16)。| 检测为视频的条件 | 检测为图片的条件 |
|---|---|
URL包含 .mp4, .mov, .avi, .webm, .mkv | 其他所有情况(默认) |
Data URI以 data:video 开头 | - |
MIME类型为 video/* | - |
model | 模型名称 | 时长 | 分辨率 | 说明 |
|---|---|---|---|
sora-2 | 15秒 | 1920×1080 | 通用横屏模型 |
sora-2-15s | 15秒 | 1920×1080 | 15秒横屏 |
sora-2-landscape | 15秒 | 1920×1080 | 横屏(16:9) |
sora-2-landscape-15s | 15秒 | 1920×1080 | 15秒横屏 |
sora-2-portrait | 15秒 | 1080×1920 | 竖屏(9:16) |
sora-2-portrait-15s | 15秒 | 1080×1920 | 15秒竖屏 |
sora-2-characters | 不生成视频 | - | 专用角色创建模型 |
| 模型名称 | 分辨率 | 说明 |
|---|---|---|
sora-image | 360×360 | 正方形图片 |
sora-image-landscape | 540×360 | 横版图片 |
sora-image-portrait | 360×540 | 竖版图片 |
{
"model": "sora-2-landscape-15s"
}prompt | 语法 | 说明 | 示例 |
|---|---|---|
横屏/竖屏 | 自动设置视频方向 | "竖屏,一个女孩跳舞" |
[时长s]描述 | 分镜模式 | "[5.0s]开场 [10.0s]结尾" |
@username | 引用角色 | "@john_doe 在跑步" |
| Remix ID | 视频Remix | "s_abc123... 改成夜晚" |
{
"prompt": "一只可爱的橘猫在阳光下的草地上追逐蝴蝶,画面温馨自然"
}style_id festive, retro, news, selfie, handheld, anime{
"model": "sora-2-landscape-15s",
"prompt": "街道夜景,霓虹灯闪烁",
"style_id": "retro"
}orientation landscape(横屏), portrait(竖屏){
"model": "sora-2",
"prompt": "一个人在奔跑",
"orientation": "portrait"
}image {
"image": "https://example.com/image.jpg"
}{
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}{
"image": "/9j/4AAQSkZJRg..."
}multipart/form-data)video image 参数(URL、Base64、文件上传){
"model": "sora-2",
"prompt": "这个角色在跳舞",
"video": "https://example.com/character.mp4"
}input_reference data:video → 视频image 或 video,此参数将被忽略。remix_target_id {
"remix_target_id": "https://sora.chatgpt.com/p/s_68e3a06dcd888191b150971da152c1f5"
}{
"remix_target_id": "s_68e3a06dcd888191b150971da152c1f5"
}prompt 中包含Remix ID,系统会自动提取。size model 和 orientation 决定。{
"size": "1280x720"
}{
"model": "sora-2-landscape-15s",
"messages": [
{
"role": "user",
"content": "一只猫在草地上玩耍"
}
],
"stream": true
}{
"content": "一只可爱的小猫"
}{
"content": [
{
"type": "text",
"text": "让这只猫跳舞"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,..."
}
}
]
}text 类型直接传入图片或视频的 URL,系统会自动识别:{
"content": [
{
"type": "text",
"text": "让这只猫跳舞"
},
{
"type": "text",
"text": "https://example.com/image.jpg"
}
]
}{
"content": [
{
"type": "text",
"text": "https://example.com/character.mp4"
},
{
"type": "text",
"text": "这个角色在海边奔跑"
}
]
}{
"content": [
{
"type": "video_url",
"video_url": {
"url": "data:video/mp4;base64,..."
}
},
{
"type": "text",
"text": "这个角色在跳舞"
}
]
}| 方式 | 格式 | 适用场景 | 示例 |
|---|---|---|---|
image_url | 标准对象格式 | 图片引用 | {"type": "image_url", "image_url": {"url": "..."}} |
video_url | 标准对象格式 | 视频引用 | {"type": "video_url", "video_url": {"url": "..."}} |
text URL | 简化文本格式 | 图片或视频 URL | {"type": "text", "text": "https://..."} |
text 类型传入 URL 时,系统会自动根据 URL 特征(扩展名、协议等)识别为图片或视频。stream=true)data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1702345678,"model":"sora-2","choices":[{"index":0,"delta":{"role":"assistant","content":"```html\n<video src='https://cdn.example.com/video.mp4' controls></video>\n```"},"finish_reason":"STOP"}],"usage":{"prompt_tokens":0,"completion_tokens":1,"total_tokens":1}}
data: [DONE]stream=false){
"id": "video_a1b2c3d4e5f6g7h8",
"object": "video",
"created_at": 1702345678,
"status": "completed",
"model": "sora-2-landscape-15s",
"url": "https://cdn.example.com/video.mp4"
}{
"model": "sora-2-landscape-15s",
"prompt": "一只可爱的橘猫在阳光下的草地上追逐蝴蝶",
"style_id": "retro",
"orientation": "landscape"
}{
"id": "video_a1b2c3d4e5f6g7h8",
"object": "video",
"created_at": 1702345678,
"status": "queued",
"model": "sora-2-landscape-15s",
"prompt": "一只可爱的橘猫在阳光下的草地上追逐蝴蝶",
"progress": 0,
"seconds": "15",
"size": "1920x1080"
}{
"id": "video_a1b2c3d4e5f6g7h8",
"object": "video",
"status": "in_progress",
"progress": 65,
"seconds": "15",
"size": "1920x1080"
}{
"id": "video_a1b2c3d4e5f6g7h8",
"object": "video",
"status": "completed",
"progress": 100,
"video_url": "https://cdn.example.com/video.mp4",
"share_id": "s_abc123def456789",
"completed_at": 1702345888
}{
"id": "char_abc123",
"object": "character",
"status": "completed",
"username": "john_doe123",
"display_name": "John Doe",
"message": "角色创建成功,角色名@john_doe123"
}POST /v1/videos{
"id": "char_abc123",
"object": "character",
"status": "completed",
"username": "john_doe123",
"display_name": "John Doe",
"message": "角色创建成功,角色名@john_doe123"
}| 状态 | 说明 | progress |
|---|---|---|
queued | 排队中 | 0 |
in_progress | 处理中 | 1-99 |
completed | 已完成 | 100 |
failed | 失败 | 0 |
{
"prompt": "改成夜晚场景,添加星空背景"
}| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
variant | string | 内容类型 | video |
video - 视频文件(支持)thumbnail - 缩略图(暂未实现)spritesheet - 精灵图(暂未实现)| 状态 | HTTP码 | 说明 |
|---|---|---|
| 已完成 | 302 | 重定向到视频URL |
| 处理中 | 202 | 返回状态JSON |
| 失败 | 410 | 返回错误JSON |
{
"model": "sora-image",
"prompt": "一只可爱的小猫",
"size": "360x360",
"response_format": "url",
"n": 1
}| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
model | string | 可选 | 图片模型(默认根据size选择) |
prompt | string | 必需 | 提示词 |
size | string | 可选 | 图片尺寸,默认360x360 |
response_format | string | 可选 | url或b64_json,默认url |
n | integer | 可选 | 生成数量,默认1 |
360x360 → sora-image540x360 → sora-image-landscape360x540 → sora-image-portraitresponse_format="url"){
"created": 1702345678,
"data": [
{
"url": "https://cdn.example.com/image.jpg"
}
]
}response_format="b64_json"){
"created": 1702345678,
"data": [
{
"b64_json": "/9j/4AAQSkZJRgABAQEA..."
}
]
}{
"image": "https://example.com/image.jpg",
"prompt": "将这张图片变成油画风格",
"model": "sora-image",
"size": "360x360",
"response_format": "url"
}{
"object": "list",
"data": [
{
"id": "sora-2-landscape-15s",
"object": "model",
"owned_by": "sora2api",
"description": "Video generation - landscape"
},
{
"id": "sora-image",
"object": "model",
"owned_by": "sora2api",
"description": "Image generation - 360x360"
}
]
}{
"id": "char_abc123",
"object": "character",
"status": "completed",
"username": "john_doe123",
"display_name": "John Doe",
"message": "角色创建成功,角色名@john_doe123"
}sora-2-characters 模型创建角色,获得更快更准确的角色识别。{
"id": "char_abc123",
"object": "character",
"status": "completed",
"username": "john_doe123",
"display_name": "John Doe",
"message": "角色创建成功,角色名@john_doe123"
}📌 重要提示:使用 /v1/videos异步创建角色后,返回的响应仅包含基本信息(id、status 等)。要获取完整的角色信息(username、display_name),需要使用GET /v1/videos/{char_id}查询获取。
text 类型直接传入图片或视频 URL,系统自动识别媒体类型。data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1702345678,"model":"sora-2-characters","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"✨ 角色创建成功\n角色名: @sarah_chen456\n显示名: Sarah Chen\n提示: 在后续生成中使用 @sarah_chen456 来引用此角色","tool_calls":null},"finish_reason":"STOP"}],"usage":{"prompt_tokens":0}}
data: [DONE]data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1702345678,"model":"sora-2","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"✨ 角色已识别: John Doe (@john_doe123)\n","tool_calls":null},"finish_reason":null}],"usage":{"prompt_tokens":0}}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1702345678,"model":"sora-2","choices":[{"index":0,"delta":{"content":"```html\n<video src='https://cdn.example.com/video.mp4' controls></video>\n```","reasoning_content":null,"tool_calls":null},"finish_reason":"STOP"}],"usage":{"prompt_tokens":0,"completion_tokens":1,"total_tokens":1}}
data: [DONE]| HTTP状态码 | 错误类型 | 说明 | 解决方案 |
|---|---|---|---|
400 | invalid_request_error | 参数验证失败 | 检查必需参数是否完整 |
400 | parameter_missing | 缺少必需参数 | 添加缺失的参数 |
400 | invalid_model | 模型名称无效 | 使用支持的模型名称 |
403 | authentication_error | API密钥无效 | 检查API密钥是否正确 |
403 | permission_denied | 权限不足 | 检查账户权限和余额 |
415 | unsupported_media_type | 不支持的内容类型 | 使用json或form-data |
500 | server_error | 服务器内部错误 | 联系技术支持 |
501 | not_implemented | 功能未实现 | 该功能暂不可用 |
{
"error": {
"message": "model is required",
"type": "invalid_request_error",
"param": "model",
"code": "parameter_missing"
}
}{
"id": "video_a1b2c3d4e5f6g7h8",
"object": "video",
"status": "failed",
"error": {
"message": "视频生成失败:内容安全审核未通过",
"type": "content_policy_violation"
}
}| 类型 | 说明 |
|---|---|
timeout_error | 生成超时 |
quota_exceeded | 配额超限 |
rate_limit_error | 速率限制 |
invalid_request_error | 请求参数错误 |
content_policy_violation | 违反内容政策 |
server_error | 服务器错误 |
| 类型 | 建议大小 | 最大限制 |
|---|---|---|
| 图片 | < 5MB | 20MB |
| 视频 | < 10MB | 50MB |
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 社交媒体竖屏 | sora-2-portrait-15s | 适合手机观看 |
| 横屏电影感 | sora-2-landscape-15s | 电影级宽屏 |
| 图片生成 | sora-image-landscape | 横版构图更美观 |
multipart/form-data 上传大文件style_id 参数,支持视频风格设置sora-2-characters 专用角色创建模型/v1/chat/completions 端点通过 text 类型直接传入图片或视频 URLinput_reference 参数,支持自动识别图片和视频multipart/form-data 格式的 input_reference 文件上传/v1/images/generations 端点(OpenAI 标准格式)/v1/images/edits 端点(OpenAI 标准格式)