AIComing API
一个 API Key,调用全部主流大模型。完全兼容 OpenAI SDK,支持流式、函数调用、视觉、Embeddings、图像与视频生成。把 base_url 换成 https://api.aicoming.top/v1,即可零成本切换。
注册并充值
邮箱注册,支持 Google / GitHub 登录。
创建 API Key
创建 Key 并选择路由模式。想固定用某几家,收藏它们即可。
替换 base_url 调用
OpenAI SDK / Cursor / Claude Code 零改造接入。
快速开始
鉴权与密钥
限制 Key 可调用的模型
模型列表
调用 GET /v1/models 获取当前可用模型。
模型调用手册 LIVE
按模型逐个给出计费档位、参数说明与可直接运行的调用示例(Python / Node.js / cURL),数据与线上模型库实时同步。点击任意模型展开;图像与视频模型请留意各自的尺寸/清晰度档位与「按次固定规格」说明。支持深链 #mm-模型名 直达。
Chat Completions
核心对话接口,请求格式与 OpenAI 100% 一致。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| model必填 | string | 模型 ID,如 |
| messages必填 | array | 消息数组 |
| stream | boolean | 是否流式返回。 |
| temperature | number | 0–2,默认 1。 |
| tools | array | 函数调用工具数组。 |
| response_format | object |
|
在线试用
选择你的 API Key,发送真实请求。
流式输出
图像生成 Beta
视频生成 Beta
虚拟人物素材库 Beta
一次上传角色形象,拿到一个 asset://aic_... 引用,之后所有视频生成都可以引用它,保持同一个人。与「随手上传一张参考图」的区别是:素材长期存在、可反复复用,且由平台托管在各视频线路上。
素材类型与限制
目前只支持 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 | 本地图片文件,用 |
| url | 公网可直接 GET 的图片地址,用 |
| name | 素材名,便于在列表里辨认。可选,默认「虚拟人物」;超过 32 个字符会被截断。 |
| type | 素材类型。可选,默认 |
| provider | 指定优先落地的商家(商家 ID 或 slug)。可选。它只影响补传顺序——被指定的商家排到队首先落地,其余线路照常补传,不会因此少传。 |
图片要求
| 项目 | 要求 | 不合格时 |
|---|---|---|
宽 / 高 | 都在 300~6000 像素之间 | 上传时当场 400 |
文件大小 | ≤ 20MB | 上传时当场 400 |
格式 | JPG / PNG / WebP | 上传时当场 400 |
URL 可达性 | 公网 http/https,返回图片 Content-Type | 上传时当场 400 |
画面内容 | 由上游模型判定(清晰人物正面效果最好) | 补传阶段失败 素材转 |
查询状态
创建是异步的,返回 status: "processing"。通常 10 秒内变为 active,之后即可在视频生成中使用。
{"id":"aic_x7KqM3nP8vRt2LwB9cYdZa","status":"active","lines":[{"provider_name":"...","status":"active"}]}| status | 含义 |
|---|---|
| processing | 处理中,稍候重试。 |
| active | 可用,能在视频生成中引用。 |
| failed | 处理失败,原因见 |
响应字段
| 字段 | 含义 |
|---|---|
| id | 平台素材 ID( |
| asset_url | 可直接放进视频请求的引用串,形如 |
| status | 素材整体状态。只要有任意一条线路 active 就是 active,此时即可使用。 |
| thumbnail_url | 缩略图。只有 file 上传的素材才有;用 url 提交的我们没有副本,返回空串。 |
| fail_code / fail_reason | 仅在 |
| lines[] | 各条线路的落地情况。素材会被同时补传到所有支持的线路,所以某条线 |
推荐接入流程
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 并说明原因,不会静默生成一个不相干的视频。需要在这些模型上用参考图时,改传公网图片地址即可。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 | 进行中。 |
| 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 但没带 |
| asset_missing_url | 用了 JSON 但没给 |
| asset_type_unsupported |
|
| asset_unreachable | 链接打不开或返回非图片内容。必须是公网可直接 GET 的图片。 |
| asset_daily_limit | 今日新建素材已达 200 次上限,明天再试。 |
| asset_no_line | 平台当前没有支持素材的线路(通常是短暂的,稍后重试)。 |
| asset_storage_unavailable | 对象存储暂不可用,文件上传方式不可用;可改用 |
| asset_upload_failed | 文件写入对象存储失败,重试即可。 |
| asset_ext_unsupported | 501:当前没有支持改名的线路。不是你的请求有问题。 |
| validate_unsupported | 503:当前没有支持真人形象认证的线路。 |
| asset_disabled | 503:平台暂时关闭了素材功能。 |
引用素材生成时的错误
这些码出现在视频生成接口,不是上传接口。
| code | 含义 |
|---|---|
| asset_invalid_reference | 引用格式不对。必须是平台返回的 |
| asset_not_found | 素材不存在,或不属于你(越权一律 404,不用 403)。 |
| asset_not_ready | 素材还在补传中。轮询到 |
| asset_failed | 素材已处理失败,不能使用。看它的 |
| asset_line_unavailable | 该模型不支持素材引用(如 mini / fast / dreamina 系),或素材在可用线路上都还没就绪。换用 |
补传失败原因(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。
- 充值 · 充值由平台统一代收,实时进入你的账户余额。在分站注册的用户,充值同样由平台代收与记账,余额在该分站内使用;分站站长不经手资金,其收益来自消费调用时的加价差价。