TeamoRouter API 接入

TeamoRouter 提供与 Anthropic 和 OpenAI 完全兼容的 API,可通过官方 SDK 调用 Claude、Gemini、GPT 等多家模型。

TeamoRouter 提供与 Anthropic 和 OpenAI 完全兼容的 API。你可以把官方 SDK 的 Base URL 指向 TeamoRouter,无需改动业务代码,即可调用 Claude / Gemini / GPT 等多家模型。

  • Base URL:https://api.teamorouter.com
  • 鉴权:API Key(sk-teamo-...
  • 协议:同时支持 Anthropic 原生格式(/v1/messages)、OpenAI 兼容格式(/v1/chat/completions)、OpenAI Responses API(/v1/responses)和 Gemini 原生格式(/v1beta/models/{model}:generateContent

文中的 sk-teamo-xxxxxx 请替换为你自己的 Key,妥善保管,不要提交到代码仓库。

一、鉴权

两种格式的鉴权 Header 不同,按你使用的协议选择:

协议 Header
Anthropic x-api-key: sk-teamo-xxxxxx + anthropic-version: 2023-06-01
OpenAI Authorization: Bearer sk-teamo-xxxxxx
Gemini Authorization: Bearer sk-teamo-xxxxxx

二、可用模型

通过 GET /v1/models 实时拉取完整列表:

curl https://api.teamorouter.com/v1/models \
  -H "Authorization: Bearer sk-teamo-xxxxxx"

当前主要模型(节选):

厂商 模型 ID
Anthropic claude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-sonnet-4-6claude-haiku-4-5
OpenAI gpt-5.5gpt-5.4gpt-5.4-minigpt-5.2
Google gemini-3.1-pro-previewgemini-3.5-flashgemini-3.1-flash-lite-preview

即便使用 OpenAI 格式(/v1/chat/completions),也可以直接把 model 写成 claude-opus-4-8,路由会自动转换。

三、Anthropic 原生格式 /v1/messages

3.1 基础请求

curl https://api.teamorouter.com/v1/messages \
  -H "x-api-key: sk-teamo-xxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'

返回(节选):

{
  "id": "msg_01KxDE...",
  "type": "message",
  "role": "assistant",
  "model": "claude-opus-4-8",
  "content": [
    {
      "type": "text",
      "text": "我是 Claude……"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 159,
    "output_tokens": 34
  }
}

3.2 流式(SSE)

"stream": true,响应为 text/event-stream

curl https://api.teamorouter.com/v1/messages \
  -H "x-api-key: sk-teamo-xxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一首五言绝句"}
    ]
  }'

事件序列:message_startcontent_block_start → 多个 content_block_deltacontent_block_stopmessage_deltamessage_stop

3.3 Python SDK(anthropic)

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-teamo-xxxxxx",
    base_url="https://api.teamorouter.com",
)

resp = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}],
)

print(resp.content[0].text)

四、OpenAI 兼容格式 /v1/chat/completions/v1/responses

4.1 Chat Completions 基础请求

curl https://api.teamorouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello"}
    ]
  }'

返回为标准 OpenAI chat.completion 结构:

{
  "object": "chat.completion",
  "model": "claude-opus-4-8",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello!"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 214,
    "completion_tokens": 3,
    "total_tokens": 217
  }
}

4.2 Python SDK(openai)

from openai import OpenAI

client = OpenAI(
    api_key="sk-teamo-xxxxxx",
    base_url="https://api.teamorouter.com/v1",
)

resp = client.chat.completions.create(
    model="claude-opus-4-8",
    messages=[{"role": "user", "content": "你好"}],
)

print(resp.choices[0].message.content)

4.3 流式

"stream": true,返回标准 OpenAI SSE(data: {...} 分片,以 data: [DONE] 结束)。

4.4 Responses API 基础请求

如果你的应用已经迁移到 OpenAI Responses API,可以直接调用 /v1/responses

