接入文档
Waytocc 接入文档
Waytocc 是一个综合网关 —— 对话(Claude / GPT / Gemini)、AI Agent(Claude Code / Codex)和生图(gpt-image-2),三类接口互相独立,各用各的密钥。先选你要用的:
概览
对话:Claude · GPT · Gemini
Anthropic、OpenAI、Gemini 三种协议原生兼容,真模型直连,支持流式。
AI Agent
Claude Code、Codex 改个 Base URL 就接上,跑长任务、写代码。
生图:gpt-image-2
文生图 / 图生图,OpenAI 兼容,中文 prompt 原生支持。
官方协议兼容
沿用各家官方 SDK,只改 Base URL,代码一行不用动。
住宅 IP 直连
上游走海外住宅出口,稳定、低风控。
按量计费
对话按 token、生图按张,¥1=$1 充值,余额用量实时可见。
拿到密钥
- 1. 打开 waytocc.com,用邮箱注册。
- 2. 进「钱包」充值任意套餐。
(有朋友的邀请码?充值时填上,首充有加送 + 体验额度) - 3. 到「API 密钥」页点「新建密钥」。密钥只显示这一次,立刻复制保存!
下面例子里的 YOUR_API_KEY 全部换成你的密钥(形如 sk-...)。
Claude 对话(Messages API)
Waytocc 提供真 Claude 对话接口,完全兼容 Anthropic 的 POST /v1/messages。鉴权用 x-api-key(或 Authorization: Bearer),模型填 claude-opus-5。
curl https://api.waytocc.com/v1/messages \
-H "x-api-key: YOUR_CLAUDE_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-opus-5","max_tokens":1024,"stream":true,"messages":[{"role":"user","content":"用一句话介绍你自己"}]}'返回与 Anthropic 官方完全一致,文本在 content[0].text。建议带 stream:true —— 长回答非流式在边缘约 100 秒可能 524 超时。按 token 计费(输入 + 输出),用量在「用量历史」可见。
GPT 对话(OpenAI 兼容)
同一个网关也提供 OpenAI 兼容的对话接口 POST /v1/chat/completions,模型填 gpt-5.6-sol(同代还有 gpt-5.6-terra / gpt-5.6-luna,更省的有 gpt-5.4 / gpt-5.4-mini),鉴权用 Authorization: Bearer。
curl https://api.waytocc.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_OPENAI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-sol","stream":true,"messages":[{"role":"user","content":"用一句话介绍你自己"}]}'返回与 OpenAI 官方一致,文本在 choices[0].message.content(流式在 delta.content)。建议带 stream:true,按 token 计费。
Gemini 对话(原生 Gemini 协议)
Gemini 走 Google 官方 API 同形状的原生接口:POST /v1beta/models/{model}:generateContent,流式是 :streamGenerateContent?alt=sse。鉴权用 x-goog-api-key,Base URL 用根域名(不带 /v1)—— 官方 SDK 会自己补上 /v1beta。
curl "https://api.waytocc.com/v1beta/models/gemini-3-flash:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: YOUR_GEMINI_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"用一句话介绍你自己"}]}]}'⚠️ contents 里的 role 是必填的 —— 省略它会返回 400 INVALID_ARGUMENT,而不是一条能看懂的错误。返回与 Google 官方一致,文本在 candidates[0].content.parts[0].text;流式是 SSE,每帧结构相同。建议用流式,按 token 计费。
用 Claude Code
因为对话接口是 Anthropic 兼容的,官方 Claude Code 直接把 Base URL 指过来就能用 —— 设两个环境变量即可,密钥用 Claude 分组的那把。
npm i -g @anthropic-ai/claude-code
export ANTHROPIC_BASE_URL=https://api.waytocc.com
export ANTHROPIC_AUTH_TOKEN=YOUR_CLAUDE_KEY
claudeANTHROPIC_BASE_URL 用根域名(不带 /v1),ANTHROPIC_AUTH_TOKEN 填你的密钥。其它 Anthropic 兼容客户端(Cline、各类 SDK)同理。
用 Codex CLI
OpenAI 官方 Codex CLI 也能直接接 Waytocc —— 放好下面两个文件(密钥用 ChatGPT 分组的那把),进任意项目跑 codex 即可。
1. ~/.codex/config.toml(放在文件开头)
model_provider = "OpenAI"
model = "gpt-5.6-sol"
review_model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
disable_response_storage = true
network_access = "enabled"
windows_wsl_setup_acknowledged = true
model_context_window = 1000000
model_auto_compact_token_limit = 900000
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://api.waytocc.com/v1"
wire_api = "responses"
requires_openai_auth = true2. ~/.codex/auth.json
{ "OPENAI_API_KEY": "YOUR_OPENAI_KEY" }base_url 指向 https://api.waytocc.com/v1,模型 gpt-5.6-sol。安装:npm i -g @openai/codex。若报 403 dispatch,同 GPT 对话:把密钥分组切到 ChatGPT 那一组。
文生图(Text → Image)
给一句 prompt,生成一张图。POST /v1/images/generations,JSON 请求体。复制下面任意一种,把密钥换上直接跑。
curl -sS -m 185 https://api.waytocc.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "a red panda eating bamboo, studio lighting",
"n": 1,
"response_format": "b64_json"
}' \
| python3 -c "import sys,json,base64; d=json.load(sys.stdin); open('out.png','wb').write(base64.b64decode(d['data'][0]['b64_json'])); print('saved out.png')"成功返回 data[0].b64_json(图片的 base64),解码写文件即可。
图生图(Image → Image)
传一张图 + 一句 prompt,在原图基础上改。POST /v1/images/edits,multipart/form-data(图片放 image 字段)。注意 endpoint 是复数 edits。
curl -sS -m 185 https://api.waytocc.com/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F model=gpt-image-2 \
-F [email protected] \
-F prompt="put the subject in a snowy forest at night" \
-F response_format=b64_json \
| python3 -c "import sys,json,base64; d=json.load(sys.stdin); open('out.png','wb').write(base64.b64decode(d['data'][0]['b64_json'])); print('saved out.png')"把 input.png 换成你自己的图(PNG / JPG / WebP),返回格式和文生图一样。
参数说明
model是固定 gpt-image-2(注意是 -2)。prompt是想生成 / 修改成什么样,越具体越好,支持中文。image图生图必填图生图上传的原图,multipart 的 image 字段(PNG/JPG/WebP)。n否生成几张,默认 1。size否尺寸偏好(1024x1024 / 1024x1536 / 1536x1024 / auto)。实际输出尺寸由上游模型决定,可能与请求不同,计费按实际输出落档 —— 见「价格」。response_format否建议 b64_json(默认);url 为内部受控地址,不可公开访问。返回格式
成功返回 200,图片在 data[0].b64_json 里,是纯 base64(无需去前缀),直接解码写文件即可。
{
"created": 1781184210,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUg..." }
],
"usage": {
"input_tokens": 8,
"output_tokens": 0,
"total_tokens": 8
}
}价格
gpt-image-2 · 1K 档按张¥0.13 / 张gpt-image-2 · 2K 档按张¥0.20 / 张gpt-image-2 · 4K 档按张¥0.27 / 张对话(Claude / GPT / Gemini)按 token输入 + 输出分别计价生图是按张固定收费,token 用量不参与结算 —— 同一张图,提示词多长、返回多少 token 都不影响价格。
档位由实际返回图片的尺寸决定,不是请求里的 size 参数:请求 1024×1024 并不保证按 1K 档结算;无法归类的尺寸按 2K 档计。文生图和图生图价格相同,差别只在实际输出尺寸。
对话按 token 计费(输入 + 输出)。充值 ¥1 = $1 配额,用量与花费在控制台「用量历史」实时可见。
Base URL
每种协议的 Base URL 写法不同 —— 各家官方 SDK 对「版本段该由谁补」的约定不一样:
https://api.waytocc.com/v1https://api.waytocc.comhttps://api.waytocc.comAnthropic 和 Gemini 的 SDK 会自己补 /v1 和 /v1beta,所以用根域名;OpenAI SDK 认为 Base URL 已经带版本号,所以要写到 /v1。
常用端点
错误码
401密钥无效鉴权头不对或密钥被删。检查是否完整复制;注意 Gemini 用 x-goog-api-key,不是 Authorization。403余额不足 / 无权限账户余额用尽 → 去钱包充值;或密钥分组不允许该接口。429触发限流短时请求过多。降低并发,稍后重试;或联系客服调额。5xx / 超时上游临时波动重试即可。建议指数退避,重试 2–3 次,客户端超时设 ≥180s。常见问题
出图很慢 / 超时怎么办?+
单张通常 20–60 秒,属正常。请把客户端超时设到 180 秒以上(示例里是 -m 185 / timeout=185)。一直转圈多半是网络,换个网络再试。
支持哪些尺寸?返回的图和我请求的不一样?+
size 接受 1024x1024 / 1024x1536 / 1536x1024 / auto,但它是偏好而不是保证 —— 实际返回的尺寸由上游模型决定,经常与请求值不同。计费看实际返回的那张图落在哪个档位,所以请求 1024x1024 并不保证按 1K 档收费。在意成本就以「用量历史」里的实际扣费为准。
response_format 该用 b64_json 还是 url?+
请用 b64_json(默认推荐)。直接拿到图片 base64 自己落盘,稳定可靠。注意:url 返回的是内部受控地址,不能公开访问,客户端请勿依赖。
b64_json 要不要去掉前缀?+
不用。返回的就是纯 base64,直接 base64 解码写文件即可(见示例),无需拼接 data:image/png;base64, 前缀。
图生图能传多张图吗?+
用 multipart 上传,字段名是 image,常见 PNG/JPG/WebP 都行。endpoint 是复数 /v1/images/edits。prompt 里描述你想怎么改这张图。
model not found / 模型名报错?+
图像模型 ID 必须是 gpt-image-2(注意是 -2)。对话模型名见上方各节,填错会直接报模型不存在。
怎么调 Claude / 对话?+
用 POST /v1/messages(Anthropic 兼容),模型填 claude-opus-5,鉴权用 x-api-key 或 Authorization: Bearer。关键:要用 Claude 分组的密钥(和图像密钥是两把),否则会报 403 does not allow /v1/messages dispatch。详见上方「Claude 对话」。
Gemini 能用 OpenAI SDK 调吗?+
不能。Gemini 走的是 Google 原生协议(/v1beta/models/...:generateContent + x-goog-api-key),请用 google-genai SDK 或直接发 HTTP 请求,把 Base URL 指到 https://api.waytocc.com。用 OpenAI SDK 打 /v1/chat/completions 会因为分组协议不匹配而被拒绝。
能用官方 Claude Code 吗?+
能。export ANTHROPIC_BASE_URL=https://api.waytocc.com(根域名,不带 /v1),export ANTHROPIC_AUTH_TOKEN=你的 Claude 分组密钥,然后直接跑 claude。见上方「用 Claude Code」。
对话为什么建议 stream:true?+
非流式的长回答在 CDN 边缘约 100 秒会 524 超时。带 stream:true 边出边传,既不超时体验也更好。
搞不定?找客服
接不通、报错、余额不对,都可以找我们。