AnyRouter 还能用吗?当前访问状态与 API 核验步骤
简答:截至 2026 年 11 月 2 日,anyrouter.cfd 首页、agents.md 和价格页仍能访问,公开页面也仍展示 API 调用方式;但这只能证明网页可访问,不能证明每个模型或每次请求都稳定成功。要判断自己还能不能用,应先用有效 API Key 调用一个明确存在的模型,再根据 HTTP 状态码和响应体排查。新版公开文档同时把 https://anyrouter.dev/api/v1 作为 Base URL,但 .cfd 与 .dev 是否处于迁移、别名或完全等价关系,当前资料未核实。
定义:“AnyRouter 还能用吗”不是只检查网页能否打开,而是依次核验域名、API Key、Base URL、模型 ID、账户权限、余额、限速和上游响应。
先看结论:网页可访问,但要用请求确认 API
截至 2026 年 11 月 2 日,公开页面核验结果显示,anyrouter.cfd 首页、agents.md 文档和价格页均能打开,页面仍展示 OpenAI 兼容接口、Anthropic 兼容接口、模型目录和 API 示例。这说明网页入口目前可访问,但不能据此推出 API 对所有用户、所有模型都可用。
同时,公开的新版快速开始文档将 https://anyrouter.dev/api/v1 写为 Base URL,并给出 sk-ar-v1- 格式的推理 Key。现有资料没有直接证明 anyrouter.cfd 与 anyrouter.dev 是完全等价、正在迁移,还是分别承担不同入口,因此不建议把域名关系当成已确认事实。实际接入时,应优先使用你当前控制台或所用文档明确给出的地址,并保留一个最小请求做验证。
| 要核验的对象 | 当前可确认的信息 | 不能直接推出的结论 |
|---|---|---|
| 网页入口 | anyrouter.cfd 的首页、文档和价格页在本次核验时可打开 | 不能证明 API 长期稳定或所有地区都能访问 |
| Base URL | .cfd 文档列出 https://anyrouter.cfd/api/v1;新版 Quickstart 列出 https://anyrouter.dev/api/v1 | 两者是否完全等价、是否正在迁移,未核实 |
| API 是否可用 | 需要用有效 Key、有效模型和最小请求验证 | 不能仅凭首页或健康页判断你的账户权限 |
| 免费模型 | 公开文档称免费模型受套餐、请求频率和账户条件影响 | 不能把旧教程中的免费额度、每日次数当作当前固定规则 |
新版文档还提供了不需要 API Key 的健康接口说明:Health API 文档写明可通过 /api/v1/health 获取状态快照;但健康状态反映的是平台或路由层面的概况,不等于你的 Key、模型和账户一定能成功调用。
最短核验:先检查变量,再发送最小 curl 请求
如果你只是想知道“还能不能用”,不要先把接口接入 Cursor、Claude Code 或其他复杂工具。先在本机终端完成下面四步:准备 Key、选择 Base URL、获取或确认模型 ID、发送不含敏感数据的短请求。这样可以把域名问题、认证问题和模型问题分开。
- 准备环境变量。不要把真实 Key 写进脚本、前端代码或公开仓库。当前公开文档示例使用
ANYROUTER_API_KEY,因此必须先执行:export ANYROUTER_API_KEY="你的推理Key"。如果终端中变量为空,后面的 Authorization 头就可能为空,不能据此判断服务不可用。 - 选择一个待核验地址。若你正在使用旧配置,可先测试
https://anyrouter.cfd/api/v1;若按新版 Quickstart 配置,则测试https://anyrouter.dev/api/v1。不要同时修改多个变量,否则出现错误时难以判断是哪一项发生变化。 - 确认模型 ID。公开文档要求模型 ID 使用完整的
owner/model格式,并提醒不要凭记忆猜模型名。可以先请求模型列表:curl -sS "https://anyrouter.dev/api/v1/models" -H "Authorization: Bearer $ANYROUTER_API_KEY"。如果你坚持测试 .cfd,就把域名替换为https://anyrouter.cfd/api/v1/models,并使用响应中实际返回的模型 ID。 - 发送最小请求。下面示例统一使用已定义的
ANYROUTER_API_KEY,避免认证变量名不一致:curl -i "https://anyrouter.dev/api/v1/chat/completions" -H "Authorization: Bearer $ANYROUTER_API_KEY" -H "Content-Type: application/json" -d '{"model":"anyrouter/free","messages":[{"role":"user","content":"Reply with OK"}]}'。如果使用 .cfd,只替换 URL 主机名,不要同时替换 Key 和模型。
成功判定不能只看 HTTP 连接建立。应同时确认:响应是 JSON 而不是 HTML;HTTP 状态码表示成功;响应中存在可读取的模型输出;终端没有出现认证、余额、权限或限流错误。若使用 anyrouter/free 返回权限错误,不要立即判定接口停运,因为公开文档对免费模型有套餐要求和请求限制说明。
如果你只想检查平台健康而不想暴露 Key,可以按健康 API 文档执行:curl -i "https://api.anyrouter.dev/api/v1/health"。该文档说明健康接口不需要认证,并建议在默认 curl 得到 HTML 或遭遇边缘防护时改用专用 API 主机或提供描述性 User-Agent。健康接口只能作为平台层参考,最终仍应以你的最小业务请求为准。
错误码对照:按凭据、路径、模型、权限和响应体排查
排查顺序建议固定为:凭据 → 最终 URL → 模型 ID → 权限或区域 → 最小请求 → 响应体和日志。公开错误文档强调,除 429 外,多数 4xx 不应反复重试;先修正原因,比盲目重试更重要。
| 现象 | 通常先检查什么 | 下一步 |
|---|---|---|
| 401 | Authorization 是否为 Bearer $ANYROUTER_API_KEY;变量是否为空;Key 是否撤销或类型错误 | 重新导出 Key,确认使用推理 Key,不要把管理 Key 用在推理接口 |
| 402 | 付费模型余额是否不足,或上游 BYOK 计费是否失败 | 查看响应体中的 error.code 与 metadata,再决定充值、切换 BYOK 或改用有权限的模型 |
| 403 | 账户套餐、Key 范围、模型权限、IP allowlist 或免费模型条件 | 不要只重试;检查账户和 Key 的权限,确认免费模型是否需要 Go 或更高套餐 |
| 404 | Base URL 是否多写或少写 /api/v1;模型 ID 是否完整;路径是否匹配接口类型 | 从模型列表复制精确 ID,不要猜测别名,并检查最终请求 URL |
| 429 | Key 或 IP 是否超过滑动时间窗口,响应体是何种限流代码 | 读取 Retry-After,按响应体区分 Key 限流与 IP 限流;不要把余额不足当成限流 |
| 5xx、502、503、504 | 平台内部错误、上游故障、无可用路由或上游超时 | 记录请求 ID和脱敏错误信息,短暂退避后再试;持续失败时换一个已确认存在的模型 |
| 返回 HTML | 域名边缘防护、路径错误或默认 User-Agent 被拦截 | 确认使用 API 路径,必要时按健康 API 文档改用专用 API 主机或设置描述性 User-Agent |
错误文档说明,401、403、404 等错误通常不是靠重试解决;429 应尊重 Retry-After;500、502、503、504 是否重试则要结合响应体判断。对一次会产生费用或副作用的请求,不要在没有幂等控制的情况下无限自动重试。
如果请求出现 429,先看 error.code。限速文档区分了按 Key 的 rate_limit_exceeded 和按 IP 的 ip_rate_limit_exceeded,两者的处理方向不同。若响应是 403,则应优先检查套餐或权限;若是 402,则应先检查余额或上游计费信息。
免费模型、额度和域名变化:哪些信息不能照搬旧教程
“还能用吗”经常与“免费额度还在吗”混在一起,但这是两个问题。当前公开资料对免费模型的描述存在页面差异:.cfd 的 agents.md写有 Free 计划请求限制和付费计划条件;新版Pricing & Plans 文档则说明 Free、Go 以及更高套餐在免费模型、试用请求和每分钟限速方面存在不同规则。由于这些条件可能随账户、套餐、Key 和页面版本变化,本文不把某个旧教程中的每日次数当作长期固定结论。
新版 Quickstart 还说明,新账户可能没有内含余额,付费模型调用前需要满足相应的余额、套餐或 BYOK 条件;Credits & Billing 文档也将余额不足与免费模型条件分开说明。因此,看到 402、403 或免费模型不可用时,应先读取响应体里的机器可读错误码,再决定是检查余额、套餐、Key 权限,还是更换模型。
关于 anyrouter.cfd 和 anyrouter.dev:目前可以确认两套公开页面都提供 AnyRouter 相关 API 文档或入口,但本次检索没有找到一段明确声明,证明二者是永久等价域名、正式迁移关系或固定备用关系。稳妥做法是:新配置优先按照当前 Quickstart 文档给出的地址;已有 .cfd 配置先用最小请求验证;如果 .cfd 失败,再单独测试 .dev,并记录两次请求的最终 URL、状态码和响应体,而不是只凭网页是否能打开下结论。
安全提醒:API Key 应放在服务端环境变量或密钥管理工具中,不应写入前端、浏览器脚本、截图或公开仓库。建议开发、测试、生产环境使用不同 Key;一旦 Key 出现在日志或仓库中,应立即撤销、重新创建,并用最小请求验证新 Key 是否生效。
常见问题
AnyRouter 首页能打开,是否就说明 API 还能用?
不能。网页访问只能说明入口在本次核验时能返回页面;API 还要同时通过 Key、Base URL、模型 ID、账户权限和实际请求验证。建议先执行一个不含敏感数据的最小 curl 请求。
anyrouter.cfd 和 anyrouter.dev 应该选哪个?
目前公开新版 Quickstart 将 anyrouter.dev/api/v1 列为 Base URL,.cfd 的 agents.md 仍列出 anyrouter.cfd/api/v1。两者是否完全等价或处于迁移关系未核实。新配置可按当前 Quickstart 操作,旧配置则先保留 .cfd 并用实际请求验证。
调用 anyrouter/free 返回 403,是不是服务停了?
不一定。公开文档把 403 用于权限、套餐、Key 范围和免费模型条件等情况。先查看响应体中的 error.code,确认账户是否具备免费模型条件,再检查 Key 是否限制了模型;不要只重复发送同一个请求。
出现 402 和 429,应该怎样区分?
402 通常与余额不足或上游计费失败有关,应查看 error.code 和 metadata;429 表示达到某个限速窗口,应读取 Retry-After 并退避。两者不能用同一套自动重试逻辑处理。
curl 返回 HTML 而不是 JSON,应该先改 Key 吗?
先不要改 Key。检查最终 URL 是否包含正确的 /api/v1 路径、是否误调用网页入口,以及是否触发边缘防护。健康 API 文档还建议在默认 curl 收到 HTML 时使用专用 API 主机或设置描述性 User-Agent。
相关阅读
参考资料
- AnyRouter 首页:接口示例与模型入口
- AnyRouter agents.md:Base URL、认证头、模型与端点说明
- AnyRouter 价格页:套餐、额度与限速页面
- AnyRouter Quickstart:新版 Base URL 与最小请求(anyrouter.dev)
- AnyRouter Health API:健康接口与状态字段(cdn.anyrouter.dev)
- AnyRouter Errors:错误码与重试建议(anyrouter.dev)
- AnyRouter Rate Limits:限速层级与 429/403 区分(anyrouter.dev)
- AnyRouter Pricing & Plans:免费模型与套餐规则(anyrouter.dev)
- AnyRouter Credits & Billing:余额与计费说明(anyrouter.dev)