Appearance
鉴权与 Base URL
Portdan 使用 API Key 鉴权。Key 必须按控制台显示原样使用。
Key 原样使用
正确:
text
sk-your-api-key错误:
text
sk-your-api-key#claude
sk-your-api-key#gemini
sk-your-api-key:openai
sk-your-api-key/v1后端不会去掉这些后缀;加了后缀就会变成另一个不存在的 Key,通常返回 401。
Base URL
| 场景 | Base URL / Endpoint | 备注 |
|---|---|---|
| OpenAI SDK / OpenAI Compatible | https://portdan.com/v1 | 最常见图形客户端和 OpenAI SDK |
| Claude Code / Anthropic SDK | https://portdan.com | 工具会拼 /v1/messages |
| Gemini CLI | https://portdan.com | 工具会拼 /v1beta |
| Gemini 直接 HTTP / OpenCode Gemini | https://portdan.com/v1beta | 直接请求 v1beta |
| Codex / CC Switch | https://portdan.com | Sub2 提供根路径别名 |
| Antigravity Claude / Gemini CLI | https://portdan.com/antigravity | 工具会拼专用路径 |
不要在 Base URL 后面加具体接口路径。下面是 OpenAI Compatible 的正确和错误示例:
| 写法 | 是否正确 | 说明 |
|---|---|---|
https://portdan.com/v1 | 正确 | SDK 或客户端会自动拼接接口路径 |
https://portdan.com/v1/chat/completions | 错误 | 这已经是完整接口路径,不应作为 Base URL |
https://portdan.com | 视工具而定 | Codex、CC Switch、Claude Code、Gemini CLI 这类工具常用根地址 |
请求头
主 /v1 OpenAI / Anthropic 兼容接口推荐:
http
Authorization: Bearer sk-your-api-key
Content-Type: application/json也兼容:
http
x-api-key: sk-your-api-key
x-goog-api-key: sk-your-api-keyGemini 原生 /v1beta 接口推荐:
http
x-goog-api-key: sk-your-api-key
Content-Type: application/jsonGemini 原生接口也兼容 Authorization: Bearer <API_KEY> 和 x-api-key。
Query 参数规则
- 主
/v1接口不要把 Key 放在 query 里;?key=和?api_key=会被拒绝。 - Gemini 原生
/v1beta和/antigravity/v1beta兼容?key=<API_KEY>,但不推荐。 ?api_key=<API_KEY>已废弃,会被拒绝。
curl 测试
OpenAI Compatible:
bash
curl https://portdan.com/v1/models \
-H "Authorization: Bearer sk-your-api-key"Claude / Anthropic Messages:
bash
curl https://portdan.com/v1/messages \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 64,
"messages": [
{"role": "user", "content": "请只回复 OK"}
]
}'Gemini 原生:
bash
curl https://portdan.com/v1beta/models \
-H "x-goog-api-key: sk-your-api-key"环境变量
OpenAI SDK:
bash
export PORTDAN_API_KEY="sk-your-api-key"
export OPENAI_API_KEY="$PORTDAN_API_KEY"
export OPENAI_BASE_URL="https://portdan.com/v1"Claude Code:
bash
export ANTHROPIC_BASE_URL="https://portdan.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-api-key"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1Gemini CLI:
bash
export GOOGLE_GEMINI_BASE_URL="https://portdan.com"
export GEMINI_API_KEY="sk-your-api-key"
export GEMINI_MODEL="gemini-2.0-flash"Windows PowerShell 示例:
powershell
$env:PORTDAN_API_KEY="sk-your-api-key"
$env:OPENAI_API_KEY=$env:PORTDAN_API_KEY
$env:OPENAI_BASE_URL="https://portdan.com/v1"令牌管理建议
- 为不同应用创建不同 API Key。
- 生产环境令牌设置额度上限。
- 临时测试令牌设置过期时间。
- 怀疑泄露后立即删除并重建。
- 不要把 API Key 写入前端代码、公开仓库或客户端截图。
- 不要通过修改 Key 字符串切换协议;应切换分组或 Base URL。
