文档 / API 参考
API 参考🎬 视频生成

AIComing API

一个 API Key,调用全部主流大模型。完全兼容 OpenAI SDK,支持流式、函数调用、视觉、Embeddings、图像与视频生成。把 base_url 换成 https://api.aicoming.top/v1,即可零成本切换。

当前版本 v1● 多协议兼容协议 HTTPS · JSON · SSE
1

注册并充值

邮箱注册,支持 Google / GitHub 登录。

2

创建 API Key

创建 Key 并选择路由模式。想固定用某几家,收藏它们即可。

3

替换 base_url 调用

OpenAI SDK / Cursor / Claude Code 零改造接入。

快速开始

鉴权与密钥

限制 Key 可调用的模型

模型列表

调用 GET /v1/models 获取当前可用模型。

GET /v1/models返回可用模型列表
gpt-5.5OpenAI
最新旗舰,tools / vision / JSON mode。
visiontoolsstream
claude-opus-4-7Anthropic
代码与长文领先,1M 上下文。
vision1M
deepseek-v4-proDeepSeek
极致性价比,中文与代码均衡。
streamtools
gpt-image-2OpenAI
图片生成,自动分流 1k/2k/4k。
imageedit
nano-banana-proGemini
高质量图像,文生图 / 图生图同端点。
imageedit

模型调用手册 LIVE

按模型逐个给出计费档位、参数说明与可直接运行的调用示例(Python / Node.js / cURL),数据与线上模型库实时同步。点击任意模型展开;图像与视频模型请留意各自的尺寸/清晰度档位与「按次固定规格」说明。支持深链 #mm-模型名 直达。

Chat Completions

核心对话接口,请求格式与 OpenAI 100% 一致。

POST /v1/chat/completions长耗时用 api.aicoming.top

请求参数

参数类型说明
model必填string

模型 ID,如 gpt-5.5。

messages必填array

消息数组 {role, content}。

streamboolean

是否流式返回。

temperaturenumber

0–2,默认 1。

toolsarray

函数调用工具数组。

response_formatobject

{"type":"json_object"}

在线试用

选择你的 API Key,发送真实请求。

请求构造器 · POST /v1/chat/completions
响应
选择 Key 后点击「运行」…
就绪——

流式输出

图像生成 Beta

视频生成 Beta

虚拟人物素材库 Beta

一次上传角色形象,拿到一个 asset://aic_... 引用,之后所有视频生成都可以引用它,保持同一个人。与「随手上传一张参考图」的区别是:素材长期存在、可反复复用,且由平台托管在各视频线路上。

POST /v1/assets创建素材
GET /v1/assets我的素材列表
GET /v1/assets/{id}查询单个素材状态
PATCH /v1/assets/{id}改名 / 改描述
DELETE /v1/assets/{id}删除素材
POST /v1/assets/validate-session发起真人形象认证
GET /v1/assets/validate-session/{id}查询认证结果

素材类型与限制

目前只支持 type=image。传其他值会直接返回 400 asset_type_unsupported,不会进异步队列。

type用途体积上限格式
image

人物形象、参考图

20 MB

JPG / PNG / WebP,宽高均需在 300~6000 像素之间

参考视频 / 参考音频暂未开放为素材。需要它们时,请在视频生成请求里直接传公网直链(见视频生成),不要走素材库。

创建素材

直接上传本地文件(multipart/form-data):

curl https://api.aicoming.top/v1/assets \
  -H "Authorization: Bearer sk-your-key" \
  -F "file=@/path/to/face.jpg" \
  -F "name=小美" \
  -F "type=image"

或者给一个公网可访问的 URL(application/json):

curl https://api.aicoming.top/v1/assets \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/face.jpg","name":"小美","type":"image"}'
{"id":"aic_x7KqM3nP8vRt2LwB9cYdZa","asset_url":"asset://aic_x7KqM3nP8vRt2LwB9cYdZa","name":"小美","type":"image","status":"processing"}

尺寸不合格会当场 400,不会进异步队列。宽或高超出 300~6000 像素时直接返回 asset_dimension_out_of_range,提示里会带上你这张图的实际尺寸(如「图片尺寸 216×384 不符合要求」)。WebP 等无法在入口解析尺寸的格式会放行,若确实越界,会在补传阶段以同一个错误码失败。

