API REFERENCE · v0.2
接入文档
一个 Base URL,同时说 OpenAI 和 Anthropic 两套协议。改地址、换 Key,就能跑。
快速开始
三步就能发出第一个请求。做之前先在控制台建一个 API Key,记下它所属的分组 —— 分组决定倍率和可用模型。
-
01
建密钥
控制台 → API 密钥 → 新建,选一个分组,生成
sk-开头的 Key。 -
02
换地址
客户端的 API 地址填
https://kittywizards.com/v1,密钥填 Key。 -
03
发请求
模型名填分组里支持的型号,跑通即用。模型清单见 模型列表。
两个地址只差一个 /v1,填错是最高频的报错来源。看着下面这张表填,别凭感觉。
Base URL 填哪里、填什么
| 你在哪里填 | 填这个 |
|---|---|
| OpenAI 兼容客户端 Cherry Studio / Cursor / ChatBox / LobeChat 等 |
https://kittywizards.com/v1 |
| Claude Code 环境变量 ANTHROPIC_BASE_URL |
https://kittywizards.com |
| Anthropic 官方 SDK 参数 base_url |
https://kittywizards.com |
| 自己写 curl / 自己拼路径 | 写完整地址,如 https://kittywizards.com/v1/chat/completions |
为什么不一样:Claude Code 和 Anthropic SDK 会自己往后面拼 /v1/messages,你给的地址要停在根上;OpenAI 兼容客户端只会拼 /chat/completions,所以要你先给到 /v1。多写一个变成 /v1/v1 会 404,少写了会拿到一堆网页 HTML。
线路与备用入口
默认线路走全球 CDN 智能调度。如果遇到卡顿、流式输出断断续续、或频繁连接超时(多发生在晚高峰),把 Base URL 换成下面的备用线路 —— 东京直连,不用代理也快。其余什么都不用动。
| 线路 | OpenAI 兼容客户端填 | Claude Code / Anthropic SDK 填 |
|---|---|---|
| 默认线路 全球 CDN,先试这个 |
https://kittywizards.com/v1 |
https://kittywizards.com |
| 备用线路(东京直连) 卡顿时换这个,大陆直连快 |
https://cn.kittywizards.com/v1 |
https://cn.kittywizards.com |
备用线路是同一个后端:API Key、余额、模型、用量统计完全一致,随时可以来回切。判断要不要切:连续几分钟出不出来第一个字,或者工具调用频繁超时,就换备用线路试试。
鉴权方式
两套协议用两个不同的请求头,但都是同一个 Key。
| 协议 | 请求头 | 示例值 |
|---|---|---|
| OpenAI 兼容 | Authorization | Bearer sk-xxxx |
| Anthropic 原生 | x-api-key | sk-xxxx |
| Anthropic 原生 | anthropic-version | 2023-06-01 |
Key 只显示一次,请立刻保存。怀疑泄露就在控制台撤销,重新建一个 —— 撤销是立即生效的。
OpenAI 兼容
最通用的一路。Cursor、Cherry Studio、各种第三方客户端默认都走这个格式。
curl https://kittywizards.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "你好"}]
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-你的key",
base_url="https://kittywizards.com/v1",
)
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-你的key",
baseURL: "https://kittywizards.com/v1",
});
const res = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "你好" }],
});
console.log(res.choices[0].message.content);
Anthropic 原生
要用 Claude 的 thinking、cache_control、工具调用这些原生能力,走这一路。
curl https://kittywizards.com/v1/messages \
-H "x-api-key: sk-你的key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "你好"}]
}'
流式请求加 "stream": true,返回的是标准 SSE 事件流,跟官方一致。
客户端配置
下面这些是手写配置。如果不想动配置文件,用 桌面客户端 点两下就能完成 —— 它会自己找到 Claude Code 和 Codex 的配置文件,写完还能一键还原。
Claude Code
export ANTHROPIC_BASE_URL="https://kittywizards.com"
export ANTHROPIC_AUTH_TOKEN="sk-你的key"
claude
Codex CLI
编辑 ~/.codex/config.toml:
model_provider = "kittywizards"
[model_providers.kittywizards]
name = "魔法咪"
base_url = "https://kittywizards.com/v1"
env_key = "KW_API_KEY"
Cherry Studio / ChatBox 等图形客户端
新建一个 OpenAI 兼容的供应商,API 地址填 https://kittywizards.com/v1,密钥填 sk-,模型名手动加或者点「拉取模型」。
magpie 本地网关
上面几种都是「填个地址就能用」。但有一类客户端不给你填地址 —— 比如 Claude 官方桌面版,它只认自家服务端;或者你一台机器上同时跑 Claude Code、Codex、Gemini CLI、OpenCode,每家各要一套配置、各记一个 Key。
magpie 是开源的本地网关(MIT 协议,只监听本机 127.0.0.1:3425)。把本站加成它的一个「供应商」,这些客户端就共用同一份 Key 和同一份模型清单,协议差异由网关在本机转换。
加一个供应商
装好 magpie,终端里跑一条命令,把 sk-你的key 换成控制台生成的 Key:
magpie provider add kittywizards \
url=https://kittywizards.com/v1 \
anthropic=https://kittywizards.com \
key=sk-你的key
两个地址的分工和 快速开始 那张表一致:url 给 OpenAI 系用,要带 /v1;anthropic 给 Claude 系用,停在域名根。填反了会报 404,不是 Key 的问题。
| magpie 字段 | 填什么 |
|---|---|
url | https://kittywizards.com/v1OpenAI 兼容 base |
anthropic | https://kittywizards.com不要带 /v1 |
key | 控制台生成的 sk- Key |
responses | https://kittywizards.com/v1Codex 走原生 Responses 时补;不填则由网关自动转换 |
拉模型、验证
magpie provider models kittywizards # 拉取本分组可用的模型
magpie provider test kittywizards # 探一次连通性
magpie providers # 全部供应商一览
让客户端指向网关
magpie 能自动改 Claude Code、Codex 的配置,在它的界面里选个模型就行。不受支持的客户端手动设环境变量:
export OPENAI_BASE_URL="http://127.0.0.1:3425/v1"
export ANTHROPIC_BASE_URL="http://127.0.0.1:3425"
# 这里的 key 随便填,网关只监听本机
magpie 是第三方开源工具,不在本站服务范围内。它的模型清单来自本站 /v1/models,你在控制台换了分组或撤销了 Key,网关这边要重新拉一次、或换上新 Key 才会跟上。
桌面客户端
给不想手改配置的人准备的小工具。选中线路、填上 Key、点一下,它就把 Claude Code 和 Codex 的配置写好;想退回去,一键还原到导入前的样子。
kitty-connect.exe
92500f2adf336f18e00d5686ab62444caf2079b06498af5d13bd15b4788ee3ff
下载链接带版本号 ?v=1.0.0,换新版时版本号会变,不会拿到旧的缓存包。
它能做什么
- 管线路:预置本站线路,也能加别的中转站,随时切换。
- 探测可用性:拉一次
/v1/models,通不通一眼看到。 - 一键写配置:自动定位
~/.claude/settings.json和~/.codex/config.toml,只改它管的字段,你原有的其他设置原样保留。 - 一键还原:写入前自动备份,点还原逐字节回到导入前。
- 只跑一份:重复双击会复用已经开着的窗口,不会起第二个进程。
怎么用
- 下载后双击运行,浏览器会自动打开本地界面。
- 选线路(默认就是本站),粘贴你的
sk-Key,点「探测」确认能通。 - 勾选要写入的客户端(Claude Code / Codex),点导入。
- 重启对应客户端,配置就生效了。想撤回就点「还原」。
工具没有代码签名证书,首次运行时系统可能提示「已保护你的电脑」。点更多信息 → 仍要运行即可。介意的话可以先用下面的哈希校验文件完整性。
校验下载是否完整
下完后对一下哈希,一致就说明文件没被改动过。
certutil -hashfile kitty-connect.exe SHA256
shasum -a 256 kitty-connect.exe
程序在本地运行,只做一件事:读写那两个配置文件。不采集浏览器数据,不上报使用信息。
模型列表
直接问接口,返回你当前 Key 所在的分组能用的模型:
curl https://kittywizards.com/v1/models \
-H "Authorization: Bearer sk-你的key"
返回结果是空的,说明该分组下面的上游账号还没同步模型清单 —— 找管理员在后台「渠道管理」拉一次。
分组与倍率
实际扣费 = 官方价格 × 分组倍率。不同分组对应不同的上游和定价,建 Key 时选定,之后按该分组计费。
正在读取分组…
倍率低不等于便宜,取决于上游真实成本。低价档一般有并发与用量限制,跑生产建议选「稳定」或「企业」档。
限流与额度
- RPM:每分钟请求数上限,按分组配置。
- 日 / 周 / 月额度:按美元计的上限,超了直接拒绝,不会偷偷扣费。
- 并发:同时进行的请求数。超了会排队或直接 429。
- 余额:余额不足时请求会被拒,控制台可以看到实时账单。
测试分组通常限得很紧(例如 20 RPM、每日 $1),只适合验证连通性,不适合压测。
错误码
| 状态码 | 含义 | 怎么处理 |
|---|---|---|
401 | INVALID_API_KEY Key 无效 | 检查是否粘全、有无空格、是否已撤销 |
403 | 分组无权访问该模型 | 换分组,或换该分组支持的模型名 |
404 | 路径写错 | Base URL 不要自己加 /v1/v1 |
429 | 触发 RPM / 额度限制 | 降速重试,或升级分组 |
503 | 分组内无可用账号 | 联系管理员检查上游账号状态 |
常见问题
报「无可用账号」是什么情况?
你选的分组下面没有挂可用账号,或者账号状态异常(被限流、额度耗尽、Key 失效)。这是服务端问题,直接找客服。
为什么同样的模型,别家便宜很多?
多半是上游不同。低价档常常是共享池或逆向通道,稳定性和速度会打折扣。我们的分组在控制台里能看到对应的上游类型,按需选。
支持图片输入 / 函数调用吗?
支持哪些能力取决于模型本身和上游。OpenAI 兼容格式下,图片走 image_url,函数调用走 tools,与官方一致。
账单在哪里看?
控制台 → 用量账单,可以按 Key、按模型、按天看明细。每一笔都能对到具体的请求。
Key 泄露了怎么办?
立刻在控制台撤销该 Key,然后新建一个。撤销即时生效,不会影响其他 Key。