OurAPI 开发文档
OurAPI 提供与 OpenAI 完全兼容的 REST API,支持图片生成与视频生成。只需将现有应用的 base_url 替换为 OurAPI 地址,即可无缝接入。
快速开始
-
1注册并登录控制台
访问 api.ourapi.top,注册账号并登录。
-
2创建 API 令牌
进入「令牌管理」→「添加令牌」,创建完成后复制你的 API Key,格式为
sk-xxxxxxxxxx。API Key 创建后只显示一次,请立即保存到安全的地方。 -
3发起第一个请求
图片和视频生成均通过
POST /v1/chat/completions接口调用。建议开启流式响应(stream: true)以防客户端超时断连。bashcurl https://api.ourapi.top/v1/chat/completions \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "imagen4", "messages": [{"role": "user", "content": "一只在草地上奔跑的金毛犬,阳光明媚"}], "stream": true, "ratio": "16:9" }'流式响应结束后,choices[0].delta.content中包含生成结果的 Markdown 图片/视频链接。
认证与鉴权
所有 API 请求必须在 HTTP Header 中携带 Authorization 字段。
Authorization: Bearer sk-your-api-key
| 传参方式 | 示例 | 说明 |
|---|---|---|
| HTTP Header 推荐 | Authorization: Bearer sk-xxx |
最安全,适合所有场景 |
| Query 参数 | ?api_key=sk-xxx |
仅用于临时测试,不建议生产环境使用 |
模型列表
所有模型均通过 POST /v1/chat/completions 调用,在 model 字段中指定模型 ID。
🖼 图片模型
| 模型 ID | 分辨率 | 说明 |
|---|---|---|
imagen4 | 1K | Google Imagen 4 标准版 |
nano-banana-2 | 1K | 快速生成 |
nano-banana-pro | 1K | 高质量输出 |
imagen4-2k | 2K | Imagen 4 高清版 |
nano-banana-2-2k | 2K | 快速高清 |
nano-banana-pro-2k | 2K | 高质量高清 |
imagen4-4k | 4K | 超高清 |
nano-banana-2-4k | 4K | 超高清,快速 |
nano-banana-pro-4k | 4K | 超高清,高质量 |
🎬 视频模型
Veo 3.1 系列 — 固定 8 秒时长
| 模型 ID | 分辨率 | 档位 |
|---|---|---|
veo3-1-fast | 720P | 快速 |
veo3-1-quality | 720P | 高质量 |
veo3-1-lite | 720P | 轻量 |
veo3-1-fast-1080p | 1080P | 快速 |
veo3-1-quality-1080p | 1080P | 高质量 |
veo3-1-lite-1080p | 1080P | 轻量 |
veo3-1-fast-4k | 4K | 快速 |
veo3-1-quality-4k | 4K | 高质量 |
veo3-1-lite-4k | 4K | 轻量 |
Omni Flash 系列 — 可选时长(4 / 6 / 8 / 10 秒)
| 模型 ID | 分辨率 | 时长 |
|---|---|---|
omni-fast-4s | 720P | 4 秒 |
omni-fast-6s | 720P | 6 秒 |
omni-fast-8s | 720P | 8 秒 |
omni-fast-10s | 720P | 10 秒 |
omni-fast-1080p-4s | 1080P | 4 秒 |
omni-fast-1080p-6s | 1080P | 6 秒 |
omni-fast-1080p-8s | 1080P | 8 秒 |
omni-fast-1080p-10s | 1080P | 10 秒 |
omni-fast-4k-4s | 4K | 4 秒 |
omni-fast-4k-6s | 4K | 6 秒 |
omni-fast-4k-8s | 4K | 8 秒 |
omni-fast-4k-10s | 4K | 10 秒 |
接口:获取模型列表
返回当前账号可用的所有模型,格式与 OpenAI 兼容。
curl https://api.ourapi.top/v1/models \
-H "Authorization: Bearer sk-your-api-key"
接口:图片生成
提交图片生成任务。服务端持连接等待,生成完成后在响应中返回 Markdown 格式的图片链接。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 必填 | 图片模型 ID,如 imagen4 |
messages | array | 必填 | 对话消息,取最后一条 role: "user" 的内容作为提示词 |
stream | boolean | 可选 | 开启流式响应,默认 false |
ratio | string | 可选 | 图片宽高比,默认 "1:1",详见参数说明 |
reference | string / array | 可选 | 参考图,支持文件上传、URL、base64 三种方式。可传数组使用多张。详见参考图说明 |
响应
| 字段路径 | 说明 |
|---|---|
choices[0].message.content | 非流式响应:Markdown 图片链接,如  |
choices[0].delta.content | 流式响应:最终 chunk 中的 Markdown 图片链接 |
choices[0].finish_reason | "stop" 表示成功完成 |
接口:视频生成
与图片生成使用同一接口,通过 model 字段区分。视频生成耗时较长(通常 1~5 分钟),强烈建议开启 stream: true。
请求参数
代码示例:图片生成
curl https://api.ourapi.top/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
"model": "nano-banana-pro",
"messages": [
{"role": "user", "content": "赛博朋克风格的东京夜景,霓虹灯倒映在雨后的街道上"}
],
"stream": true,
"ratio": "16:9"
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.ourapi.top/v1",
timeout=300, # 图片生成最多等 5 分钟
)
with client.chat.completions.stream(
model="nano-banana-pro",
messages=[{"role": "user", "content": "赛博朋克风格的东京夜景,霓虹灯倒映在雨后的街道上"}],
extra_body={"ratio": "16:9"},
) as stream:
result = ""
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
result += delta
print(result) # 
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://api.ourapi.top/v1",
timeout: 300_000, // 300 秒
});
const stream = await client.chat.completions.create({
model: "nano-banana-pro",
messages: [{role: "user", content: "赛博朋克风格的东京夜景,霓虹灯倒映在雨后的街道上"}],
stream: true,
// @ts-ignore
extra_body: {ratio: "16:9"},
});
let result = "";
for await (const chunk of stream) {
result += chunk.choices[0]?.delta?.content ?? "";
}
console.log(result); // 
代码示例:参考图生成
在请求中加入 reference 字段即可传入参考图,图片和视频模型均支持。
curl https://api.ourapi.top/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
"model": "imagen4",
"messages": [{"role": "user", "content": "将画面中的人物转换为动漫风格"}],
"stream": true,
"ratio": "1:1",
"reference": "https://example.com/reference.jpg"
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.ourapi.top/v1",
timeout=300,
)
with client.chat.completions.stream(
model="imagen4",
messages=[{"role": "user", "content": "将画面中的人物转换为动漫风格"}],
extra_body={
"ratio": "1:1",
"reference": "https://example.com/reference.jpg",
# 多张参考图:
# "reference": ["https://img1.jpg", "https://img2.jpg"]
},
) as stream:
result = ""
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
result += delta
print(result)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://api.ourapi.top/v1",
timeout: 300_000,
});
const stream = await client.chat.completions.create({
model: "imagen4",
messages: [{role: "user", content: "将画面中的人物转换为动漫风格"}],
stream: true,
// @ts-ignore
extra_body: {
ratio: "1:1",
reference: "https://example.com/reference.jpg",
// 多张参考图:reference: ["https://img1.jpg", "https://img2.jpg"]
},
});
let result = "";
for await (const chunk of stream) {
result += chunk.choices[0]?.delta?.content ?? "";
}
console.log(result);
代码示例:视频生成
curl https://api.ourapi.top/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
"model": "veo3-1-quality-1080p",
"messages": [
{"role": "user", "content": "一只老鹰在雪山上空展翅翱翔,镜头缓缓拉升"}
],
"stream": true,
"ratio": "16:9",
"mode": "Frames"
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.ourapi.top/v1",
timeout=660, # 视频生成最多等 11 分钟
)
with client.chat.completions.stream(
model="veo3-1-quality-1080p",
messages=[{"role": "user", "content": "一只老鹰在雪山上空展翅翱翔,镜头缓缓拉升"}],
extra_body={"ratio": "16:9", "mode": "Frames"},
) as stream:
result = ""
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
result += delta
print(result) # 
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://api.ourapi.top/v1",
timeout: 660_000,
});
const stream = await client.chat.completions.create({
model: "veo3-1-quality-1080p",
messages: [{role: "user", content: "一只老鹰在雪山上空展翅翱翔,镜头缓缓拉升"}],
stream: true,
// @ts-ignore
extra_body: {ratio: "16:9", mode: "Frames"},
});
let result = "";
for await (const chunk of stream) {
result += chunk.choices[0]?.delta?.content ?? "";
}
console.log(result);
参数说明
ratio — 宽高比
通过 extra_body.ratio 传入,控制画面比例。
| 值 | 适用 | 说明 |
|---|---|---|
"1:1" | 图片 | 正方形,默认值 |
"16:9" | 图片 / 视频 | 横屏宽屏 |
"9:16" | 图片 / 视频 | 竖屏,适合移动端 |
"4:3" | 图片 | 标准横屏 |
"3:4" | 图片 | 标准竖屏 |
reference — 参考图
图片和视频模型均支持传入参考图,共支持三种传递方式:
| 方式 | 示例 |
|---|---|
| 文件上传 | 通过 new-api 控制台或兼容客户端直接上传本地图片 |
| 图片 URL | "reference": "https://example.com/photo.jpg" |
| base64 data URI | "reference": "data:image/jpeg;base64,..." |
传入数组可同时使用多张参考图:"reference": ["url1", "url2"]
参考图数量上限
| 模型类型 | 条件 | 最多张数 |
|---|---|---|
| 图片 — Nano Banana 2 / Pro | — | 10 张 |
| 图片 — Imagen 4 | — | 3 张 |
| 视频 — Frames 模式 | 所有视频模型 | 2 张 |
| 视频 — Ingredients 模式 | Veo 3.1 Fast / Lite、Omni Flash | 3 张 |
| 视频 — Ingredients 模式 | Veo 3.1 Quality 系列 | 不支持(0 张) |
mode — 视频生成模式
仅对视频模型生效,控制视频的生成方式,同时决定参考图的支持数量。
| 值 | 说明 | 参考图上限 |
|---|---|---|
"Frames" |
首尾帧模式。可指定视频的起止画面:上传 1 张参考图时,该图作为视频首帧;上传 2 张参考图时,第一张作为首帧,第二张作为尾帧。不上传参考图时,仅根据提示词生成。 | 最多 2 张(所有视频模型) |
"Ingredients" |
素材混合模式。将提示词与参考图中的元素进行创意融合,适合风格化内容。注意:Veo 3.1 Quality 系列在此模式下不支持参考图。 | Veo 3.1 Fast / Lite、Omni Flash:最多 3 张 Veo 3.1 Quality:不支持 |
错误码
错误响应遵循 OpenAI 格式,包含 error.message、error.type、error.code 字段。
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
| HTTP 状态 | 说明 | 处理建议 |
|---|---|---|
| 401 | API Key 无效或未携带 | 检查 Authorization Header 是否正确 |
| 403 | 无权限使用该模型 | 确认令牌的可用模型范围 |
| 400 | 请求参数错误,如模型 ID 不存在 | 检查 model 字段拼写 |
| 429 | 请求频率过高或额度不足 | 降低频率或联系管理员 |
| 500 | 服务器内部错误 | 稍后重试 |
| 504 | 生成超时(超过 10 分钟) | 开启 stream: true 并增大客户端超时设置后重试 |
© 2026 OurAPI · 控制台
OurAPI