curl https://api.teamorouter.com/v1/responses \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": "用一句话介绍 TeamoRouter"
  }'

也可以在 Responses API 里使用 Claude / Gemini 等模型 ID,TeamoRouter 会按目标模型路由:

curl https://api.teamorouter.com/v1/responses \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "input": [
      {
        "role": "user",
        "content": [
          {
            "type": "input_text",
            "text": "用一句话介绍你自己"
          }
        ]
      }
    ]
  }'

4.5 Python SDK(openai responses)

from openai import OpenAI

client = OpenAI(
    api_key="sk-teamo-xxxxxx",
    base_url="https://api.teamorouter.com/v1",
)

resp = client.responses.create(
    model="gpt-5.4",
    input="用一句话介绍 TeamoRouter",
)

print(resp.output_text)

4.6 Responses API 流式

"stream": true,返回 OpenAI Responses API 的标准流式事件:

curl https://api.teamorouter.com/v1/responses \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "stream": true,
    "input": "写一首五言绝句"
  }'

五、Gemini 原生格式 /v1beta/models/{model}:generateContent

5.1 基础请求

curl https://api.teamorouter.com/v1beta/models/gemini-3.5-flash:generateContent \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          {"text": "用一句话介绍你自己"}
        ]
      }
    ]
  }'

返回(节选):

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "我是 Gemini,可以帮助你进行写作、编程、分析和创意生成。"
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 12,
    "candidatesTokenCount": 22,
    "totalTokenCount": 34
  }
}

5.2 流式(SSE)

使用 streamGenerateContent,并加上 alt=sse

curl "https://api.teamorouter.com/v1beta/models/gemini-3.5-flash:streamGenerateContent?alt=sse" \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          {"text": "写一首五言绝句"}
        ]
      }
    ]
  }'

5.3 环境变量

如果你的工具或 SDK 支持自定义 Gemini Base URL,可以按下面方式配置:

export GOOGLE_GEMINI_BASE_URL="https://api.teamorouter.com"
export GEMINI_API_KEY="sk-teamo-xxxxxx"
export GEMINI_API_KEY_AUTH_MECHANISM="bearer"

不同 Gemini SDK 对自定义 endpoint 的字段名可能不同,常见名称包括 base_urlbaseURLapiEndpoint 或环境变量。核心原则是:Base URL 指向 https://api.teamorouter.com,Key 使用你的 TeamoRouter API Key

六、在 Claude Code / Codex / Gemini CLI 等 Agent 工具中接入

这些工具底层就是 Anthropic / OpenAI SDK,配置环境变量即可。

Claude Code(Anthropic 协议):

export ANTHROPIC_BASE_URL="https://api.teamorouter.com"
export ANTHROPIC_API_KEY="sk-teamo-xxxxxx"

OpenAI 协议的工具(Chat Completions / Responses API 均可):

export OPENAI_BASE_URL="https://api.teamorouter.com/v1"
export OPENAI_API_KEY="sk-teamo-xxxxxx"

Gemini CLI:

export GOOGLE_GEMINI_BASE_URL="https://api.teamorouter.com"
export GEMINI_API_KEY="sk-teamo-xxxxxx"
export GEMINI_API_KEY_AUTH_MECHANISM="bearer"

七、常见问题

  • 401 / 鉴权失败:检查 Key 是否正确、Header 是否用对。Anthropic 用 x-api-key,OpenAI / Gemini 用 Authorization: Bearer
  • 模型不可用:先用 GET /v1/models 确认模型 ID 拼写。
  • 超时 / 首字慢:Opus 类大模型首字延迟数秒属正常,建议生产环境用流式提升体感。
  • Key 安全:放入环境变量或密钥管理,切勿硬编码或提交到 Git。
微信扫码加入交流群

遇到问题?

微信扫码加入交流群

TeamoRouter API 接入 · 帮助文档