开发文档

OurAPI 开发文档

OurAPI 提供与 OpenAI 完全兼容的 REST API,支持图片生成与视频生成。只需将现有应用的 base_url 替换为 OurAPI 地址,即可无缝接入。


快速开始

认证与鉴权

所有 API 请求必须在 HTTP Header 中携带 Authorization 字段。

http
Authorization: Bearer sk-your-api-key
传参方式示例说明
HTTP Header 推荐 Authorization: Bearer sk-xxx 最安全,适合所有场景
Query 参数 ?api_key=sk-xxx 仅用于临时测试,不建议生产环境使用

模型列表

所有模型均通过 POST /v1/chat/completions 调用,在 model 字段中指定模型 ID。

🖼 图片模型

模型 ID分辨率说明
imagen41KGoogle Imagen 4 标准版
nano-banana-21K快速生成
nano-banana-pro1K高质量输出
imagen4-2k2KImagen 4 高清版
nano-banana-2-2k2K快速高清
nano-banana-pro-2k2K高质量高清
imagen4-4k4K超高清
nano-banana-2-4k4K超高清,快速
nano-banana-pro-4k4K超高清,高质量

🎬 视频模型

Veo 3.1 系列  —  固定 8 秒时长

模型 ID分辨率档位
veo3-1-fast720P快速
veo3-1-quality720P高质量
veo3-1-lite720P轻量
veo3-1-fast-1080p1080P快速
veo3-1-quality-1080p1080P高质量
veo3-1-lite-1080p1080P轻量
veo3-1-fast-4k4K快速
veo3-1-quality-4k4K高质量
veo3-1-lite-4k4K轻量

Omni Flash 系列  —  可选时长(4 / 6 / 8 / 10 秒)

模型 ID分辨率时长
omni-fast-4s720P4 秒
omni-fast-6s720P6 秒
omni-fast-8s720P8 秒
omni-fast-10s720P10 秒
omni-fast-1080p-4s1080P4 秒
omni-fast-1080p-6s1080P6 秒
omni-fast-1080p-8s1080P8 秒
omni-fast-1080p-10s1080P10 秒
omni-fast-4k-4s4K4 秒
omni-fast-4k-6s4K6 秒
omni-fast-4k-8s4K8 秒
omni-fast-4k-10s4K10 秒

接口:获取模型列表

GET/v1/models

返回当前账号可用的所有模型,格式与 OpenAI 兼容。

bash
curl https://api.ourapi.top/v1/models \
  -H "Authorization: Bearer sk-your-api-key"

接口:图片生成

POST/v1/chat/completions

提交图片生成任务。服务端持连接等待,生成完成后在响应中返回 Markdown 格式的图片链接。

请求参数

字段类型必填说明
modelstring必填图片模型 ID,如 imagen4
messagesarray必填对话消息,取最后一条 role: "user" 的内容作为提示词
streamboolean可选开启流式响应,默认 false
ratiostring可选图片宽高比,默认 "1:1",详见参数说明
referencestring / array可选参考图,支持文件上传、URL、base64 三种方式。可传数组使用多张。详见参考图说明

响应

字段路径说明
choices[0].message.content非流式响应:Markdown 图片链接,如 ![结果1](https://...)
choices[0].delta.content流式响应:最终 chunk 中的 Markdown 图片链接
choices[0].finish_reason"stop" 表示成功完成

接口:视频生成

POST/v1/chat/completions

与图片生成使用同一接口,通过 model 字段区分。视频生成耗时较长(通常 1~5 分钟),强烈建议开启 stream: true

请求参数

字段类型必填说明
modelstring必填视频模型 ID,如 veo3-1-quality-1080p
messagesarray必填对话消息,取最后一条 role: "user" 的内容作为视频描述
streamboolean可选强烈建议设为 true,防止等待时间过长导致超时
ratiostring可选视频宽高比:"16:9""9:16",默认 "16:9"
modestring可选生成模式,默认 "Frames",详见参数说明
referencestring / array可选参考图,支持文件上传、URL、base64 三种方式。可传数组使用多张。详见参考图说明

代码示例:图片生成

bash
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"
  }'
python
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)  # ![结果1](https://...)
javascript
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);  // ![结果1](https://...)

代码示例:参考图生成

在请求中加入 reference 字段即可传入参考图,图片和视频模型均支持。

ℹ️
支持文件上传、URL、base64 三种方式传入参考图。传数组可同时使用多张,URL 方式单张大小上限 50MB。
bash
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"
  }'
python
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)
javascript
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);

代码示例:视频生成

bash
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"
  }'
python
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)  # ![结果1](https://...)
javascript
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 / Pro10 张
图片 — Imagen 43 张
视频 — Frames 模式所有视频模型2 张
视频 — Ingredients 模式Veo 3.1 Fast / Lite、Omni Flash3 张
视频 — 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.messageerror.typeerror.code 字段。

json
{
  "error": {
    "message": "Invalid API key",
    "type":    "authentication_error",
    "code":    "invalid_api_key"
  }
}
HTTP 状态说明处理建议
401API Key 无效或未携带检查 Authorization Header 是否正确
403无权限使用该模型确认令牌的可用模型范围
400请求参数错误,如模型 ID 不存在检查 model 字段拼写
429请求频率过高或额度不足降低频率或联系管理员
500服务器内部错误稍后重试
504生成超时(超过 10 分钟)开启 stream: true 并增大客户端超时设置后重试

© 2026 OurAPI  ·  控制台