请求参数

参数含义
file

本地图片文件,用 multipart/form-data 提交。与 url 二选一必填。

url

公网可直接 GET 的图片地址,用 application/json 提交。与 file 二选一必填。不支持 base64、需要鉴权的私有链接、内网地址。

name

素材名,便于在列表里辨认。可选,默认「虚拟人物」;超过 32 个字符会被截断。

type

素材类型。可选,默认 image;目前仅支持 image,传其他值返回 400。

provider

指定优先落地的商家(商家 ID 或 slug)。可选。它只影响补传顺序——被指定的商家排到队首先落地,其余线路照常补传,不会因此少传。

图片要求

项目要求不合格时

宽 / 高

都在 300~6000 像素之间

上传时当场 400

文件大小

≤ 20MB

上传时当场 400

格式

JPG / PNG / WebP

上传时当场 400

URL 可达性

公网 http/https,返回图片 Content-Type

上传时当场 400

画面内容

由上游模型判定(清晰人物正面效果最好)

补传阶段失败 素材转 failed

查询状态

创建是异步的,返回 status: "processing"。通常 10 秒内变为 active,之后即可在视频生成中使用。

{"id":"aic_x7KqM3nP8vRt2LwB9cYdZa","status":"active","lines":[{"provider_name":"...","status":"active"}]}
status含义
processing

处理中,稍候重试。

active

可用,能在视频生成中引用。

failed

处理失败,原因见 fail_reason。

响应字段

字段含义
id

平台素材 ID(aic_ 开头)。

asset_url

可直接放进视频请求的引用串,形如 asset://aic_...。

status

素材整体状态。只要有任意一条线路 active 就是 active,此时即可使用。

thumbnail_url

缩略图。只有 file 上传的素材才有;用 url 提交的我们没有副本,返回空串。

fail_code / fail_reason

仅在 status=failed 时出现。fail_code 用于程序分支,fail_reason 是给人看的中文说明。

lines[]

各条线路的落地情况。素材会被同时补传到所有支持的线路,所以某条线 failed 但整体仍是 active 是正常的——生成时会自动挑一条可用的线路。

推荐接入流程

import time, requests
H = {"Authorization": "Bearer sk-your-key"}
B = "https://api.aicoming.top"

# 1. 上传(尺寸/格式/大小不合格会在这一步就 400)
r = requests.post(f"{B}/v1/assets", headers=H,
                  files={"file": open("face.jpg", "rb")},
                  data={"name": "小美"})
r.raise_for_status()
aid = r.json()["data"]["id"]

# 2. 轮询到 active(实测通常 10 秒内)
for _ in range(30):
    d = requests.get(f"{B}/v1/assets/{aid}", headers=H).json()["data"]
    if d["status"] in ("active", "failed"): break
    time.sleep(2)
if d["status"] != "active":
    raise RuntimeError(d["fail_reason"])

# 3. 之后任意次视频生成都可以引用它
requests.post(f"{B}/v1/videos/generations", headers=H, json={
    "model": "doubao-seedance-2.0",
    "prompt": "@Image1 的角色在海边散步",
    "image_urls": [d["asset_url"]],
    "duration": 4,
})

列出与删除

GET /v1/assets 只返回你自己的素材。查询参数:limit(默认 50,上限 100)、offset(默认 0)、status(按 processing/active/failed 过滤)。

{"data":[ /* 素材对象数组,字段同上 */ ],"total":37,"limit":50,"offset":0}

DELETE /v1/assets/{id} 立即返回,各线路上游的清理由后台异步完成——上游超时不该让你删不掉。删除后引用它的 asset:// 会失效,已生成的视频不受影响。查询或删除别人的素材一律返回 404(不用 403,403 等于承认「这个 ID 存在但不属于你」)。

在视频生成中使用

doubao-seedance-2.0 及其 -fast / -mini 变体都支持 asset:// 引用。(2026-09-21 实测:三者同属一个上游账号,素材互通。)dreamina-* 系仍跑在看不到素材库的后端上,不能引用素材。对不支持的模型传 asset:// 会直接返回 asset_line_unavailable 并说明原因,不会静默生成一个不相干的视频。需要在这些模型上用参考图时,改传公网图片地址即可。
注意模型 id 的写法:主模型是 doubao-seedance-2.0(点),而它的变体是 doubao-seedance-2-0-mini / doubao-seedance-2-0-fast(横杠)。写错会收到 model_not_supported_by_selected_providers。以 /v1/models 返回的 id 为准。

