常见问题
按接入顺序排列——越靠前的越可能是你现在遇到的那个。 每条都指向对应的详细页面,需要深挖时点进去。
接入
Base URL 到底填什么?
https://www.apigoto.com/v1——这是绝大多数场景的答案。
唯一的例外是 Anthropic 官方 SDK 与 Claude Code,它们内部会自己拼
/v1/messages,所以要填不带 /v1 的
https://www.apigoto.com。填错的表现是 404 或路径里出现两个 v1。
我该用哪个端点?
取决于你手上的 SDK,与目标模型是哪家厂商的无关——协议不匹配时网关会转换。
拿不准就用 /v1/chat/completions。完整决策表见
协议与端点选择。
用官方 SDK 报 40001 api_key is required?
几乎可以肯定是 Anthropic SDK 用了 api_key=——那会发 x-api-key 头,
而网关只读 Authorization: Bearer。改成 auth_token=
(Node 是 authToken),环境变量用 ANTHROPIC_AUTH_TOKEN。
同时记得清掉 ANTHROPIC_API_KEY,它通常优先级更高。
客户端的「获取模型列表」点了没反应?
那些客户端拉的是 OpenAI 的 GET /v1/models,
而 APIGOTO 的模型清单走平台接口 GET /api/v1/user/user/models,两者不通用。
手动把模型 ID 填进去即可,不影响对话。
鉴权与密钥
密钥明文丢了能找回吗?
不能。服务端只存哈希,明文只在创建时返回那一次。删掉重建即可—— 这是设计而非缺陷,见 鉴权与 API Key。
一个账号能建几把密钥?
可以建多把,建议按用途/环境分开(生产、测试、某个具体项目各一把)。 好处是出问题时可以精确停用一把而不影响其它业务,日志里也能分得清是谁在调。
密钥泄漏了怎么办?
立刻在控制台删除或禁用它,然后新建一把替换。
删除是即时生效的,之后用旧密钥的请求会返回 40101。
再去调用日志里核对泄漏期间有没有异常调用。
计费
新账号第一次调用就报 40202?
这是最常见的第一个错误:账号既没订阅,也没开「API 扣费访问」开关。 去用户中心打开开关即可。如果账号还没实名,错误提示里会追加实名引导—— 完成实名可以免费获得使用额度。
我充了钱,为什么报「积分不足」?
余额和积分是两个池子。调用扣的是积分,余额需要兑换成积分才能用。 去开启「自动兑换」(之后积分不够会自动从余额补),或手动兑换一次。 详见 计费、积分与订阅。
调用日志里有记录,消费记录里却是 0?
通常不是漏记,而是这几种情况之一:订阅额度覆盖(日志标记
subscription_covered)、BYOK 调用(费用在你自己的厂商账户上)、
或者折后金额不足 1 积分(直接免扣,不做四舍五入)。
请求失败了会扣费吗?
入口就被拒的(鉴权、限流、资格不足)不扣费——没到上游。
但已经打到上游、上游开始生成后才失败的(包括流式中途断开),
已产生的 token 照扣,因为上游那边照收。
注意「参数越界」不算入口拒绝:max_tokens / 思考预算超过模型上限时网关不拦,
请求会真的发到上游,上游若在生成前就报错则不产生 token,也就不扣费。
怎么防止脚本写错跑量?
设「订阅外消费月度上限」(单位元,0 为不限),这是一道硬上界。
再配合密钥上的限制策略(并发/次数/Token 多档窗口)做第二层保险。
限流
42902 rpm limit exceeded,但我明明没那么高频?
因为策略层的请求次数、图片张数、视频数量、累计金额四个维度共用这一个错误码,
message 是固定的英文文案,不代表真的是「每分钟请求数」。
以 Retry-After 和控制台的「使用情况」页面为准。
限流窗口什么时候重置?
不是整点重置。窗口以「该维度首次使用的时刻」为锚点向后推——
比如「每小时 500 次」,首次调用在 10:17:32,那这一档就是 10:17:32 → 11:17:32。
所以不要靠看钟推算,读 Retry-After。
并发上限是 3,为什么只跑得动 2?
可能有槽位没释放(进程被 kill 等极端情况)。每个槽位存活超过 600 秒会自动剔除, 最多 10 分钟自愈。超过 10 分钟还这样,那就是真有请求在途——去查有没有卡住的长连接。
并发超了会排队等吗?
不会,直接返回 42901。需要排队的话得在客户端侧自己做,
比如用信号量控制并发数。
模型
50201 no available upstream for this model?
绝大多数情况是模型名写错了。请求里要写平台的 model_id,
不是上游厂商的原始模型名。去 /api/v1/user/user/models 核对拼写。
模型列表里有,调用却报 40203?
那是模型准入限制(需要某个认证等级或订阅套餐),不是模型不存在。 列表接口不做用户等级过滤,所以「看得到」不等于「调得动」。 具体差哪一档看 message,见 模型、准入与回退。
响应里的模型名和我请求的不一样?
触发了模型回退:原模型的所有上游都失败(包括被限流)后, 网关会改用你配置的回退模型再试一次。 对模型有强要求时,请校验响应里的模型名。不想要这个行为就别配回退模型。
能用 Anthropic 协议调 OpenAI 的模型吗?
可以。协议与模型是正交的——网关会做双向转换。 唯一的损耗是各厂商的专属扩展字段(安全设置粒度、缓存控制等)在目标协议里没有对应位置时会被丢弃。
流式
开了 stream: true,但还是一次性全出来?
九成是中间层缓冲了。curl 要加 -N;
自建 nginx 要 proxy_buffering off;CDN 上 SSE 路径要绕过缓存与压缩。
见 流式响应的「部署缓冲陷阱」。
怎么判断流式请求是成功还是断了?
看有没有收到终止事件,别只看 HTTP 状态码——
一旦开始推流,状态码就锁死在 200 了。OpenAI 系看 data: [DONE],
Anthropic 看 message_stop,Responses 看 response.completed,
Gemini 看最后一个片段有没有 finishReason。
用户点了「停止生成」,会退费吗?
不会。已经生成的 token 上游照收。
想控制成本应该靠 max_tokens,而不是靠中途掐断。
其它
请求体最大多少?
100 MiB,超出返回 41301。
纯文本对话远达不到;会触碰的基本只有 base64 图片和文件编辑类请求。
需要自己实现重试吗?
需要,但不用做得很复杂。网关内部已经替你在多条上游链路间重试过一轮, 错误传到你手上说明所有链路都试过了。客户端侧 3–4 次退避重试足够, 且只对 429(限流类)、504、部分 502 重试,别对 4xx 无脑重试。 参考实现见 错误处理与重试。
怎么区分是网关的错还是模型厂商的错?
看响应体里 error.type 是不是 "gateway_error"。
是就查错误码总表;不是就是上游原样透传,查对应厂商的文档。
数据会被用来训练吗?
APIGOTO 是转发网关,不用你的请求内容做模型训练。 但请求最终会到达上游厂商,其数据政策由该厂商决定。 对数据合规有严格要求时,建议用 BYOK——直接用你自己与厂商签的账户和条款。
还有问题?
先看错误码总表确认错误性质,再去控制台的调用日志找到那条具体记录。 反馈时带上时间、模型、错误码,排查会快很多。 控制台的「问题反馈」入口可以直接提交。