构建,从一个请求开始
兼容 OpenAI 与 Anthropic 双协议的中转 API。这里提供清晰的人工文档,以及可直接复制给 AI 的 Markdown 和 JSON 结构化资料。
1快速开始
只需完成以下步骤,即可使用任何兼容 OpenAI Base URL 的客户端。
- 进入控制台,在「API Key」页面点击「创建新 Key」。
- 复制完整 Key(可随时在列表中再次查看与复制,无需担心丢失)。
- 将 Base URL 设置为
https://token.3dpclub.com/v1。 - 从模型市场复制准确的模型 ID 并发送请求。
cURL 示例
curl https://token.3dpclub.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"你好"}],"stream":true}'2认证与 API Key
所有请求使用 Authorization: Bearer <API_KEY> 认证。
Key 的查看与轮换
- 创建后仍可查看:在控制台「API Key」列表中,每个 Key 都有「👁 查看」按钮,随时展示并复制完整密钥。
- 轮换:若怀疑泄露,删除旧 Key 并新建一个,然后更新你的客户端配置。
- 存量 Key:早于「可再次查看」功能上线前创建的 Key 未保存明文,无法回溯查看 —— 请在列表中删除后重新创建。
服务档位
平台当前仅开放经济档。档位绑定到 Key,可在控制台修改,无需重新生成 Key,修改只影响保存后的新请求。
按模型现有倍率计费,各模型倍率不同、整体低于官方定价,适用于全部日常任务。
3SDK 接入
Python、Node.js、Claude Code、Codex、Cursor 等支持自定义 Base URL 的工具通常可直接接入。
Python(OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://token.3dpclub.com/v1"
)
resp = client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "你好"}]
)
print(resp.choices[0].message.content)Node.js(OpenAI SDK)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: "https://token.3dpclub.com/v1",
});
const r = await client.chat.completions.create({
model: "glm-5.2",
messages: [{ role: "user", content: "你好" }],
});
console.log(r.choices[0].message.content);Anthropic 兼容(Claude 客户端)
export ANTHROPIC_BASE_URL="https://token.3dpclub.com" export ANTHROPIC_API_KEY="YOUR_API_KEY" # 之后照常使用 Claude Code / Anthropic SDK
IDEIDE 与 CLI 工具接入
以下工具均已实测可用。最快的路径是控制台里的「CC Switch 一键导入」,无需手工编辑任何配置文件。
https://token.3dpclub.com/v1(Anthropic 协议填 https://token.3dpclub.com)· API Key 用控制台创建的 gp- 开头 Key · Model ID 从价格总览页复制。524——
这不是模型故障,是 CDN 层的超时限制。两种解法任选其一:
- ① 改用直连入口(无需改代码,只换 Base URL):中国香港
https://direct.token.3dpclub.com/v1· 美西https://us.token.3dpclub.com/v1(DNS 直连源站,无此限制) - ② 改用流式(推荐):请求体加
"stream": true,首字节很快返回,不会触发超时,观感也更好
max_tokens(如 kimi-k3 系列)。① CC Switch 一键导入(推荐)
CC Switch 是 Claude Code / Codex / Gemini CLI 的图形化配置管理器,支持 ccswitch:// 深链接一键导入,免去手工编辑 JSON / TOML / .env。
- 安装 CC Switch(macOS:
brew install --cask cc-switch;Windows / Linux 见其 GitHub Releases)。 - 回到本站控制台 →「指南」页 →「CC Switch 一键导入」,粘贴 API Key,点「导入 Claude Code」或「导入 Codex」。
- 在 CC Switch 弹出的配置预览中确认即可完成导入,之后可随时切换 Provider。
② Claude Code
export ANTHROPIC_BASE_URL="https://token.3dpclub.com" export ANTHROPIC_AUTH_TOKEN="gp-你的Key" claude # 之后照常使用
③ OpenAI Codex CLI
# ~/.codex/config.toml model_provider = "3dp" model = "glm-5.2" [model_providers.3dp] name = "3DP TokenHub" base_url = "https://token.3dpclub.com/v1" env_key = "THREEDP_API_KEY" # 终端中导出密钥: export THREEDP_API_KEY="gp-你的Key"
④ Cursor
- Settings → Models → OpenAI API Key 填入你的 Key。
- 打开 Override OpenAI Base URL,填
https://token.3dpclub.com/v1。 - 在 Models 中添加要用的模型 ID(如
glm-5.2)并启用;建议关闭其它内置模型以免误用。
⑤ Cline / Roo Code(VS Code 插件)
API Provider : OpenAI Compatible Base URL : https://token.3dpclub.com/v1 API Key : gp-你的Key Model ID : glm-5.2
⑥ 其它客户端
Open WebUI、ChatBox、LobeChat、NextChat、Cherry Studio 等支持自定义 OpenAI 端点的客户端,把 Base URL 指向 https://token.3dpclub.com/v1,填入 Key 与模型 ID 即可。
⑦ Continue(VS Code / JetBrains)
编辑 ~/.continue/config.json,在 models 数组中追加(可同时配两条:一条走标准入口,一条走直连入口给长输出用):
{
"models": [
{
"title": "3DP · deepseek-v4.1-flash",
"provider": "openai",
"model": "deepseek-v4.1-flash",
"apiBase": "https://token.3dpclub.com/v1",
"apiKey": "gp-你的Key"
},
{
"title": "3DP · kimi-k3(长输出走直连)",
"provider": "openai",
"model": "kimi-k3",
"apiBase": "https://direct.token.3dpclub.com/v1",
"apiKey": "gp-你的Key"
}
]
}⑧ Cherry Studio
设置 → 模型服务 → 添加提供商 类型 : OpenAI API 地址 : https://token.3dpclub.com/v1 API 密钥 : gp-你的Key 模型 : 手动添加,如 glm-5.3-flash / kimi-k3
⑨ 快速自检(一行命令验证连通性)
把下面的 Key 换成你自己的,能返回 JSON 即说明接入成功:
curl https://token.3dpclub.com/v1/chat/completions \
-H "Authorization: Bearer gp-你的Key" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"ping"}],"max_tokens":16}'4渠道余额监控 对接指南
想把自己的余额接入监控 / 告警系统?只需要一个接口:GET/v1/balance
GET https://token.3dpclub.com/v1/balance,返回 JSON 里的 available 字段就是当前可用余额(单位:元)。1 · 接口定义
| 项 | 值 |
|---|---|
| 方法 | GET |
| 路径 | /v1/balance |
| 认证 | Authorization: Bearer <API_KEY> |
| 请求参数 | 无 |
| 计费 | 不计费,仅校验 Key 有效性,不设余额门槛 |
| 数据维度 | 按账户返回(该账户下全部 Key 共用一份余额) |
2 · 请求示例
curl -s https://token.3dpclub.com/v1/balance \ -H "Authorization: Bearer YOUR_API_KEY"
3 · 响应示例
{
"currency": "CNY",
"available": 128.75,
"user_id": "u_1024",
"key_id": "k_8f3a2c"
}| 字段 | 类型 | 说明 |
|---|---|---|
currency | string | 币种,固定为 CNY |
available | number | 可用余额(元),监控取值就用它 |
user_id | string | 账户标识 |
key_id | string | 本次调用所用的 Key 标识 |
4 · 接入监控(可直接抄)
方案 A · 定时轮询 + 阈值告警(Shell + cron)
# 每 5 分钟检查一次,低于 20 元就告警
BAL=$(curl -s https://token.3dpclub.com/v1/balance \
-H "Authorization: Bearer $API_KEY" | jq -r .available)
if (( $(echo "$BAL < 20" | bc -l) )); then
echo "⚠️ 3DP 余额偏低: $BAL 元" | mail -s "余额告警" you@example.com
fi方案 B · Python 采集(适合 Prometheus Exporter / 自定义监控)
import requests, time
API_KEY = "YOUR_API_KEY"
URL = "https://token.3dpclub.com/v1/balance"
def fetch_balance():
r = requests.get(URL, headers={"Authorization": f"Bearer {API_KEY}"}, timeout=10)
r.raise_for_status()
data = r.json()
return float(data["available"]), data["currency"]
while True:
try:
bal, cur = fetch_balance()
print(f"[{time.strftime('%F %T')}] 可用余额 {bal:.2f} {cur}")
if bal < 20:
print(" ⚠️ 低于阈值,请及时充值")
except Exception as e:
print("查询失败:", e)
time.sleep(300) # 5 分钟方案 C · Node.js 采集
const URL = "https://token.3dpclub.com/v1/balance";
const API_KEY = process.env.API_KEY;
async function balance() {
const r = await fetch(URL, { headers: { Authorization: `Bearer ${API_KEY}` } });
const d = await r.json();
return Number(d.available);
}
setInterval(async () => {
const v = await balance();
console.log("可用余额:", v, "CNY");
if (v < 20) console.warn("⚠️ 余额偏低");
}, 5 * 60 * 1000);5 · 组合用法(余额 + 流水 + 消费)
只监控余额够用;若要定位「钱花在哪」,把三者组合起来:
| 目标 | 接口 |
|---|---|
| 当前余额、是否该充值 | GET /v1/balance |
| 余额变动原因(充值 / 扣费 / 返利) | GET /v1/transactions |
| 每天 / 每模型烧了多少 | GET /v1/consumption |
| 单次请求明细(token、延迟、状态) | GET /v1/usage-records |
5余额 / 用量查询接口
通过 API Key 查询账户余额、账单流水、使用记录与消费记录;模型列表与健康状态无需认证即可访问。
接口总览
| 接口 | 认证 | 用途 |
|---|---|---|
| GET /v1/balance | Bearer Key | 账户可用余额 |
| GET /v1/transactions | Bearer Key | 余额变动流水(充值 / 扣费 / 返利等) |
| GET /v1/usage-records | Bearer Key | 每次 API 调用明细 |
| GET /v1/consumption | Bearer Key | 消费汇总 + 扣费明细 |
| GET /v1/models | 公开 | 模型列表与定价 |
| GET /v1/model-status | 公开 | 模型健康状态(15 分钟窗口) |
| GET /v1/model-detail/{id} | 公开 | 单模型详情 + 各档位渠道统计 |
1 · 账单流水 GET /v1/transactions
| 参数 | 类型 | 说明 |
|---|---|---|
limit | int | 每页条数,默认 50,最大 500 |
offset | int | 偏移,默认 0 |
type | string | 流水类型:usage_deduct 扣费 / referral_reward 返利 / redeem 兑换 / signup_bonus 赠送 / adjust 调整 |
start / end | string | 时间范围,YYYY-MM-DD 或 ISO 时间(北京时间) |
curl "https://token.3dpclub.com/v1/transactions?limit=20&type=usage_deduct" \ -H "Authorization: Bearer YOUR_API_KEY"
返回字段:id、type、amount(负数表示扣费)、balance_after、note、created_at。
2 · 使用记录 GET /v1/usage-records
| 参数 | 类型 | 说明 |
|---|---|---|
limit / offset | int | 分页 |
model | string | 按模型过滤 |
status | int | 按 HTTP 状态码过滤(如 200、429) |
start / end | string | 时间范围 |
curl "https://token.3dpclub.com/v1/usage-records?limit=20&status=200" \ -H "Authorization: Bearer YOUR_API_KEY"
返回字段:id、model、prompt_tokens、completion_tokens、cached_tokens、cost、status_code、error_type、ttft_ms、tps、created_at。
3 · 消费记录 GET /v1/consumption
| 参数 | 类型 | 说明 |
|---|---|---|
limit / offset | int | 分页(仅影响明细 records) |
start / end | string | 时间范围 |
curl "https://token.3dpclub.com/v1/consumption?limit=20" \ -H "Authorization: Bearer YOUR_API_KEY"
返回:summary(total_charged 总消费、total_requests 总请求、by_model 按模型汇总)+ records(扣费明细)。
6模型与定价
模型列表、健康状态与详情均无需认证。
# 模型列表(含定价与档位) curl https://token.3dpclub.com/v1/models # 模型健康状态(15 分钟实时窗口) curl https://token.3dpclub.com/v1/model-status # 单模型详情 + 各档位渠道统计 curl https://token.3dpclub.com/v1/model-detail/deepseek-v4-pro
import requests
models = requests.get("https://token.3dpclub.com/v1/models").json()
for m in models.get("data", []):
print(m.get("id"), m.get("pricing") or m.get("price"))7错误码与排查
请优先记录请求 ID、模型 ID、发生时间和是否为流式请求。
| 状态 | 常见原因 | 建议 |
|---|---|---|
| 400 | 参数或模型能力不兼容 | 检查模型 ID、tools、JSON 模式、token 上限 |
| 401 | Key 无效或停用 | 确认 Bearer 格式与 Key 状态 |
| 402 | 余额不足 | 充值后重新请求(可参考 余额监控 提前告警) |
| 429 | 并发、RPM 或上游限流 | 指数退避并降低并发 |
| 503 | 渠道暂不可用或重试耗尽 | 保留请求 ID,稍后重试 |
8路由与降级
路由综合模型能力、健康度、优先级、首字延迟、并发和冷却状态。
- 流式内容一旦开始发送,不会透明切换到其他上游。
- 开始输出前若所选上游不可用,会按明确规则自动降级到其他健康渠道。
- 最终档位、倍率和降级原因会在使用记录中留痕。
- 模型、价格及实时状态以控制台「模型市场」为准。
9常见问题 FAQ
| 问题 | 解答 |
|---|---|
| 创建 Key 需要密码吗? | 登录会话已认证身份,创建 Key 无需额外输入密码。 |
| Key 创建后还能看到吗? | 可以。列表中点「👁 查看」即可随时复制完整 Key。 |
| 怎么知道余额还剩多少? | 调用 GET /v1/balance,见 渠道余额监控。 |
| 查询接口会扣费吗? | 不会。查询接口仅校验 Key 有效性,不产生费用。 |
| 改了档位要重新建 Key 吗? | 不需要。档位直接绑定在 Key 上,改完对新请求生效。 |
| 支持哪些协议? | OpenAI(/v1/chat/completions、/v1/responses)与 Anthropic(/v1/messages)。 |
10技术支持
遇到调用问题时,建议先在本页搜索错误码、模型 ID、Key 或参数名称,按对应建议检查并重试。文档中心覆盖快速接入、错误码、流式行为、余额监控与路由降级说明,可先完成大多数常见问题的定位。
若仍无法解决,请联系技术支持,并附上:HTTP 状态码、错误码、Request ID、发生时间、模型 ID、是否流式、客户端或 SDK 版本。请勿发送完整 API Key、私密对话或其他敏感数据。