很多开发者习惯用 API Key 调用 AI 服务——它灵活、可编程、不依赖浏览器登录。但 Codex 入门时,很多教程只介绍了通过 ChatGPT 账号密码登录的方式,导致用户对 API Key 的获取与配置感到困惑。本文梳理 Codex 的两种身份验证方式及其差异,并说明 TeamoRouter 的统一 API Key 方案如何简化流程。
为什么很多用户想要 API Key 而不是 ChatGPT 登录
API Key 相比 ChatGPT 账号登录有不可替代的优势:
- 可编程性高:CI/CD 流水线、脚本、自动化任务中无法通过浏览器登录来调用 API。
- 按量计费更可控:明确知道每次请求花了多少钱,不存在订阅到期中断的风险。
- 多工具共享:一个 API Key 可以同时用在 Codex CLI、ChatGPT App(自定义端点)、IDE 插件等多个入口。
- 团队协作友好:多个开发者用同一个池子计费,便于团队统一管理。
但直接向 OpenAI 申请 API Key 面临两个现实障碍:国际支付方式(需要境外信用卡)和国内网络直连的困难。
Codex 的两种验证方式:ChatGPT 登录 vs API Key
| 对比项 | ChatGPT 登录 | API Key |
|---|---|---|
| 配置方式 | 命令行登录(codex login),OAuth 流程 |
设置 OPENAI_API_KEY 环境变量 |
| 适用入口 | CLI(默认方式)、Web、App | CLI(显式配置)、自定义脚本 |
| 支付 | ChatGPT Plus/Pro 订阅($20-$200/月) | API 按量计费 |
| 优点 | 开箱即用,OAuth 免去 Key 管理 | 灵活、可编程、多工具共享 |
| 缺点 | 登录依赖浏览器、国内 OAuth 流程可能卡顿 | 需配置环境变量、Key 管理有安全要求 |
| 国内可用性 | 需要网络工具辅助登录 | 需要 API 网关中转 |
ChatGPT 登录方式
# 启动 Codex 后按提示登录
codex
# 浏览器会弹出 OAuth 授权页面
# 登录后 Codex 自动获取访问令牌
API Key 方式
# 设置环境变量后启动
export OPENAI_API_KEY="sk-xxxxxxxxxxxx"
export OPENAI_BASE_URL="https://api.teamorouter.com/v1"
codex
API Key 适合哪些用户
- 有自动化需求:需要将 Codex 集成到 CI/CD、脚本或批量任务中
- 团队共享:多个开发者使用同一 Key + 同一计费池
- 跨工具使用:在 Codex CLI、IDE 插件、自定义 App 间共享 API 额度
- 付费控制:需要精确的按量计费,不希望被订阅制绑定
环境变量配置方法
macOS / Linux
# 临时设置(当前终端会话有效)
export OPENAI_API_KEY="sk-teamo-xxxxxxxx"
export OPENAI_BASE_URL="https://api.teamorouter.com/v1"
# 永久写入 shell 配置文件
echo 'export OPENAI_API_KEY="sk-teamo-xxxxxxxx"' >> ~/.zshrc
echo 'export OPENAI_BASE_URL="https://api.teamorouter.com/v1"' >> ~/.zshrc
source ~/.zshrc
Windows PowerShell
# 临时设置
$env:OPENAI_API_KEY="sk-teamo-xxxxxxxx"
$env:OPENAI_BASE_URL="https://api.teamorouter.com/v1"
# 永久设置(当前用户)
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-teamo-xxxxxxxx", "User")
[Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", "https://api.teamorouter.com/v1", "User")
使用 .env 文件(推荐)
对于项目级配置,创建一个 .env 文件:
OPENAI_API_KEY=sk-teamo-xxxxxxxx
OPENAI_BASE_URL=https://api.teamorouter.com/v1
然后在终端中加载:
export $(cat .env | xargs)
codex
如何配置 baseUrl
Codex CLI 通过 OPENAI_BASE_URL 环境变量来确定 API 请求的目标地址。默认值是 https://api.openai.com/v1。对于国内用户,需要将其指向 TeamoRouter:
export OPENAI_BASE_URL="https://api.teamorouter.com/v1"
也可以直接在 codex 命令中指定:
OPENAI_BASE_URL="https://api.teamorouter.com/v1" OPENAI_API_KEY="sk-teamo-xxxxxxxx" codex
注意:
OPENAI_BASE_URL的末尾是否带/v1取决于具体工具的协议实现。Codex CLI 使用 Responses API(/v1/responses),因此 baseUrl 应设置为包含/v1的完整路径。
常见错误及排查
invalid API Key
Error: 401 Unauthorized
{
"error": {
"message": "Incorrect API key provided",
"type": "invalid_request_error"
}
}
排查:
- 检查环境变量是否已设置:
echo $OPENAI_API_KEY - API Key 是否有多余的空格或换行符
- 确认 API Key 未过期
insufficient balance
Error: 429 Too Many Requests
{
"error": {
"message": "You exceeded your current quota",
"type": "insufficient_quota"
}
}
排查:
- 登录 TeamoRouter 控制台检查账户余额
- API Key 关联的账户是否有足够的额度
model no permission
Error: 403 Forbidden
{
"error": {
"message": "The model `gpt-4o` is not available for your API key",
"type": "access_terminated"
}
}
排查:
- 确认 API Key 是否有该模型的权限
- 在 TeamoRouter 控制台中检查模型授权列表
baseUrl 配置错误
Error: 404 Not Found
排查:
- 检查
OPENAI_BASE_URL是否包含正确的路径,应包含/v1 - 确认 baseUrl 末尾没有多余的
/
常见问题(FAQ)
ChatGPT Plus 订阅送的额度能和 API Key 通用吗?
不能。ChatGPT Plus 订阅($20/月)和 API 用量的计费系统完全独立——Plus 的额度只能在 chat.openai.com 使用,不能通过 API Key 调用。同样,API Key 产生的费用也不会计入 Plus 订阅。
一个 API Key 能在 Codex CLI 和其他工具共用吗?
可以。同一个 API Key 可以同时用于 Codex CLI、ChatGPT 自定义端点、IDE 插件等多个工具。TeamoRouter 的统一 API Key 支持同时连接 Codex、Claude Code、Gemini CLI,只需按各工具的文档配置 baseUrl 即可。
API Key 会不会泄露?
如果 API Key 硬编码在代码中并提交到 GitHub,存在泄露风险。建议通过环境变量或 .env 文件管理,并将 .env 加入 .gitignore。
TeamoRouter 的 API Key 需要绑定信用卡吗?
不需要。注册即可获取 API Key,先充值后使用,支持支付宝等国内支付方式,最低充值门槛低。
Codex CLI 同时设置了 OPENAI_API_KEY 和登录了 ChatGPT,以哪个为准?
如果设置了 OPENAI_API_KEY 环境变量,Codex CLI 会优先使用 API Key 方式进行认证,忽略已登录的 ChatGPT 会话。
快速开始
- 注册 TeamoRouter 获取 API Key
- 按 Codex 接入文档 配置环境变量和 baseUrl
- 在终端输入
codex开始使用
通过 TeamoRouter 稳定接入 Codex、Claude Code、Gemini CLI。