一个 API Key
调用全部生成模型
视频 · 图像 · 音乐
ModAPIS 是 AI 生成模型的统一接入层:Kling、Veo、Seedance、Hailuo、Nano Banana Pro、FLUX.2 一个 Key 统一调用;音乐生成即将上线。credits 计价,公开锚点 1 credit = $0.01,失败不计费,新模型发布当天可用。
Free 档送 50 credits(≈1 条 Kling 5s 或 3 张 Nano Banana Pro)· OAuth 注册无需绑卡
# Kling 3.0 · 统一 REST:提交任务 curl https://api.modapis.com/v1/videos \ -H "Authorization: Bearer $MODAPIS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "kling-3.0", "prompt": "一只柯基在雨后的东京街头奔跑,霓虹反光,电影感运镜", "duration": 5, "resolution": "1080p" }' # 轮询:GET https://api.modapis.com/v1/videos/{task_id} → status:"completed" 后取顶层 url
import os, requests, time API = "https://api.modapis.com/v1" H = {"Authorization": f"Bearer {os.environ['MODAPIS_API_KEY']}"} def call(method, url, **kw): # 统一出口:非 200 直接给可读错误 r = requests.request(method, url, headers=H, timeout=60, **kw) if r.status_code != 200: raise SystemExit(f"HTTP {r.status_code}: {r.text}") # 401 = Key 无效/被吊销 return r.json() task = call("POST", f"{API}/videos", json={ "model": "kling-3.0", "prompt": "一只柯基在雨后的东京街头奔跑,霓虹反光,电影感运镜", }) while task["status"] != "completed": # queued → in_progress → completed if task["status"] == "failed": raise SystemExit(task.get("error")) # 失败终态:message + code time.sleep(3) task = call("GET", f"{API}/videos/{task['id']}") print(task["url"]) # 成品地址在顶层 url 字段
const API = "https://api.modapis.com/v1"; const H = { Authorization: `Bearer ${process.env.MODAPIS_API_KEY}` }; const call = async (url, opts = {}) => { const r = await fetch(url, { headers: H, ...opts }); if (!r.ok) throw new Error(`HTTP ${r.status}: ${await r.text()}`); return r.json(); }; let task = await call(`https://api.modapis.com/v1/videos`, { method: "POST", body: JSON.stringify({ model: "kling-3.0", prompt: "一只柯基在雨后的东京街头奔跑,霓虹反光,电影感运镜" }), }); while (task.status !== "completed") { // queued → in_progress → completed if (task.status === "failed") throw new Error(JSON.stringify(task.error)); await new Promise(r => setTimeout(r, 3000)); task = await call(`https://api.modapis.com/v1/videos/${task.id}`); } console.log(task.url); // 成品地址在顶层 url 字段
- OAuth 注册即发,无需绑卡
- 并发 1
- 失败不计费
- 全档免费 webhook
- Sandbox mock 通道免注册联调
- 2,100 credits / 月
- 每币实付 $0.0090(锚点 $0.01)
- 并发 3
- 订阅币滚存 1 期
- 全档免费 webhook
- 5,600 credits / 月
- 每币实付 $0.0088(锚点 $0.01)
- 并发 10 · 优先路由
- 子 key 与预算上限
- 订阅币滚存 1 期
- 全档免费 webhook
- 17,500 credits / 月
- 每币实付 $0.0085(锚点 $0.01)
- 5 席位(可加购)
- 对账发票
- SLA 故障发币补偿
- 订阅币滚存 1 期 · 免费 webhook
记账单位 credits · 公开锚点 1 credit = $0.01 · 套餐卡标注产出翻译 · 联系我们: support@modapis.com
一套客户端,调完全部模型
图像走 OpenAI Images API 兼容,视频与音乐走统一 REST 任务接口(提交、轮询、webhook 回调);credits 统一计价,账单一份。n8n / Dify / ComfyUI / LangChain 工作流只换 base_url。
- 01 Sandbox 试跑:免注册,mock 通道零成本联调参数与回调。
- 02 OAuth 拿 Key:Free 档送 50 credits,无需绑卡。
- 03 上生产:订阅或按量充值(≥$20 起),全档免费 webhook。
# 任何 OpenAI SDK 项目,只动这一处 client = OpenAI( api_key=os.environ["MODAPIS_API_KEY"], - base_url="https://api.openai.com/v1" + base_url="https://api.modapis.com/v1" ) # 同一个 Key,模型名单里多出视频 / 音乐生成 img = client.images.generate( - model="dall-e-3" + model="nano-banana-pro", # 或 kling-3.0 / veo-3.1 / hailuo-2.3 prompt=prompt, )
# 视频任务完成回调(全档免费 webhook) POST https://api.modapis.com/v1/videos 时带上 callback_url: { "model": "kling-3.0", "prompt": "...", "callback_url": "https://your.app/hooks/ready" } # 任务完成时主动推送,不用轮询: { "id": "task_9f3a…", "status": "completed", "url": "https://…", "usage": { "credits": 45 } }
Nano Banana Pro(Gemini 3.0 Pro Image)发布期登顶 Artificial Analysis 文生图竞技场;2026-10 复核:竞技场迭代多代后现居 #13(Elo 1114)
来源:Artificial Analysis ↗Seedance 2.0 (720p) 于 AA 视频竞技场实测 T2V 带音频 Elo 1225(#2,2026-07 第三方引用)
来源:Artificial Analysis ↗把生产流量放进来的理由
一个 Key、一份账单
全部模型统一鉴权,不用在每家厂商分别开户充值;子 key 按项目隔离,额度与预算上限独立设置;团队席位共享一份对账发票。
失败不计费
5xx、超时、内容截断、上游审核拒任务一律自动退 credits;账单逐条对应请求 ID,可下载 CSV 与你的网关日志核对。
新模型当天可用
新模型发布当天完成接入与费率核对(day-one);组合工作流端点持续上线,每一步都在更新日志公开。
团队功能与 webhook
席位、子 key、预算上限、对账发票,Team 档含 SLA 故障发币补偿;webhook 任务回调全档免费,省去轮询。
通道状态公开可查
每模型多通道并行、实时健康度与历史事件公开在 状态页,不打哑谜。
常见问题
ModAPIS 和直接注册每家厂商的 API 有什么区别?
credits 怎么计价?
有免费额度吗?
接口兼容 OpenAI SDK 吗?
任务失败会扣费吗?
一个 Key,五分钟后跑通全部模型
Sandbox 免注册先试,Free 档 50 credits 起步,无需绑卡。