01 / GETTING STARTED
QUICK STARTROSE APITEXT / CODING / MESSAGES
开始使用 Rose API
一个 API 地址、一个访问令牌,按实际需要选择 Chat、Responses 或 Claude Messages 协议。
01 / CHATChat Completions常规聊天、问答与应用集成
POST /v1/chat/completions查看接口文档 ↗ 02 / CODINGResponses APICodex、编程客户端与工具调用
POST /v1/responses查看接口文档 ↗ 03 / CLAUDEMessages APIClaude Code 与 Anthropic SDK
POST /v1/messages查看接口文档 ↗
接入前准备
- 进入 Rose API 登录账户。
- 在控制台生成 API Key,并确认令牌分组与可用模型。
- 打开 模型与价格,复制真实可用的模型 ID,替换文档中的
YOUR_MODEL_ID。 - 根据软件需要选择协议,先用下面的模型列表测试鉴权,再进行正式调用。
基础地址与接口约定
| 项目 | 填写内容 | 说明 |
|---|
| 网站地址 | https://api.365rose.com | 站点首页,不含版本前缀 |
| OpenAI SDK Base URL | https://api.365rose.com/v1 | SDK 自动拼接 /chat/completions 或 /responses |
| Claude Code Base URL | https://api.365rose.com | Claude Code 自行附加 /v1/messages |
| 鉴权 | Authorization: Bearer sk-... | OpenAI 格式;Claude 原生格式也可使用 x-api-key |
| 编码 | application/json | 请求体主要为 JSON;流式以 text/event-stream 返回 |
第一步:测试密钥与模型列表
curl -sS https://api.365rose.com/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
成功时通常会得到包含 data 的模型列表。展示内容与可用权限可能受令牌分组限制。请以站点模型与价格页面和你的令牌可用性为准。
选择哪个协议?
| 应用场景 | 推荐协议 | 需要填写的 Base URL |
|---|
| 聊天机器人、OpenAI SDK、常规问答 | Chat Completions | https://api.365rose.com/v1 |
| Codex、使用 Responses 的编程工具 | Responses | https://api.365rose.com/v1 |
| Claude Code、Anthropic SDK | Messages | https://api.365rose.com |
不同客户端要求的 Base URL 前缀可能不同。不要把完整的 /v1/chat/completions URL 填进只需要 Base URL 的输入框,否则可能拼成重复路径。
常见状态与排查
| 现象 | 优先检查 |
|---|
401 | API Key 是否正确、请求头是否携带,以及令牌是否已停用 |
403 / 权限错误 | 令牌分组、可用模型、账号额度和站点访问限制 |
404 | Base URL 是否多写 / 少写 /v1,以及请求的路径是否被该渠道支持 |
429 | 请求频率、并发限制与配额 |
| 格式或参数错误 | 协议是否选对、模型是否支持该协议与参数 |
这里介绍的是 New API 常见接口格式;某个模型是否支持 Responses、工具调用或 Claude Messages,需要以 Rose API 实际上架渠道及其兼容性为准。
02 / CHAT COMPLETIONS
TEXT GENERATIONROSE APIPOST /v1/chat/completions
OpenAI Chat Completions
面向常规对话、问答、文本任务与兼容 OpenAI Chat API 的应用。
请求方法 POST · 完整地址:https://api.365rose.com/v1/chat/completions。
OpenAI SDK 的 base_url 填 https://api.365rose.com/v1。
接口规范
| 项目 | 说明 |
|---|
| 路径 | POST /v1/chat/completions |
| Content-Type | application/json |
| 鉴权 | Authorization: Bearer YOUR_API_KEY |
| 输入 | model + messages |
| 典型输出 | choices[0].message.content |
| 流式 | stream: true 返回逐块增量数据 |
请求参数
| 参数 | 类型 | 是否必需 | 说明 |
|---|
model | string | 是 | 站点实际可用模型 ID,如模型价格页所示 |
messages | array | 是 | 消息数组,包含 role 与 content |
stream | boolean | 否 | 设为 true 启用流式响应 |
temperature | number | 视模型支持 | 采样参数;部分推理模型不接受或忽略此项 |
max_completion_tokens | integer | 视模型支持 | 输出 token 上限;旧模型可能采用其他参数 |
tools | array | 视模型支持 | 函数工具定义;依赖模型及渠道的工具调用能力 |
cURL 示例
curl https://api.365rose.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [
{"role": "user", "content": "用一句话介绍 Rose API"}
],
"stream": false
}'
Python · OpenAI SDK
# pip install --upgrade openai
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.365rose.com/v1"
)
result = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[{"role": "user", "content": "你好"}]
)
print(result.choices[0].message.content)
返回结构与读取
{
"id": "chatcmpl_...",
"object": "chat.completion",
"choices": [
{"index": 0, "message": {"role": "assistant", "content": "你好!"}, "finish_reason": "stop"}
],
"usage": {"prompt_tokens": 8, "completion_tokens": 5, "total_tokens": 13}
}
以上仅为结构示意。不同模型、渠道或流式模式下,返回字段可能不同;其中 choices 为常用的回复数组。
适用客户端与注意事项
- 多数写着“OpenAI Compatible / Chat Completions”的软件都可以用。
- 若客户端要求“API Host”,注意它可能期望带
/v1 的地址,也可能自己追加版本路径。 - 涉及函数调用、视觉输入、结构化输出时先确认模型支持,再添加对应参数。
03 / OPENAI RESPONSES
CODING & AGENTSROSE APIPOST /v1/responses
Responses API · 编程接口
适用于使用 OpenAI Responses 协议的编程客户端、Agent 工作流和部分 Codex 接入场景。
Responses 与 Chat Completions 不是同一请求结构。前者使用 input,后者使用 messages;客户端选择哪套协议,就需要使用对应接口。
接口规范
| 项目 | 说明 |
|---|
| 路径 | POST /v1/responses |
| Content-Type | application/json |
| 鉴权 | Authorization: Bearer YOUR_API_KEY |
| 输入 | model + input |
| 输出 | 常见为 output 数组,或 SDK 提供的 output_text |
| 流式 | stream: true 事件流,使用事件类型逐步接收结果 |
请求参数
| 参数 | 类型 | 必需 | 说明 |
|---|
model | string | 是 | 支持 Responses 的站内模型 ID |
input | string / array | 是 | 字符串或结构化输入项数组 |
instructions | string | 否 | 用于定义模型行为的高优先级指令 |
stream | boolean | 否 | 是否使用事件流 |
tools | array | 视模型支持 | 函数等工具配置;协议转换可能限制字段 |
max_output_tokens | integer | 视模型支持 | 输出 token 上限 |
previous_response_id | string | 视服务支持 | 引用已有 Responses 结果;需后端支持会话存储 |
cURL · 最简调用
curl https://api.365rose.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_RESPONSES_MODEL_ID",
"instructions": "你是一位编程助手。",
"input": "请写一个读取 JSON 文件的 Python 函数。",
"stream": false
}'
Python · OpenAI SDK
# pip install --upgrade openai
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.365rose.com/v1"
)
response = client.responses.create(
model="YOUR_RESPONSES_MODEL_ID",
input="编写一个健壮的重试装饰器"
)
print(response.output_text)
Codex 配置参考
支持 Responses 的 Codex 客户端通常需要 base_url 包含 /v1,并将协议指定为 responses。以下为配置结构示例,具体写入方式与当前 Codex / CC Switch 版本有关。
# ~/.codex/config.toml(配置结构示例)
model_provider = "rose-api"
model = "YOUR_RESPONSES_MODEL_ID"
[model_providers.rose-api]
name = "Rose API"
base_url = "https://api.365rose.com/v1"
wire_api = "responses"
experimental_bearer_token = "YOUR_API_KEY"
并非所有 Chat 模型都能在 /v1/responses 上使用。Codex 或编程客户端还可能依赖流式事件、工具调用或特殊字段;请先通过 cURL 检测目标模型的 Responses 能力,再配置客户端。
如何判断接口已经通了?
- 请求成功时可拿到包含
id、output 等信息的响应。 - 若报
404,先检查是否错误拼接了 /v1/v1/responses。 - 若报不支持的字段或模型错误,确认所选模型、渠道和 Responses 协议是否匹配。
04 / ANTHROPIC MESSAGES
CLAUDE / MESSAGESROSE APIPOST /v1/messages
Claude Code · Messages API
兼容 Anthropic Messages 的模型可通过原生协议调用;Claude Code 使用的也是这类接口。
Claude 原生 Messages 与 OpenAI Chat Completions 是不同的格式。Rose API 的 New API 后端提供 POST /v1/messages 接口,但不代表所有模型都支持 Claude Code 所需的功能。
接口规范
| 项目 | 说明 |
|---|
| 路径 | POST /v1/messages |
| 鉴权 | x-api-key: YOUR_API_KEY 或 Authorization: Bearer YOUR_API_KEY |
| 版本头 | anthropic-version: 2023-06-01 |
| Content-Type | application/json |
| 输入 | model、max_tokens、messages |
| 输出 | content 数组;文本一般为 content[].text |
请求参数
| 参数 | 类型 | 必需 | 说明 |
|---|
model | string | 是 | 实际可用的 Claude 或 Anthropic Messages 兼容模型 ID |
messages | array | 是 | 聊天数组,包含用户和助手角色 |
max_tokens | integer | 是 | 最大输出 token 数;需要合理设置 |
system | string / array | 否 | 系统指令,在 Messages 格式中作为顶层字段 |
stream | boolean | 否 | 启用流式输出 |
tools | array | 视模型支持 | 工具定义,Claude Code 高级功能常依赖工具调用 |
cURL 示例
curl https://api.365rose.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MESSAGES_MODEL_ID",
"max_tokens": 512,
"messages": [
{"role": "user", "content": "用两句话说明 REST API"}
]
}'
Python · Anthropic SDK
# pip install --upgrade anthropic
from anthropic import Anthropic
client = Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.365rose.com"
)
message = client.messages.create(
model="YOUR_MESSAGES_MODEL_ID",
max_tokens=512,
messages=[{"role": "user", "content": "你好"}]
)
for block in message.content:
if block.type == "text":
print(block.text)
Claude Code · 环境配置
如果使用 Claude Code,可以将其 API 地址指向 Rose API。这里不要在 ANTHROPIC_BASE_URL 末尾添加 /v1。
// ~/.claude/settings.json · 示例
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.365rose.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "YOUR_MESSAGES_MODEL_ID"
}
}
也可以让 CC Switch 代为管理供应商配置与切换,不需要同时手工修改多个客户端配置。查看 CC Switch 教程 →
将 API Key 写进本地配置后,注意保护本机文件。不同版本 Claude Code 对模型别名、认证变量或额外功能有区别;遇到身份验证或模型加载问题,先确认当前客户端版本及实际支持的模型。
06 / FLOW · OMNI
VIDEO GENERATIONROSE APIOPENAI COMPATIBLE
Flow · Omni 1.1 Flash Video
🎬 Flow · Omni 1.1 Flash:一个模型名 flow-omni-1.1-flash,支持文生视频、多图参考图生视频两种模式,按请求里是否带参考图自动切换。无水印、约 8 秒、720p出片,OpenAI 兼容异步接口,按次计费、失败不计费。画幅朝向用 aspect_ratio(16:9 横屏默认 / 9:16 竖屏),也可用 size 指定。
模型与价格
| 模型 | 模式 | 分辨率 | 计费 | 价格 / 次(约 8 秒) |
flow-omni-1.1-flash | 文生视频 / 多图参考图生视频 | 720p | 按次 | $5.8 |
按次计费:文生视频、多图参考图生视频均为 $5.8 / 次。约 8 秒出片、无需传时长,720p,失败不计费。
两种模式(按素材自动切换)
| 模式 | 怎么触发 | 价格 / 次 | 说明 |
| 文生视频(T2V) | 只传 prompt,不带参考图 | $5.8 | 纯文字生成视频 |
| 图生视频(I2V) | prompt + images(或单张 image) | $5.8 | 多图参考图生视频;参考图须公网可直接下载或用 base64(需登录 / 内网 / 拦爬虫的链接会失败) |
选档规则:带参考图(images)→ 图生视频;不带 → 文生视频。两种模式同一模型名 flow-omni-1.1-flash,均为 $5.8 / 次。
接口信息
| 项 | 说明 |
| Base URL | https://api.365rose.com |
| 提交任务 | POST /v1/videos(JSON) |
| 轮询进度 | GET /v1/videos/{task_id},status=completed 表示完成 |
| 下载成片 | 用轮询返回的顶层 video_url 直接下载 mp4(地址已脱敏、我方域名) |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 令牌分组 | Gemini flow |
| 耗时 | 通常 1–2 分钟;客户端应轮询,不要重复提交同一任务 |
核心参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
model | string | 是 | - | 固定 flow-omni-1.1-flash(文生 / 图生视频都用这一个名字) |
prompt | string | 是 | - | 画面 / 运动描述 |
resolution | string | 否 | 720p | 固定 720p(本模型仅提供 720p) |
aspect_ratio | string | 否 | 16:9 | 决定画幅 / 朝向:16:9(横屏,默认)/ 9:16(竖屏)。不传即横屏,要竖屏传 9:16 |
size | string | 否 | - | 也可用 WxH 指定朝向(如 1280x720 横 / 720x1280 竖);传了 size 时以它为准。清晰度恒 720p |
images | 数组(URL / base64) | 否(图生必填) | - | 图生视频:多图参考(建议 ≤6 张,多传模型可能只取前几张、不提升效果);公网可直取 URL 或 data:image/...;base64,。单张也可用 image |
⚠️ 约 8 秒出片,无需传 seconds / duration。朝向用 aspect_ratio(或 size),清晰度恒 720p。
画幅与朝向(横屏 / 竖屏怎么定)
| 想要 | 用 aspect_ratio | 或用 size | 输出(恒 720p) |
| 横屏(默认) | 不传 或 "16:9" | "1280x720" | 1280 × 720 |
| 竖屏 | "9:16" | "720x1280"(或 "1080x1920") | 720 × 1280 |
比例不是必填:不传默认出横屏 16:9(1280×720);要竖屏传 aspect_ratio:"9:16",或用 size 传竖版 WxH(如 720x1280、1080x1920——超过 720p 会自动缩放到 720p)。同时传 size 和 aspect_ratio 时以 size 为准。清晰度恒 720p;图生视频同样用 aspect_ratio / size 指定朝向。
示例请求(curl)
BASE_URL="https://api.365rose.com"
TOKEN="sk-你的令牌"
# 1) 文生视频(720p 横屏,默认)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"日出时分平静的湖面雾气升腾,电影感镜头"}'
# 2) 文生视频(竖屏 9:16)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"竖屏短视频:城市夜景延时,霓虹流光","aspect_ratio":"9:16"}'
# 3) 图生视频(参考图,URL 或 base64)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"参考这些图片生成连贯运镜","images":["https://img1.jpg","https://img2.jpg"]}'
# => {"task_id":"task_xxx","status":"queued",...}
Python 完整示例(提交 → 轮询 → 下载)
import time, requests
BASE = "https://api.365rose.com"
TOKEN = "sk-你的令牌"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
# 提交:文生 720p 横屏。
# 竖屏 -> 加 "aspect_ratio": "9:16"
# 图生 -> 加 "images": ["https://.../a.jpg", "https://.../b.jpg"](也支持 base64)
payload = {
"model": "flow-omni-1.1-flash",
"prompt": "日出时分平静的湖面雾气升腾,电影感镜头",
"aspect_ratio": "16:9", # 16:9 横屏 / 9:16 竖屏
}
r = requests.post(f"{BASE}/v1/videos", headers=H, json=payload, timeout=60)
r.raise_for_status()
task = r.json()
task_id = task.get("task_id") or task.get("id")
print("task_id:", task_id)
# 轮询直到完成(约 8 秒成片,通常 1-2 分钟)
while True:
time.sleep(5)
d = requests.get(f"{BASE}/v1/videos/{task_id}", headers=H, timeout=30).json()
status = str(d.get("status", "")).lower()
print("status:", status)
if status == "completed":
video_url = d.get("video_url") or (d.get("data") or [{}])[0].get("url")
break
if status == "failed":
raise RuntimeError(d.get("error") or d)
open("out.mp4", "wb").write(requests.get(video_url, timeout=180).content)
print("成片:", video_url)
轮询取片
# 轮询直到 status=completed
curl -sS "$BASE_URL/v1/videos/task_xxx" -H "Authorization: Bearer $TOKEN"
# => {"status":"completed","video_url":"https://api.365rose.com/d/dl/xxx.mp4",...}
# 下载成片:用上面返回的 video_url(mp4,地址已脱敏、我方域名)
curl -sSL "<上面返回的 video_url>" -o out.mp4
轮询间隔建议 3–5 秒、客户端超时 ≥ 300 秒;勿重复提交同一任务。
注意事项
- 一个模型名
flow-omni-1.1-flash、自动切换:带参考图(images)= 图生视频;不带 = 文生视频。均为 $5.8 / 次。
- 朝向用
aspect_ratio(16:9 横屏默认 / 9:16 竖屏),也可用 size 的 WxH;清晰度恒 720p。
- 比例非必填:不传默认横屏 16:9;要竖屏传
aspect_ratio:"9:16"。
- 无水印、约 8 秒;按次计费、失败不计费。
- 多图参考
images:参考图须公网可直接下载或用 base64(需登录 / 内网 / 拦爬虫的链接会失败)。
- 生成约 1–2 分钟;轮询取片、勿重复提交同一任务。
- 提示词与参考图避免暴露 / 未成年 / 血腥暴力等敏感内容,否则被内容安全拦截(不计费)。
07 / OMNI VIDEO
VIDEO GENERATIONROSE APIOPENAI COMPATIBLE
Omni 视频生成
基于 Gemini Veo 的视频生成服务,支持文生视频、图生视频(最多 5 张参考图)。
模型与价格
| 模型 | 能力 | 计费 | 价格 |
omni-fast | 文生视频 / 图生视频 | 按次 | $3.25/次 |
omni-fast-no-water | 文生 / 图生视频(无水印) | 按次 | $3.45/次 |
无水印模型输出经过自动清洗处理,完成前可能多一个 processing 阶段,稍慢。失败不计费。
接口信息
| 项 | 说明 |
| Base URL | https://api.365rose.com |
| 提交任务 | POST /v1/videos(JSON 或 multipart) |
| 轮询进度 | GET /v1/videos/{task_id} |
| 下载成片 | GET /v1/videos/{task_id}/content 或返回的 data[0].url |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 令牌分组 | gemini-fast |
核心参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
model | string | 是 | - | 模型名,见上表 |
prompt | string | 是 | - | 视频描述提示词(无我方硬性长度上限,走 Gemini 官方) |
aspect_ratio | string | 否 | 16:9 | 画幅比例:16:9(横)、9:16(竖) |
seconds / duration | string/int | 否 | 10 | 时长秒数(接收但当前 Gemini 固定输出约 10 秒) |
image_url | string | 否(图生必填其一) | - | 单张参考图(公网 URL 或 data:image Base64) |
first_image_url | string | 否 | - | 首帧参考图 URL |
last_image_url | string | 否 | - | 末帧参考图 URL |
images | string[] | 否 | - | 多参考图数组(最多 5 张,每张 ≤8MB;也可传 data:...;base64,) |
Multipart 提交(支持文件上传)
| 字段 | 说明 |
input_reference / input_reference[] | 参考图文件上传(最多 5 张,每张 ≤8MB)。input_reference[] 为浏览器画布 / Sora 兼容客户端的数组写法:单张=图生视频(首帧动画),多张=多参考图;两种写法均可 |
示例:文生视频
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-fast",
"prompt": "雨夜霓虹街道,镜头缓慢推进,电影感光影",
"aspect_ratio": "16:9"
}'
示例:图生视频
# JSON:参考图 URL
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-fast",
"prompt": "保持人物一致,缓慢走动",
"image_url": "https://your-cdn.com/photo.jpg",
"aspect_ratio": "16:9"
}'
# multipart:直接上传图片文件
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-F "model=omni-fast" \
-F "prompt=保持人物一致,缓慢走动" \
-F "[email protected]"
参考图 URL 要求
参考图直接给公网 URL 即可,服务端会替你下载(经代理,不暴露你我的 IP),你只要保证链接能被匿名 GET 到;也可以传 data:image/...;base64,。URL 必须满足:
| 要求 | 说明 |
| 匿名可下载 | 服务端下载时不会带你的任何鉴权头。需要签名/登录才能访问的私有链接一律取不到,请用预签名直链(presigned URL)或公开对象。 |
| 直链,返回 200 | 要指向文件本身,不是网盘的分享页。302 跳转可以,会自动跟随。 |
| 时效要够 | 预签名 URL 的有效期建议留 30 分钟以上:任务排队 + 生成可能需要数分钟。 |
| Content-Type | 不强制。服务端识别不了时按 image/jpeg 兜底。 |
让它照着念台词
omni-fast 文生 / 图生视频会把你写的英文台词一字不差地念出来——把台词用引号写进提示词即可。8 个不同场景实测逐字 8/8,按序命中率 1.00。
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-fast",
"prompt": "A woman in a bright studio holds up a wireless earbud case to the camera. She speaks clearly to camera and says, \"This one lasts nine hours on a single charge.\" Bright commercial product-ad look.",
"aspect_ratio": "16:9"
}'
| 要照着念台词,选哪个模型 | 逐字命中 | 说明 |
omni-fast 文生 / 图生视频 + 引号台词 | 8/8 | ✅ 想要精确台词就用它 |
实测 8 个不同场景、同一句台词,逐字 8/8。所以:要精确台词 → 把台词用引号写进提示词。
轮询取片
curl https://api.365rose.com/v1/videos/{task_id} \
-H "Authorization: Bearer sk-xxx"
# 完成后(优先读顶层 video_url,兼容 data[0].url;均为完整下载直链):
# {"status":"completed",
# "video_url":"https://api.365rose.com/v1/videos/vid-xxxx/content",
# "data":[{"url":"https://api.365rose.com/v1/videos/vid-xxxx/content"}]}
08 / GROK IMAGINE
VIDEO & IMAGE GENERATIONROSE APIOPENAI COMPATIBLE
Grok Imagine xAI
🎬 Grok Imagine:基于 xAI Grok Imagine 的媒体生成接口。当前文档仅保留 grok-imagine-video(1.0)与 grok-imagine-video-1.5-preview(1.5)两款视频模型,不包含固定 6 秒版本。视频走 OpenAI 兼容异步接口;图像生成与编辑走同步接口。本站统一 Base URL:https://api.365rose.com。
Grok 视频 · 模型与价格
| 模型 | 分辨率 | 计费 | 价格 |
grok-imagine-video | 480p(默认) | 按秒 | ¥0.10 / 秒 |
grok-imagine-video | 720p | 按秒 | ¥0.15 / 秒 |
grok-imagine-video-1.5-preview | 480p | 按秒 | ¥0.20 / 秒 |
grok-imagine-video-1.5-preview | 720p(推荐) | 按秒 | ¥0.26 / 秒 |
grok-imagine-video-1.5-preview | 1080p | 按秒 | ¥0.30 / 秒 |
按秒计费:费用 = 分辨率单价 × seconds。失败不计费。1.0 支持 480p / 720p;1.5-preview 额外支持 1080p。
视频接口信息
| 项 | 说明 |
| Base URL | https://api.365rose.com |
| 提交任务 | POST /v1/videos(JSON) |
| 轮询进度 | GET /v1/videos/{task_id},status=completed 时读取 video_url |
| 下载成片 | 直接 GET 轮询结果中的 video_url |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 令牌分组 | xAI 或 auto |
视频核心参数
| 参数 | 类型 / 取值 | 默认 | 说明 |
model | grok-imagine-video / grok-imagine-video-1.5-preview | - | 必填。1.0 适合纯文生;1.5 画面质感更高,建议搭配参考图 |
prompt | string | - | 必填,画面与运动描述 |
image | 公网 URL / base64 Data URI | - | 可选,单张首帧;带图即图生视频 |
reference_images | URL 数组,最多 7 张 | - | 仅 1.5-preview 的 480p / 720p 多图参考生效;1080p 仅支持单张 image |
seconds | 字符串,1 ~ 15 | 6 | 视频时长,按秒计费 |
aspect_ratio | 16:9 / 9:16 / 1:1 | 16:9 | Grok 视频仅支持这三种画幅 |
resolution | 480p / 720p;1.5 另支持 1080p | 480p | 决定输出清晰度与单价 |
size | 如 720x1280 / 1024x1024 | - | 兼容旧客户端,系统会换算为接近的 aspect_ratio |
⚠️ 1080p 限制:grok-imagine-video-1.5-preview 的 1080p 仅支持单张首帧 image,不支持多图 reference_images。需要多图参考请使用 480p / 720p。
视频示例请求
# 文生视频 · Grok Imagine 1.0
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"prompt": "灯塔在日落时分,海浪拍打礁石,电影感镜头",
"seconds": "8",
"aspect_ratio": "16:9",
"resolution": "720p"
}'
# 图生视频 · Grok Imagine 1.5
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5-preview",
"resolution": "720p",
"prompt": "轻微镜头推移,画面自然生动",
"image": "https://your-public-image.jpg",
"seconds": "8",
"aspect_ratio": "16:9"
}'
# 多图参考 · 1.5-preview 720p
curl -X POST https://api.365rose.com/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5-preview",
"resolution": "720p",
"prompt": "融合多张参考图的场景,电影感转场",
"reference_images": ["https://img-a.jpg", "https://img-b.jpg"],
"seconds": "8"
}'
轮询取片
curl https://api.365rose.com/v1/videos/task_xxx \
-H "Authorization: Bearer sk-xxx"
# status=completed 后读取 video_url 并下载
curl -L "<video_url>" -o grok.mp4
建议每 3–5 秒轮询一次;客户端超时建议 ≥ 300 秒。任务已经受理后只轮询同一个 task_id,不要重复 POST。
Python 完整示例
import time
import requests
BASE = "https://api.365rose.com/v1"
TOKEN = "sk-你的令牌"
H = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
# 1.5 图生视频 · 720p
task = requests.post(f"{BASE}/videos", headers=H, json={
"model": "grok-imagine-video-1.5-preview",
"resolution": "720p",
"prompt": "轻微镜头推移,画面自然生动",
"image": "https://your-public-image.jpg",
"seconds": "8",
"aspect_ratio": "16:9",
}, timeout=60).json()
task_id = task.get("task_id") or task.get("id")
print("task_id:", task_id)
while True:
time.sleep(4)
s = requests.get(f"{BASE}/videos/{task_id}", headers=H, timeout=30).json()
status = s.get("status")
print("status:", status)
if status == "completed":
video_url = s.get("video_url") or (s.get("data") or [{}])[0].get("url")
print("下载:", video_url)
break
if status == "failed":
raise RuntimeError(s.get("error") or s)
视频注意事项
grok-imagine-video 不带图可直接文生视频;grok-imagine-video-1.5-preview 建议带清晰参考图。
seconds 支持 1–15 秒;价格按所选分辨率的单价 × 秒数结算。
- 多图参考仅建议用于 1.5-preview 480p / 720p,最多 7 张。
- 1080p 只支持单张首帧
image。
- 参考图 URL 必须公网可直接访问;否则请改用完整 base64 Data URI。
- 视频画幅只支持
16:9、9:16、1:1。
- 失败不计费。
Grok 图像 · 用法总览
| 场景 | 端点 | 模型 |
| 文生图 | POST /v1/images/generations | grok-imagine-image / grok-imagine-image-2.0 / grok-imagine-image-lite |
| 图生图 / 图片编辑 | POST /v1/images/edits | grok-imagine-image / grok-imagine-image-2.0 |
grok-imagine-image 与 grok-imagine-image-2.0 同一个模型名可用于两种接口:/generations 做文生图,/edits 做图生图 / 编辑。-lite 仅支持文生图。
Grok 图像 · 模型与价格
| 模型 | 能力 | 计费 | 价格 |
grok-imagine-image-lite | 文生图 | 按张 | ¥0.02 / 张 |
grok-imagine-image | 文生图 + 图生图 / 编辑 | 按张 | ¥0.055 / 张 |
grok-imagine-image-2.0 | 文生图 + 图生图 / 编辑(新版) | 按张 | ¥0.065 / 张 |
图片接口为同步接口,请求成功后直接返回图片,无需轮询 task_id。失败不计费。
图像尺寸与画幅
| 模型 | size 可选 | aspect_ratio 可选 | 默认 |
grok-imagine-image / grok-imagine-image-2.0 | 1024x1024 / 1792x1024 / 1024x1792 | 1:1 / 16:9 / 9:16 / 2:3 / 3:2 / 4:3 / 3:4 | 1024x1024 |
grok-imagine-image-lite | 1280x720 / 720x1280 / 960x960 | - | - |
size 与 aspect_ratio 二选一;其它取值可能报错。
图像核心参数
| 参数 | 取值 | 默认 | 说明 |
model | 见上表 | - | 必填;-lite 仅文生图 |
prompt | string | - | 必填,生成或修改描述 |
n | integer | 1 | 生成数量,建议一次请求 1 张 |
response_format | url / b64_json | url | 返回下载地址或 Base64 数据 |
size | 模型支持的尺寸 | 1024x1024 | 与 aspect_ratio 二选一 |
aspect_ratio | 模型支持的画幅 | - | grok-imagine-image / -2.0 使用 |
image | 公网 URL / base64 Data URI | - | 图生图单张参考图 |
images | URL / Data URI 数组 | - | JSON 多参考图 |
图像示例请求
# 文生图
curl -X POST https://api.365rose.com/v1/images/generations \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-image-2.0",
"prompt": "一座漂浮在云海上的未来城市,清晨柔光,电影感",
"n": 1,
"size": "1024x1024",
"response_format": "url"
}'
# 图生图 / 图片编辑 · JSON 单图
curl -X POST https://api.365rose.com/v1/images/edits \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-image-2.0",
"prompt": "保留主体构图,将背景改为雨后的霓虹街道",
"image": "https://your-public-image.jpg",
"response_format": "url"
}'
# 图生图 / 图片编辑 · multipart 多图
curl -X POST https://api.365rose.com/v1/images/edits \
-H "Authorization: Bearer sk-xxx" \
-F "model=grok-imagine-image-2.0" \
-F "prompt=融合两张参考图的风格,生成商品展示图" \
-F "image[][email protected]" \
-F "image[][email protected]" \
-F "response_format=url"
图像返回
{
"created": 1786675686,
"data": [
{
"url": "https://api.365rose.com/v1/images/proxy/<encrypted-token>"
}
]
}
response_format=url 时直接读取 data[].url;需要本地持久化或继续作为参考图使用时可选择 b64_json。
图像注意事项
- 图像接口为同步请求,请等待
data 返回后再继续处理。
- 参考图公网 URL 必须能被服务端直接下载;访问受限时请使用完整
data:image/...;base64,...。
- JSON 多图使用
images 数组;multipart 多图重复传 image[]。
url 适合直接展示 / 下载;b64_json 适合本地持久化或二次处理。
n 建议传 1,需要多张时分多次请求更稳。