快速开始
1. 注册并获取 ZOOAPI API Key
- 访问 manager.zooapi.ai 注册账号。
- 按提示完成邮箱验证与账户激活。
- 在邮箱查看系统给你创建的 ZOOAPI API Key。
2. 配置 Base URL
将你的 SDK 或应用中的 base_url 替换为 ZOOAPI 的 Base URL:
- Base URL:
https://api.zooapi.ai
3. 发出第一个请求(几种主流协议示例)
# 将 YOUR_ZOOAPI_API_KEY 替换为你自己的 Key
export ZOOAPI_API_KEY="sk-xxxx"
3.1 OpenAI Responses API
curl https://api.zooapi.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ZOOAPI_API_KEY" \
-d '{
"model": "gpt-5.6-sol",
"input": "你好,ZOOAPI!请用一句话介绍你自己。"
}'
3.2 OpenAI Chat Completions API
curl https://api.zooapi.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ZOOAPI_API_KEY" \
-d '{
"model": "gpt-5.6-sol",
"messages": [
{
"role": "user",
"content": "你好,ZOOAPI!请用一句话介绍你自己。"
}
]
}'
3.3 Claude API
curl https://api.zooapi.ai/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $ZOOAPI_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "你好,Claude!请用一句话介绍你自己。"
}
]
}'
3.4 Gemini API
curl -X POST "https://api.zooapi.ai/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $ZOOAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [
{
"text": "你好,Gemini!请用一句话介绍你自己。"
}
]
}
]
}'
SDK 集成
ZOOAPI 的 API 设计与 OpenAI 和 Claude 的 SDK 完全兼容,使您可以轻松地将现有应用迁移过来,几乎无需更改代码。
OpenAI SDK 集成
您只需在初始化 OpenAI 客户端时,将 base_url 指向 ZOOAPI 的地址即可。
Python
import os
from openai import OpenAI
# 建议从环境变量读取您的 Key
client = OpenAI(
api_key=os.environ.get("ZOOAPI_API_KEY"),
base_url="https://api.zooapi.ai/v1",
)
chat_completion = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "user", "content": "用 Python 写一个 Hello World"},
],
)
print(chat_completion.choices[0].message.content)
JavaScript / TypeScript
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.ZOOAPI_API_KEY, // 您的 ZOOAPI API Key
baseURL: "https://api.zooapi.ai/v1",
});
async function main() {
const chatCompletion = await openai.chat.completions.create({
model: "gpt-5",
messages: [
{ role: "user", content: "用 JavaScript 写一个 Hello World" },
],
});
console.log(chatCompletion.choices[0].message.content);
}
main();
Claude SDK 集成
同样地,对于 Claude 模型(如 Claude 系列),您只需修改 baseURL。
baseURL 与 OpenAI 的略有不同,它不包含 /v1 后缀。Python
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ.get("ZOOAPI_API_KEY"),
base_url="https://api.zooapi.ai/",
)
message = client.messages.create(
model="claude-3-5-sonnet-latest",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "解释一下什么是“第一性原理”",
}
],
)
print(message.content[0].text)
JavaScript / TypeScript
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
apiKey: process.env.ZOOAPI_API_KEY, // 您的 ZOOAPI API Key
baseURL: "https://api.zooapi.ai/",
});
async function main() {
const message = await anthropic.messages.create({
model: "claude-3-5-sonnet-latest",
max_tokens: 1024,
messages: [
{
role: "user",
content: "解释一下什么是“第一性原理”",
},
],
});
console.log(message.content[0].text);
}
main();
其他客户端和应用
对于任何支持自定义 OpenAI/Claude API 地址的第三方客户端,集成方法都是类似的:
- 找到设置中的 "API Key" 或类似选项,填入您的
sk-...Key。 - 找到 "API Base URL"、"Custom API Domain" 或 "Endpoint" 等选项,填入
https://api.zooapi.ai或https://api.zooapi.ai/v1(具体取决于客户端要求)。
Codex 是什么
Codex 是能够进入开发环境、阅读项目、修改文件并运行命令的编码代理。它不只是对话工具,更适合在明确范围内协助完成实际开发任务。
适合做什么
- 理解陌生项目的目录、启动方式和测试方式。
- 定位并修复 bug,修改代码、测试和文档。
- 审查改动、拆解任务,并在本地或云端并行探索方案。
不适合做什么
- 未理解项目就进行大范围重构。
- 直接操作生产数据库、服务器或凭据。
- 没有测试、确认或回滚方案的批量修改。
下载与安装
建议先安装 Codex CLI;需要图形界面时再打开桌面 App 或 IDE 扩展。
macOS、Linux 和 WSL
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex
# macOS 也可以使用 Homebrew
brew install --cask codex
codex appWindows 原生
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
codex
# 可选:准备常用开发工具
winget install --id Git.Git
winget install --id OpenJS.NodeJS.LTS
winget install --id Python.Python.3验证安装
codex --version
codex出现交互界面即表示 CLI 已可用。使用 WSL 时,建议将项目放在 WSL 文件系统中,例如 ~/code。
选择使用入口
不同入口适合不同的工作方式,选择会直接影响使用体验。
入口选择
- CLI:适合在终端直接读写项目、运行命令、调整 sandbox、approval、model 或 profile。
- App:适合图形化选择项目、并行管理多个任务、查看变更与 Git 状态。
- IDE Extension:适合在 VS Code、Cursor 或 Windsurf 内解释、修改和 review 代码。
- Web / Cloud:适合云端执行、生成 PR、远程任务和团队协作。
新手建议
希望少用命令行可以从 App 开始;开发者建议同时掌握 CLI。进入项目后再启动 Codex,能让它从正确的工作目录开始工作。
cd your-project
codex
# 打开桌面 App
codex app第一次使用
第一次不建议直接大改项目。先让 Codex 理解仓库,再安排范围小、可验证的任务。
先理解项目
请先不要修改文件。帮我解释这个项目的目录结构、启动方式和测试方式。再执行最小改动
请找一个最小的可改进点,先说明方案,等我确认后再修改。
可以按方案修改。改完后运行相关测试,并告诉我修改了哪些文件。高质量任务应明确:目标、范围、限制和验证方式。每轮改动后查看 diff,不要在未确认影响范围时继续扩大修改。
配置与登录
多数配置问题来自修改了错误的 config.toml,或环境变量未进入当前实际运行环境。
配置文件位置
- macOS / Linux:
~/.codex/config.toml - Windows 原生:
%USERPROFILE%\.codex\config.toml - WSL2:使用 WSL 内自己的
~/.codex/config.toml
Windows 与 WSL 是独立环境;仅在共享配置或切换环境时才需要设置 CODEX_HOME。
保守的默认配置
approval_policy = "on-request"
sandbox_mode = "workspace-write"
preferred_auth_method = "apikey"可使用 ChatGPT 账号、OpenAI API Key 或自定义 provider 登录。排查时依次确认运行平台、实际读取的配置文件、当前 shell 环境变量,以及 profile 是否覆盖默认设置。
接入 ZOOAPI
通过统一 API、账号、额度和模型配置,将 Codex 接入 ZOOAPI。密钥仅应通过环境变量或安全的密钥管理工具注入。
基础配置
model_provider = "xai"
model = "gpt-5.6-sol"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
preferred_auth_method = "apikey"
[model_providers.xai]
name = "xai"
base_url = "https://api.zooapi.ai"
wire_api = "responses"
requires_openai_auth = false
env_key = "XAI_API_KEY"设置密钥并启动
# Linux / macOS
export XAI_API_KEY="YOUR_XAI_ROUTER_KEY"
codex
# PowerShell
$env:XAI_API_KEY="YOUR_XAI_ROUTER_KEY"
codexwire_api = "responses";使用 Chat 形态模型时请单独配置 provider 和 profile。GPT Image 2 图片 API
Codex 可协助编写图片工作流;真正负责生成或编辑图片的是 gpt-image-2 与 Images API。它不能作为 Codex 的主模型配置。
生成图片
使用 POST /v1/images/generations,响应中的 data[0].b64_json 可解码为图片文件。
export API_BASE_URL="https://api.zooapi.ai"
export XAI_API_KEY="YOUR_XAI_ROUTER_KEY"
curl --fail-with-body -sS "$API_BASE_URL/v1/images/generations" \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一张现代茶饮品牌的方形海报,玻璃杯、柚子切片、清爽白绿色背景",
"n": 1,
"size": "1024x1024",
"quality": "low",
"output_format": "png"
}' > gpt-image-response.json
jq -er '.data[0].b64_json' gpt-image-response.json | base64 --decode > gpt-image.png编辑图片
使用 POST /v1/images/edits 并以 multipart/form-data 上传 image[]。局部重绘可额外提供带 alpha 通道的 mask。
curl --fail-with-body -sS "$API_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $XAI_API_KEY" \
-F 'model=gpt-image-2' \
-F 'image[]=@gpt-image.png' \
-F 'prompt=保留主体与构图,把背景改成雨夜霓虹街道' \
-F 'size=1024x1024' \
-F 'quality=low' \
-F 'output_format=png' > gpt-image-edit-response.json常用 size 包括 1024x1024、1536x1024、1024x1536;quality 可选 low、medium、high。上传原图和遮罩应保持格式与尺寸一致,单个文件小于 50 MB。
权限与安全
Codex 可以修改文件和执行命令,安全使用的核心是明确访问边界和人工确认点。
Sandbox 与 Approval
- Sandbox:控制可访问范围与可写入范围。
- Approval:控制命令和越界操作前是否需要确认。
codex --sandbox workspace-write --ask-for-approval on-request安全操作习惯
- 先计划、后修改;每轮检查 diff 并运行相关测试。
- 警惕删除、迁移、覆盖和提权命令。
- 通过环境变量或密钥管理工具保存密钥,绝不提交到仓库。
- 只在临时容器、可丢弃虚拟机或已有回滚方案的环境中使用
--yolo或danger-full-access。
常用工作流
Codex 的效果很大程度取决于任务描述是否清晰、可验证。
解释项目与定位问题
请先不要改文件。阅读这个仓库,说明目录结构、主要模块、启动命令、测试命令和最重要的配置文件。
这个问题是:用户点击保存后页面没有提示成功。请先定位原因,不要直接改。找到原因后给出修复方案和验证方式。修改、测试与审查
按方案修改,只改必要文件。完成后运行相关测试,并总结 diff。
请为这个模块补充单元测试。优先覆盖边界条件,不改变生产逻辑。完成后运行测试。
请 review 当前未提交改动。优先指出 bug、回归风险、安全问题和缺失测试。不要改文件,先给我 findings。长任务模板
目标:把旧的支付回调处理迁移到新的 handler。
范围:只改 api/handler/payment* 和相关测试。
限制:不改数据库结构,不改外部接口字段。
验证:运行 payment 相关测试,并说明没有覆盖的风险。进阶能力
先稳定完成小任务,再逐步采用适合团队和长任务的高级能力。
能力概览
- Goals:为长时间、多步骤任务明确目标、预算与完成条件。
- Skills:将说明、参考资料和脚本沉淀为可复用的任务能力。
- Plugins:包含 skills、命令、MCP 配置、hooks 和资源文件的扩展包。
- Subagents:为 review、测试补全或安全检查等复杂任务分配并行角色。
- MCP:连接外部工具、数据源或内部系统;需要访问私有系统时再按需配置。
采用建议
先为重复工作流建立清晰的提示词和验证标准,再考虑 Skills、Plugins 或 MCP。每增加一个外部能力,都应最小化权限范围并确认其数据访问边界。
Claude Code(API Key 接入)
使用 ZOOAPI 驱动 Claude Code
Claude Code 通过环境变量接入 ZOOAPI。请先在终端设置变量,再执行 claude。
sk-xxxx 替换为你自己的 ZOOAPI API Key;不要将密钥提交到代码仓库或共享给他人。Linux / macOS
export ANTHROPIC_AUTH_TOKEN="sk-xxxx"
export ANTHROPIC_BASE_URL="https://api.zooapi.ai"
# 可选:自定义 Claude 默认模型映射
export ANTHROPIC_DEFAULT_OPUS_MODEL="gpt-5.6-sol"
export ANTHROPIC_DEFAULT_SONNET_MODEL="gpt-5.6-terra"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="gpt-5.6-luna"
claudeWindows CMD
set ANTHROPIC_AUTH_TOKEN=sk-xxxx
set ANTHROPIC_BASE_URL=https://api.zooapi.ai
set ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-5.6-sol
set ANTHROPIC_DEFAULT_SONNET_MODEL=gpt-5.6-terra
set ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-5.6-luna
claudeWindows PowerShell
$env:ANTHROPIC_AUTH_TOKEN="sk-xxxx"
$env:ANTHROPIC_BASE_URL="https://api.zooapi.ai"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="gpt-5.6-sol"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="gpt-5.6-terra"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="gpt-5.6-luna"
claude验证命令:claude。
Grok CLI / OpenCode(API Key 接入)
Grok CLI 和 OpenCode 均可通过 ZOOAPI 的 Responses 兼容接口接入。以下示例使用 https://api.zooapi.ai 与你的 ZOOAPI API Key。
sk-xxxx 替换为你自己的 ZOOAPI API Key;密钥只应保存在本机环境变量或受保护的配置文件中。Grok CLI(grok-4.5 / Responses)
配置文件为 ~/.grok/config.toml;Windows 路径为 %USERPROFILE%\.grok\config.toml。
Linux / macOS 安装或更新:
curl -fsSL https://x.ai/cli/install.sh | bash
grok update
grok --version写入 ~/.grok/config.toml:
[models]
default = "grok-4.5"
[endpoints]
models_base_url = "https://api.zooapi.ai"
[model."grok-4.5"]
model = "grok-4.5"
name = "Grok 4.5"
api_key = "sk-xxxx"
api_backend = "responses"
context_window = 500000
supports_backend_search = true
[session]
auto_compact_threshold_percent = 80
[ui]
max_thoughts_width = 120
yolo = true
compact_mode = false
permission_mode = "always-approve"验证配置与请求:
grok inspect
grok models
grok --model grok-4.5 --output-format json -p '只输出 YAI_GROK_OK'安全提示:yolo = true 与 permission_mode = "always-approve" 会允许 Grok 自动执行工具调用,仅应在可信项目与运行环境中启用。Linux / macOS 建议执行 chmod 600 ~/.grok/config.toml。
OpenCode(Responses:gpt-5.6-sol)
全局配置文件为 ~/.config/opencode/opencode.jsonc;Windows 路径为 %USERPROFILE%\.config\opencode\opencode.jsonc。
{
"$schema": "https://opencode.ai/config.json",
"model": "openai/gpt-5.6-sol",
"small_model": "openai/gpt-5.6-sol",
"provider": {
"openai": {
"options": {
"baseURL": "https://api.zooapi.ai",
"apiKey": "{env:XAI_API_KEY}"
},
"models": {
"gpt-5.6-sol": {
"headers": {
"originator": "opencode"
}
}
}
}
},
"agent": {
"title": { "options": { "reasoningEffort": "none" } },
"build": { "variant": "xhigh", "options": { "reasoningSummary": "detailed", "textVerbosity": "high" } },
"plan": { "variant": "xhigh", "options": { "reasoningSummary": "detailed", "textVerbosity": "high" } }
},
"permission": {
"*": "allow",
"external_directory": "allow",
"doom_loop": "allow"
}
}Linux / macOS:
export XAI_API_KEY="sk-xxxx"
opencode debug config
opencode run "你好"Windows CMD:
set XAI_API_KEY=sk-xxxx
opencode debug config
opencode run "你好"Windows PowerShell:
$env:XAI_API_KEY="sk-xxxx"
opencode debug config
opencode run "你好"Codex CLI / App(API Key 接入)
统一接入说明
Codex 现已仅支持 wire_api = "responses"。请配置 ~/.codex/config.toml 与 ~/.codex/auth.json;Windows 路径分别为 %USERPROFILE%\.codex\config.toml 与 %USERPROFILE%\.codex\auth.json。
sk-xxxx 替换为你自己的 ZOOAPI API Key。配置文件中包含密钥时,请避免提交到代码仓库,并限制本机文件权限。推荐:Linux / macOS 一键配置
[ -e ~/.codex ] && mv ~/.codex ~/.codex.bk; mkdir -p ~/.codex
cat > ~/.codex/config.toml <<'EOF'
model_provider = "xai"
model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
plan_mode_reasoning_effort = "xhigh"
model_reasoning_summary = "none"
model_context_window = 1050000
model_auto_compact_token_limit = 945000
stream_idle_timeout_ms = 900000
approval_policy = "never"
sandbox_mode = "danger-full-access"
suppress_unstable_features_warning = true
[model_providers.xai]
name = "OpenAI"
base_url = "https://api.zooapi.ai"
wire_api = "responses"
experimental_bearer_token = "sk-xxxx"
requires_openai_auth = true
[features]
goals = true
remote_connections = true
EOF
cat > ~/.codex/auth.json <<'EOF'
{
"OPENAI_API_KEY": "sk-xxxx"
}
EOF
chmod 600 ~/.codex/auth.json上述配置会将同一个 ZOOAPI API Key 写入 experimental_bearer_token 与 auth.json。
备用:单独配置文件
model_provider = "xai"
model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
plan_mode_reasoning_effort = "xhigh"
model_reasoning_summary = "none"
model_context_window = 1050000
model_auto_compact_token_limit = 945000
stream_idle_timeout_ms = 900000
approval_policy = "never"
sandbox_mode = "danger-full-access"
suppress_unstable_features_warning = true
[model_providers.xai]
name = "OpenAI"
base_url = "https://api.zooapi.ai"
wire_api = "responses"
experimental_bearer_token = "sk-xxxx"
requires_openai_auth = true
[features]
goals = true
remote_connections = true{
"OPENAI_API_KEY": "sk-xxxx"
}Windows:创建配置目录并打开文件
CMD:
if not exist "%USERPROFILE%\.codex" mkdir "%USERPROFILE%\.codex"
notepad "%USERPROFILE%\.codex\config.toml"
notepad "%USERPROFILE%\.codex\auth.json"
codexPowerShell:
New-Item -ItemType Directory -Force "$env:USERPROFILE\.codex" | Out-Null
notepad "$env:USERPROFILE\.codex\config.toml"
notepad "$env:USERPROFILE\.codex\auth.json"
codex打开文件后,分别粘贴上方 TOML 与 JSON 内容并保存,再运行 codex 验证配置。
技术问题
为什么有些 API 调用会报 404 Not Found 错误?
这通常是因为您的 base_url 配置不正确。许多库(如 LangChain)要求 base_url 必须包含 /v1 后缀,而不仅仅是域名。请检查配置是否为 https://api.zooapi.ai/v1(针对 OpenAI 兼容接口)。
为什么会报 401: Incorrect API key provided... 错误?
这个错误通常表明请求被发送到了 OpenAI 的官方服务器,而不是 ZOOAPI 对应的代理服务。请确认您不仅配置了 API Key,也已经将 API 请求地址(base_url)修改为 https://api.zooapi.ai。
如果我使用的开源项目不支持配置 `base_url` 怎么办?
在这种情况下,您需要找到该项目的源代码,并将其中的 API 请求地址从 api.openai.com 硬编码修改为 api.zooapi.ai。
为什么调用用户管理 API(如 /x-users)会提示 401 Unauthorized?
为了防止滥用,调用核心管理 API(如创建或管理子账户)对调用者账户的余额有最低要求。通常,您的账户余额需要大于 $100 才能获得相应调用权限。
创建子账户需要满足什么条件?
创建子账户通常需要满足两个条件:父账户余额需要大于 $100;为新创建的子账户进行的首次充值额度不能低于 $2。
为什么我的账户还有余额,但提示 "Insufficient balance"?
为了防止透支和资产损失,当账户余额低于 $1 时,系统会禁止新的 API 调用。请及时充值。
为什么会报 429 Too many requests / Rate limit XXX reached?
这表示命中了当前账户或模型的限流窗口,常见原因包括 RPM、RPH、RPD、TPM、TPH、TPD。如果报错里明确写的是 RPH,则表示该模型的每小时请求数已到上限。
- 降低并发并加入指数退避重试。
- 先区分具体 reason:
RPM/RPH/RPD/TPM/TPH/TPD。 - 将负载分散到不同时段或模型。
- 联系管理员提升对应额度或模型配额。
RPH 是 300,为什么只成功了 40 次?
RPH 统计的是进入该窗口判断的尝试请求数,而用量统计只记录成功的请求。并发、自动重试或在触发阈值前失败的请求,都可能消耗 RPH,但不会进入成功用量统计。
并发请求会全部被拦截吗?触发后要等多久?
不会整批拦截,系统对每个请求单独判断:达到上限之前的请求会成功,超过上限的会返回 429。
RPM/TPM:通常约 1 分钟。RPH/TPH:通常约 1 小时。RPD/TPD:自然日额度,到服务端当天结束后恢复。
为什么我感觉限额一直不清零?
先看报错里的 reason:RPM/RPH/TPM/TPH 通常表示还在短窗口或 cooldown 内;RPD/TPD 表示当日额度已经用完,需要等服务端业务日期切到下一天。持续重试本身也可能刷新 cooldown,因此建议降低并发并做指数退避。