DOCS / QUICK START
接入说明.
一个密钥,同时兼容 OpenAI 与 Anthropic 两种接口。Claude Code、Cursor、各类聊天客户端和 SDK,改个地址、填上密钥就能用,人民币按量计费。
STEP BY STEP
三步开始
BASE URL / AUTH
地址与密钥对照表
两种协议的 Base URL 不同,最常见的错误就是这一处多写或少写了 /v1。
| 协议 | Base URL | 请求路径 | 认证头 |
|---|---|---|---|
| OpenAI 兼容 | https://kiro.undusk.com/v1带 /v1 | POST /v1/chat/completions | Authorization: Bearer sk-kiro-… |
| Anthropic 兼容 | https://kiro.undusk.com不带 /v1 | POST /v1/messages | x-api-key: sk-kiro-…也接受 Authorization: Bearer |
| 其他接口 | 用途 | 是否收费 |
|---|---|---|
GET /v1 | 连接自检:返回欢迎语;带上密钥时还会显示余额和可用模型 | 免费 |
GET /v1/models | 模型列表(OpenAI 与 Anthropic 格式均可读取) | 免费 |
GET /v1/account | 查询当前密钥所属账号的余额与剩余赠送 token | 免费 |
POST /v1/messages/count_tokens | 估算输入 token 数(Claude Code 的 /context 会用到) | 免费 |
/v1 的地址,标注 Anthropic / Claude 的填根地址。MODELS / CNY
模型与价格
| 模型 ID | 也可以写成 | 说明 | 输入 / 百万 token | 输出 / 百万 token |
|---|---|---|---|---|
external/claude-opus-5-5 | claude-opus-5-5 claude-opus-5.5 opus | Claude Opus 5.5,主力模型,适合编程与复杂任务;不写 model 时默认使用 | ¥0.2 | ¥1 |
external/claude-fable-5-1 | claude-fable-5-1 fable | Claude Fable 5.1,能力最强,适合最难的推理与长任务 | ¥0.5 | ¥2.5 |
两款模型由第三方通道提供。其他模型名都会返回 404 model_not_listed。实时价格以 价格页 为准,价格按请求开始时计算。
CLIENT / CLAUDE CODE
Claude Code
Claude Code 走 Anthropic 协议,Base URL 填根地址(不带 /v1)。推荐写进配置文件,长期生效。
方式一:写入
~/.claude/settings.json(推荐)打开(没有就新建)
~/.claude/settings.json,Windows 是%USERPROFILE%\.claude\settings.json。把下面的env合并进去,密钥换成你自己的:{ "env": { "ANTHROPIC_BASE_URL": "https://kiro.undusk.com", "ANTHROPIC_AUTH_TOKEN": "sk-kiro-你的密钥", "ANTHROPIC_MODEL": "external/claude-opus-5-5", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "external/claude-fable-5-1", "ANTHROPIC_SMALL_FAST_MODEL": "external/claude-fable-5-1", "API_TIMEOUT_MS": "600000", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } }- ANTHROPIC_MODEL
- 主模型,用 Opus 5.5。
- ANTHROPIC_DEFAULT_HAIKU_MODEL / ANTHROPIC_SMALL_FAST_MODEL
- 后台小任务(标题、摘要等)用的模型,设为 Fable 5.1;不设置会返回 404。
- API_TIMEOUT_MS
- 长任务的超时时间(毫秒),600000 即 10 分钟。
- CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS
- 关闭实验性请求字段,避免兼容问题。
方式二:终端临时设置
只想在当前终端试用,可以先 export 再运行
claude:export ANTHROPIC_BASE_URL="https://kiro.undusk.com" export ANTHROPIC_AUTH_TOKEN="sk-kiro-你的密钥" export ANTHROPIC_MODEL="external/claude-opus-5-5" export ANTHROPIC_DEFAULT_HAIKU_MODEL="external/claude-fable-5-1" export ANTHROPIC_SMALL_FAST_MODEL="external/claude-fable-5-1" export API_TIMEOUT_MS=600000 export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 claude$env:ANTHROPIC_BASE_URL="https://kiro.undusk.com" $env:ANTHROPIC_AUTH_TOKEN="sk-kiro-你的密钥" $env:ANTHROPIC_MODEL="external/claude-opus-5-5" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL="external/claude-fable-5-1" $env:ANTHROPIC_SMALL_FAST_MODEL="external/claude-fable-5-1" $env:API_TIMEOUT_MS="600000" $env:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS="1" claude切换模型
在 Claude Code 里输入
/model加完整模型 ID 即可切换:/model external/claude-fable-5-1切回 Opus 用
/model external/claude-opus-5-5。若子代理或菜单里出现model_not_listed404,检查是否所有模型变量都指向这两个模型,可在env里再加"ANTHROPIC_DEFAULT_SONNET_MODEL": "external/claude-opus-5-5"。验证
启动后发一句「你好」,能正常回复即接入成功。控制台的「最近调用」里能看到这笔请求和费用。
CLIENT / CC SWITCH
CC Switch
用 CC Switch 管理 Claude Code 的多个供应商时,按下面新增一个供应商即可,它会帮你写入上面的配置。
新增供应商
打开 CC Switch,切到 Claude 标签页,点「添加供应商」,选择 自定义。
填写字段
供应商名称Kiro 中转站请求地址https://kiro.undusk.comAPI Keysk-kiro-你的密钥主模型external/claude-opus-5-5快速模型external/claude-fable-5-1如果界面只给出 JSON 配置框,直接粘贴 Claude Code 一节的
env内容。启用并重启
保存后点「启用」,然后重新打开 Claude Code 终端会话。
CLIENT / CURSOR
Cursor
Cursor 用 OpenAI 兼容方式接入,Base URL 要带 /v1。
打开模型设置
Cursor → Settings → Models,展开 API Keys 区域。
填写地址与密钥
OpenAI API Keysk-kiro-你的密钥Override OpenAI Base URLhttps://kiro.undusk.com/v1打开 Override OpenAI Base URL 开关并填入地址,然后点 Verify。
添加自定义模型
在模型列表底部点 Add Model,依次添加
external/claude-opus-5-5和external/claude-fable-5-1,勾选启用。开始使用
在聊天 / Agent 面板的模型下拉里选刚加的模型。自定义地址只对你添加的这些模型生效,Cursor 自带的功能(如 Tab 补全)不经过本站。
CLIENT / OPENAI COMPATIBLE
Cherry Studio、ChatBox 等聊天客户端
大多数聊天客户端都支持「OpenAI 兼容」服务商,配置方式基本一致。
Cherry Studio
- 设置 → 模型服务 → 添加,类型选 OpenAI。
- API 地址填
https://kiro.undusk.com(Cherry Studio 会自动补/v1;若预览出的完整地址里出现两个/v1,就去掉一个)。 - API 密钥填你的
sk-kiro-密钥。 - 点「管理」或「添加」,填入两个模型 ID。
- 点「检查」测试连通。
ChatBox
- 设置 → 模型提供方 → 添加自定义提供方。
- API 模式选 OpenAI API 兼容。
- API 域名 / Host 填
https://kiro.undusk.com/v1(若界面分开填 API 路径,则 Host 填根地址、路径填/v1/chat/completions)。 - 填入密钥,模型名填
external/claude-opus-5-5。
其他 OpenAI 兼容工具
- 服务商类型选 OpenAI / OpenAI Compatible。
- Base URL:
https://kiro.undusk.com/v1 - API Key:你的
sk-kiro-密钥。 - 模型名手动填写两个模型 ID 之一。
- 关闭图片上传、多候选(n>1)等不支持的选项。
SDK / PYTHON · NODE
OpenAI 与 Anthropic SDK
官方 SDK 只需改 base_url 和 api_key。建议把密钥放进环境变量 KIRO_API_KEY,不要写死在代码里。
OpenAI SDK
import os
from openai import OpenAI
client = OpenAI(
base_url="https://kiro.undusk.com/v1",
api_key=os.environ["KIRO_API_KEY"],
)
resp = client.chat.completions.create(
model="external/claude-opus-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://kiro.undusk.com/v1",
apiKey: process.env.KIRO_API_KEY,
});
const resp = await client.chat.completions.create({
model: "external/claude-opus-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(resp.choices[0].message.content);Anthropic SDK
import os
import anthropic
client = anthropic.Anthropic(
base_url="https://kiro.undusk.com", # 不带 /v1
api_key=os.environ["KIRO_API_KEY"],
)
msg = client.messages.create(
model="external/claude-opus-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(msg.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://kiro.undusk.com", // 不带 /v1
apiKey: process.env.KIRO_API_KEY,
});
const msg = await client.messages.create({
model: "external/claude-opus-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(msg.content[0].text);流式输出:OpenAI SDK 传 stream=True,Anthropic SDK 用 client.messages.stream(...)。工具调用按各自 SDK 的 tools 参数正常传入即可。
HTTP / CURL
curl 示例
先在终端设置 export KIRO_API_KEY="sk-kiro-你的密钥",下面的命令可直接粘贴运行。
curl https://kiro.undusk.com/v1/chat/completions \
-H "Authorization: Bearer $KIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "external/claude-opus-5-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "你好"}]
}'curl -N https://kiro.undusk.com/v1/chat/completions \
-H "Authorization: Bearer $KIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "external/claude-opus-5-5",
"max_tokens": 512,
"stream": true,
"messages": [{"role": "user", "content": "你好"}]
}'curl https://kiro.undusk.com/v1/messages \
-H "x-api-key: $KIRO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "external/claude-fable-5-1",
"max_tokens": 512,
"messages": [{"role": "user", "content": "你好"}]
}'curl -N https://kiro.undusk.com/v1/messages \
-H "x-api-key: $KIRO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "external/claude-fable-5-1",
"max_tokens": 512,
"stream": true,
"messages": [{"role": "user", "content": "你好"}]
}'HEALTH CHECK
连接自检
这三个请求都免费,不消耗余额和赠送 token。配置不通时,先按顺序跑一遍。
地址是否可达
返回 欢迎使用 Kiro 中转站;带上密钥时 key_status 为 valid 表示密钥有效,invalid 表示密钥错误或已停用。
curl https://kiro.undusk.com/v1 -H "Authorization: Bearer $KIRO_API_KEY"能看到哪些模型
应列出 external/claude-opus-5-5 与 external/claude-fable-5-1;列表为空说明模型通道暂时不可用,稍后再试。
curl https://kiro.undusk.com/v1/models -H "Authorization: Bearer $KIRO_API_KEY"余额与赠送 token
balance 是人民币余额(元),free_tokens 是剩余赠送 token。
curl https://kiro.undusk.com/v1/account -H "Authorization: Bearer $KIRO_API_KEY"LIMITS
请求限制
不支持图片、音频、文件等附件;消息里带图片会返回 400。
不传时默认 4096;小于 128 会被拒绝,不能用 max_tokens=1 做探测。
不支持一次生成多个候选(n>1、best_of>1)。
同时进行的请求过多会返回 429,等前面的请求结束后重试即可。
超过返回 413,请精简上下文或开启新对话。
传 "stream": true 即可,按 SSE 返回。
BILLING
计费与赠送 token
怎么计费
- 按上游实际报告的输入、输出 token 数,乘以请求开始时的单价结算。
- 思考(thinking / reasoning)计入输出 token,不重复收费。
- 请求失败、没有完整用量(如 502 / 503)时不扣费。
- 发起请求时会按 max_tokens 临时冻结一部分余额,结束后按实际用量结算,多余部分立即返还。所以 max_tokens 设得越大,需要的可用余额越多。
- 每笔调用的用量和费用可在控制台「最近调用」与「余额与账单」查看。
注册赠送的 token
- 注册即送 token(当前 以控制台为准),两款模型都可以用。
- 调用时先抵扣输出 token,再抵扣输入 token;不够的部分从余额扣。
- 赠送 token 不是余额:不计入人民币余额,不可退款、不能折现。
- 剩余数量可在控制台查看,或请求
GET /v1/account的free_tokens。
FAST MODE
Fast 模式
Fast 模式让 Opus 5.5 输出更快,回答质量不变,但单价更高。目前只有 external/claude-opus-5-5 支持。
怎么开启
- Claude Code:在会话里输入
/fast打开。按上文用ANTHROPIC_AUTH_TOKEN接入本站时,Claude Code 默认会提示 Fast 模式不可用,需在env里再加一行"CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK": "1"。 - Anthropic 接口(
/v1/messages)和 OpenAI 接口(/v1/chat/completions):请求体加"speed": "fast"即可,不需要额外的 beta 请求头。 - 不方便改请求体的客户端,可以加请求头
X-Kiro-Fast: on。
怎么计费
- 按模型单价乘以 Fast 倍数结算(当前倍数见
GET /v1/models里的fast.price_multiplier,默认与官方一致为 2 倍)。 - Fast 模式只从余额扣费,不使用注册赠送的 token。
- 没能加速时自动改用普通速度、按普通价格结算,请求不会因此失败:例如模型不支持、Fast 暂时不可用,或余额不够冻结 Fast 费用。
- 响应头
X-Kiro-Fast告诉你结果:on已加速;unsupported按普通速度和价格处理;流式请求开始时为requested,最终以调用记录为准(记录里带「Fast」标记的才按 Fast 价格扣费)。
TROUBLESHOOTING
错误码排查
OpenAI 路径返回 OpenAI 格式的错误,Anthropic 路径返回 Anthropic 格式,客户端都能正常识别并重试。
| 状态码 | 含义 | 怎么处理 |
|---|---|---|
| 400 | 请求格式不支持 | 检查是否带了图片、n>1、max_tokens 不在 128–128000 范围等。 |
| 401 | 密钥无效或已停用 | 核对密钥是否完整复制、有没有多余空格;在控制台确认密钥未停用,必要时重新创建。 |
| 402 | 余额不足 / 赠送 token 用完 | 到控制台充值;或调低 max_tokens,减少单次需要冻结的金额。 |
| 403 | 账号已停用 | 联系客服处理。 |
| 404 | model_not_listed 模型不存在或已下架 | 模型名改为 external/claude-opus-5-5 或 external/claude-fable-5-1(或别名 opus / fable)。 |
| 409 | 幂等键重复 | 同一个 Idempotency-Key 已经用过;重新发起新请求时换一个新的键。 |
| 413 | 请求过大 | 精简上下文、压缩对话,或开启新对话。 |
| 429 | 并发达到上限 | 同一账号同时进行的请求太多,等前面的请求完成后再试。 |
| 502 / 503 | 模型通道暂时不可用 | 本次不扣费,稍后重试;持续出现请把响应里的 request_id 发给客服。 |
REFUND
退款规则
可以退
- 在线充值中尚未消费的部分,原路退回到付款账户。
- 模型通道故障或暂停售卖期间,也可以正常申请退款。
不能退
- 兑换码兑换的额度。
- 注册赠送的 token。
- 管理员手动加的余额。
- 正在进行中的调用暂时冻结的金额,调用结束后即可退。
申请入口:控制台 → 余额与账单 → 充值订单 → 申请退款。到账时间以支付渠道为准。
FAQ
常见问题
提示 404 model_not_listed 怎么办?
说明模型名不在售。本站只提供 external/claude-opus-5-5 和 external/claude-fable-5-1,也可以写 claude-opus-5-5、claude-opus-5.5、opus、claude-fable-5-1、fable。Claude Code 用户请确认设置了 ANTHROPIC_DEFAULT_HAIKU_MODEL,并检查是否所有模型变量都指向这两个模型。
Base URL 到底要不要带 /v1?
OpenAI 兼容(Cursor、Cherry Studio、OpenAI SDK)带 /v1;Anthropic 兼容(Claude Code、CC Switch、Anthropic SDK)不带。填错时一般会出现 404 或路径中重复的 /v1/v1。
余额是 0 能用吗?
可以。新注册账号有赠送 token(当前 以控制台为准),用完后再充值即可。如果余额和赠送 token 都不够覆盖本次 max_tokens,会返回 402,可以先调低 max_tokens。
能上传图片或文件吗?
暂不支持,目前仅支持文本和工具调用。
请求超时或长时间没有输出?
深度思考和长代码生成可能需要几分钟。Claude Code 请设置 API_TIMEOUT_MS=600000;SDK 里也建议把超时调到 10 分钟,并优先使用流式输出。
失败的请求会扣费吗?
没有拿到完整用量的失败请求(如 502、503)不扣费。每一笔是否扣费、扣了多少,都能在控制台的调用记录里看到。
密钥泄露了怎么办?
立刻到控制台停用这把密钥,再新建一个替换。停用后旧密钥的所有请求都会返回 401。
READY