Appearance
API 总览
蛋蛋 API 是 Sub2 网关,提供多种兼容接口:OpenAI Compatible、Anthropic Messages、Gemini v1beta,以及 Antigravity 专用入口。
最重要的接入规则
API Key 不加后缀
API Key 按控制台显示原样使用。Portdan 后端不会解析 Key 后缀,也不会通过后缀切换 OpenAI、Claude、Gemini 或 Antigravity。
协议由请求路径和 Key 绑定的分组决定。换协议时应切换正确的 Base URL、客户端类型和分组,而不是修改 Key 字符串。
Base URL 矩阵
| 协议 / 客户端 | Base URL / Endpoint | 说明 |
|---|---|---|
| OpenAI SDK / OpenAI Compatible | https://portdan.com/v1 | 客户端自动拼 /chat/completions、/responses、/models |
| Claude Code / Anthropic SDK | https://portdan.com | 客户端自动拼 /v1/messages |
| Anthropic Messages 直接 HTTP | https://portdan.com/v1/messages | 直接 curl 时使用完整接口地址 |
| Gemini CLI | https://portdan.com | CLI 使用根地址,自己拼 /v1beta |
| Gemini 原生 HTTP / OpenCode Gemini | https://portdan.com/v1beta | 直接请求 /v1beta/models/... |
| Codex / CC Switch 导入 | https://portdan.com | Sub2 提供 /responses 和 /backend-api/codex/responses 别名 |
| Antigravity Claude / Gemini CLI | https://portdan.com/antigravity | 专用根路径 |
| Antigravity Claude 直接 HTTP | https://portdan.com/antigravity/v1/messages | 直接请求 Messages |
| Antigravity Gemini 直接 HTTP | https://portdan.com/antigravity/v1beta | 直接请求 Gemini v1beta |
常用接口
鉴权与 Base URLKey 原样使用、请求头、环境变量。模型列表获取当前令牌可用模型。Chat CompletionsOpenAI 对话、工具调用、流式输出。Responses APICodex 和新版 OpenAI Responses 形态。Anthropic MessagesClaude Code / Messages 格式。Gemini v1betaGemini CLI / Google SDK 兼容格式。AntigravityAntigravity Claude / Gemini 专用路径。EmbeddingsOpenAI 向量接口。错误码401、403、404、429、5xx 排查。
OpenAI 最小调用示例
bash
curl https://portdan.com/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "请只回复 OK"}
]
}'SDK 示例
JavaScript / TypeScript
ts
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.PORTDAN_API_KEY,
baseURL: 'https://portdan.com/v1'
})
const completion = await client.chat.completions.create({
model: 'gpt-5.5',
messages: [{ role: 'user', content: '请只回复 OK' }]
})
console.log(completion.choices[0]?.message?.content)Python
py
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://portdan.com/v1",
)
completion = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "请只回复 OK"}],
)
print(completion.choices[0].message.content)兼容范围
| 能力 | 路径 | 说明 |
|---|---|---|
| 模型列表 | GET /v1/models | 返回当前令牌可访问模型 |
| OpenAI 对话 | POST /v1/chat/completions | OpenAI Chat Completions 兼容格式 |
| OpenAI Responses | POST /v1/responses 或 POST /responses | Codex / Responses API 兼容 |
| Anthropic Messages | POST /v1/messages | Claude Code / Anthropic Messages 兼容 |
| Gemini 原生 | GET /v1beta/models、POST /v1beta/models/{model}:generateContent | Gemini SDK / CLI 兼容 |
| Antigravity Claude | POST /antigravity/v1/messages | Antigravity 专用 Claude 路由 |
| Antigravity Gemini | POST /antigravity/v1beta/models/{model}:generateContent | Antigravity 专用 Gemini 路由 |
| 向量 | POST /v1/embeddings | 仅 OpenAI 平台分组支持 |
| 图片 | POST /v1/images/generations、POST /v1/images/edits | 需要 OpenAI 平台分组和图片权限 |