把 asset://... 当作一张参考图放进 image_urls 即可,其余参数与普通视频生成完全一致。

{"model":"doubao-seedance-2.0","prompt":"@Image1 的角色在海边散步","image_urls":["asset://aic_x7KqM3nP8vRt2LwB9cYdZa"],"duration":4}

改名 / 改描述

PATCH /v1/assets/{id} 只改名称与描述,不能换图——要换图请重新上传一个新素材。name 与 description 至少给一个;只给其中一个时,另一个保持原值(传空串不会清空)。

curl -X PATCH https://api.aicoming.top/v1/assets/aic_x7KqM3nP8vRt2LwB9cYdZa \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{"name":"小美-长发版","description":"用于海边系列"}'

name 最长 128 字,description 最长 512 字。素材不存在、或不属于你,统一返回 404。当前没有支持改名的线路时返回 501 asset_ext_unsupported——这不是你的请求有问题。

真人形象认证

上传真实人物的形象时,部分线路要求先完成一次活体核验(AI 生成的虚拟形象不需要)。流程:开一个核验会话 → 把返回的 h5_link 交给被拍摄者本人在手机上打开完成 → 用会话 id 轮询结果。

# 开会话(callback_url 可选:核验完成后跳回你自己的落地页,不传则回你调用时用的域名首页)
curl -X POST "https://api.aicoming.top/v1/assets/validate-session?callback_url=https://your-app.com/done" \
  -H "Authorization: Bearer sk-your-key"

# → {"code":0,"data":{"id":"aic_9fQ2mR7xKpLt3BvNc8Wd","status":"pending","h5_link":"https://.../h5?..."}}

# 查结果(用上一步的 id,不是任何令牌)
curl https://api.aicoming.top/v1/assets/validate-session/aic_9fQ2mR7xKpLt3BvNc8Wd \
  -H "Authorization: Bearer sk-your-key"

# → {"code":0,"data":{"id":"...","status":"verified","verified_at":"..."}}
status含义
pending

进行中。data.message 会说明当前卡在哪一步。

verified

已通过。

expired

已失效,需要重新发起。

核验页涉及人脸,请自行取得被拍摄者的明示同意。h5_link 要交给本人打开完成活体检测,采集方是上游服务商,不是本平台。你在把用户引导过去之前必须先告知用途并取得同意——这是你作为应用方的合规义务。本平台不保存任何人脸图像或特征,只保存「通过 / 未通过」。请以轮询结果为准:用户跳回你的 callback_url 只说明他点了返回,不等于核验通过。会话只属于创建它的 Key 所在账号,换个账号查一律 404。当前没有支持认证的线路时返回 503 validate_unsupported。

限制

  • 每个账号最多保存 200 个素材,每日最多新建 200 次。
  • 单个文件不超过 20MB,支持 JPG / PNG / WebP。
  • 图片宽和高都必须在 300~6000 像素之间——这是上游模型的硬性要求。小于 300px 的头像、占位图会在处理阶段被判失败,fail_reason 会写明具体原因。
  • 素材与普通参考图共用同一个 9 张图的上限,不额外放宽。
  • 处理失败的素材保留 7 天便于查看原因,之后自动清理;失败素材不占用配额。
  • 为保证可用性,素材会同步至平台所有可用的视频线路。
素材上传与查询均不计费,只有视频生成本身按正常规则扣费。

错误码

code含义
asset_not_found

素材不存在。

asset_not_ready

素材仍在处理中,请稍候再试。

asset_invalid_url

链接无效,或不是公网可访问的地址。

asset_format_unsupported

图片格式不支持。

asset_too_large

文件超过 20MB。

asset_dimension_out_of_range

图片宽或高超出 300~6000 像素,换一张更大的原图。

asset_media_unsupported

上游无法解析这张图(尺寸过小、格式异常或文件损坏),重新导出为标准 JPG / PNG 再传。

asset_group_gone

该线路的素材库正在重建,平台会自动重新补传,无需人工处理。

asset_quota_exceeded

素材数量已达上限。

asset_line_unavailable

素材当前没有可用线路,请稍后重试。

asset_missing_file

用了 multipart 但没带 file 字段。

asset_missing_url

用了 JSON 但没给 url。两种 body 至少给一个图片来源。

asset_type_unsupported

type 只支持 image;video / audio 尚未开放。

asset_unreachable

链接打不开或返回非图片内容。必须是公网可直接 GET 的图片。

asset_daily_limit

今日新建素材已达 200 次上限,明天再试。

asset_no_line

平台当前没有支持素材的线路(通常是短暂的,稍后重试)。

asset_storage_unavailable

对象存储暂不可用,文件上传方式不可用;可改用 url 方式。

asset_upload_failed

文件写入对象存储失败,重试即可。

asset_ext_unsupported

501:当前没有支持改名的线路。不是你的请求有问题。

validate_unsupported

503:当前没有支持真人形象认证的线路。

asset_disabled

503:平台暂时关闭了素材功能。

引用素材生成时的错误

这些码出现在视频生成接口,不是上传接口。

code含义
asset_invalid_reference

引用格式不对。必须是平台返回的 asset://aic_...;上游原始 ID 一律拒绝。

asset_not_found

素材不存在,或不属于你(越权一律 404,不用 403)。

asset_not_ready

素材还在补传中。轮询到 status=active 再发起生成。

asset_failed

素材已处理失败,不能使用。看它的 fail_reason 换一张图重传。

asset_line_unavailable

该模型不支持素材引用(如 mini / fast / dreamina 系),或素材在可用线路上都还没就绪。换用 doubao-seedance-2.0,或改传公网图片地址。

补传失败原因(fail_code)

素材 status=failed 时,fail_code 取以下值之一;lines[].status 为 failed 的那条线路也会带上原因。

fail_code含义
asset_dimension_out_of_range

宽或高超出 300~6000 像素。换一张更大的原图。

asset_media_unsupported

上游无法解析这张图(尺寸过小、格式异常或文件损坏)。重新导出为标准 JPG/PNG。

asset_invalid_url

上游下载不到这个地址(链接过期、需要鉴权、或被防盗链拦截)。

asset_group_gone

该线路的素材库正在重建。平台会自动重新补传,无需人工处理。

asset_mirror_timeout

该线路补传超过 24 小时仍未成功,已停止重试。其他线路不受影响。

asset_line_gone

该线路已下架或不再支持素材。

asset_upstream_error

上游返回了我们无法归类的错误,仍在按退避重试。

Embeddings

语音转文字

Responses API

Gemini 原生协议

余额查询

SDK

客户端配置

智能路由

错误码

计费与扣费

  • Chat · 按输入/输出 tokens(¥/1M)。
  • 思考模型 · gpt-5.x、gemini 3.x、o 系等会先「思考」再作答。账单里的输出 tokens 是思考 + 正文的合计——上游有的把思考单列在 reasoning_tokens,有的直接并进 completion_tokens,我们按 total_tokens 交叉校验后统一口径。所以输出数可能明显大于你看到的正文长度。
  • max_tokens · 对思考模型,它是思考与正文共用的总上限,且思考先花。给得太小会出现「照常计费、正文却几乎为空、finish_reason=length」。要单独限制思考,传 thinking_budget 或 reasoning_effort。
  • Image · 按张,1k/2k/4k 分辨率不同价。
  • Video · 按时长计费:每秒单价 × 时长(秒),分辨率分档(如 480p/720p/1080p 不同单价);部分模型按次;少数模型按 Token 计费(按上游返回的 usage token 数 × 输入/输出单价,模型页会标注 /M 单价)。
  • Audio · 按次(¥/次)。
  • 缓存 · prompt caching 命中部分按更低价计费。
  • 失败 · 4xx/5xx 不计费;路由中途失败的尝试不计费;连接正常但上游一个内容字节都没返回的调用同样不计费。
  • 余额 · 实时扣费,余额不足返回 402。
  • 充值 · 充值由平台统一代收,实时进入你的账户余额。在分站注册的用户,充值同样由平台代收与记账,余额在该分站内使用;分站站长不经手资金,其收益来自消费调用时的加价差价。