API 文档

完整的 API 接口文档,帮助你快速接入 15code 服务

📑 目录
1. 简介 2. 接口地址 3. 认证方式 4. 请求示例 5. 参数说明 6. 响应格式 7. 支持模型 8. 错误处理 9. 使用限制 10. 最佳实践

1️⃣ 简介

什么是 15code API?

15code 是一个一站式 API 转发平台,提供 OpenAI 和 Anthropic 两种协议接口,让你可以通过统一的接口访问 GPT、Claude、GLM 等顶级大模型。

我们完全兼容 OpenAI 和 Anthropic 的官方 API 格式,你只需要将 base_url 改为我们的地址,即可无缝切换,无需修改任何代码。

完全兼容 - 无需修改代码,只需更换 base_url
全球可用 - 无地区限制,面向全球客户
按量计费 - 输入输出分开计费,价格透明
缓存优化 - 支持 prompt caching,节省 90% 输入成本

2️⃣ 接口地址

OpenAI 协议接口

兼容 OpenAI API 格式,支持 GPT-5.x、GLM 系列模型。适用于 ChatGPT、GPT-5.4、Codex 等场景。

https://cli.15code.com/v1
💡 使用方式:
• 设置 base_url 为上述地址
• 使用你的 15code API Key 作为 Authorization
• 完全兼容 OpenAI SDK 和工具

Anthropic 协议接口

兼容 Anthropic API 格式,支持 Claude Opus、Sonnet、Haiku 系列模型。适用于 Claude Code、Claude API 等场景。

https://claude.15code.com
💡 使用方式:
• 设置 base_url 为上述地址(不带 /v1)
• 使用 x-api-key 头传递 API Key
• 完全兼容 Anthropic SDK 和 Claude Code

3️⃣ 认证方式

获取 API Key

注册账号后,在 Dashboard 页面即可获取你的 API Key。每个用户可以创建多个 Key,方便管理不同项目。

⚠️ 安全提示:
• API Key 仅显示一次,请妥善保存
• 不要在代码库、公开文档中暴露 Key
• 如怀疑 Key 泄露,立即在 Dashboard 删除并重新创建

OpenAI 协议认证

使用 Authorization Bearer 头传递 API Key:

Authorization: Bearer sk-your-api-key-here

Anthropic 协议认证

使用 x-api-key 头传递 API Key:

x-api-key: sk-your-api-key-here

同时需要设置 anthropic-version 头:

anthropic-version: 2023-06-01

4️⃣ 请求示例

OpenAI 协议 - curl

curl https://cli.15code.com/v1/chat/completions \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.4", "messages": [ {"role": "user", "content": "Hello, how are you?"} ], "max_tokens": 1024, "temperature": 0.7 }'

OpenAI 协议 - Python

from openai import OpenAI client = OpenAI( base_url="https://cli.15code.com/v1", api_key="sk-your-api-key" ) response = client.chat.completions.create( model="gpt-5.4", messages=[{"role": "user", "content": "Hello!"}], max_tokens=1024 ) print(response.choices[0].message.content)

Anthropic 协议 - curl

curl https://claude.15code.com/v1/messages \ -H "x-api-key: sk-your-api-key" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Hello, Claude!"} ] }'

Anthropic 协议 - Python

from anthropic import Anthropic client = Anthropic( base_url="https://claude.15code.com", api_key="sk-your-api-key" ) message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}] ) print(message.content[0].text)

5️⃣ 参数说明

OpenAI 协议参数

参数 类型 必填 默认值 说明
model string 必填 - 模型名称,如 gpt-5.4, glm-5
messages array 必填 - 对话消息数组,包含 role 和 content
max_tokens int 可选 自动 最大输出 tokens 数
temperature float 可选 1 随机性控制 (0-2),越高越随机
top_p float 可选 1 核采样参数 (0-1)
stream boolean 可选 false 是否流式返回
stop string/array 可选 - 停止词,遇到即停止生成

Anthropic 协议参数

参数 类型 必填 默认值 说明
model string 必填 - 模型名称,如 claude-sonnet-4-20250514
max_tokens int 必填 - 最大输出 tokens 数(必填)
messages array 必填 - 对话消息数组
system string 可选 - 系统提示词
temperature float 可选 1 随机性控制 (0-1)
stream boolean 可选 false 是否流式返回

6️⃣ 响应格式

OpenAI 协议响应

{ "id": "chatcmpl-abc123", "object": "chat.completion", "created": 1700000000, "model": "gpt-5.4", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello! How can I help you today?" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 10, "completion_tokens": 20, "total_tokens": 30 } }

Anthropic 协议响应

{ "id": "msg_abc123", "type": "message", "role": "assistant", "model": "claude-sonnet-4-20250514", "content": [ { "type": "text", "text": "Hello! How can I help you?" } ], "stop_reason": "end_turn", "usage": { "input_tokens": 10, "output_tokens": 20 } }

7️⃣ 支持模型

Claude 系列(Anthropic 协议)

claude-opus-4.7
最新旗舰 · 1M context
claude-sonnet-4.6
平衡性能与成本
💡 Claude 模型:
• claude-opus-4.7 / claude-sonnet-4.6
• Opus 4.7 支持 1M context window

GPT 系列(OpenAI 协议)

gpt-5.4
旗舰模型
gpt-5.3-codex
代码专家

GLM 系列(OpenAI 协议)

glm-5.1
增强版 · 长任务专家
glm-5
智谱AI旗舰
💡 GLM 模型价格优势:
• GLM-5: 比官方便宜 40%
• GLM-5.1: 比官方便宜 20%

8️⃣ 错误处理

常见错误码

错误码 说明 解决方案
400 请求参数错误 检查参数格式和必填字段
401 认证失败 检查 API Key 是否正确
403 权限不足 检查账号余额或访问权限
404 模型不存在 检查模型名称是否正确
429 请求过于频繁 降低请求频率,稍后重试
500 服务器错误 稍后重试,或联系客服
503 服务暂不可用 模型负载过高,稍后重试

错误响应格式

{ "error": { "type": "invalid_request_error", "message": "Invalid API key provided", "code": "invalid_api_key" } }

9️⃣ 使用限制

速率限制

每个 API Key 有速率限制,具体取决于你的套餐等级。如果超过限制,会返回 429 错误。

💡 建议:
• 实现指数退避重试机制
• 监控 usage 字段,控制消耗
• 使用流式返回减少请求次数

Token 限制

每个模型有不同的 context window(上下文窗口)限制:

模型 上下文窗口 最大输出
Claude Opus 4.7 1,000,000 tokens 128,000 tokens
Claude Sonnet 4.6 1,000,000 tokens 128,000 tokens
GPT-5.4 128,000 tokens 16,000 tokens
GLM-5 200,000 tokens 65,000 tokens

🔟 最佳实践

1. 使用 Prompt Caching

对于重复使用的系统提示词或上下文,使用 prompt caching 可以节省 90% 的输入成本。

// Anthropic 协议示例 { "model": "claude-sonnet-4-20250514", "messages": [...], "system": [ { "type": "text", "text": "You are a helpful assistant...", "cache_control": {"type": "ephemeral"} } ] }

2. 实现错误重试

对于 429、503 等临时错误,实现指数退避重试机制:

import time def call_with_retry(func, max_retries=3): for i in range(max_retries): try: return func() except Exception as e: if i == max_retries - 1: raise wait_time = 2 ** i # 1, 2, 4 秒 time.sleep(wait_time)

3. 监控 Usage

每次请求返回 usage 字段,记录输入输出 tokens,帮助你监控消耗:

💡 计费公式:
• 费用 = 输入tokens × 输入价格 + 输出tokens × 输出价格
• 详见 定价页面

4. 安全存储 API Key

不要在代码中硬编码 API Key,使用环境变量或配置文件:

# 设置环境变量 export OPENAI_API_KEY="sk-your-key" export ANTHROPIC_API_KEY="sk-your-key" # 代码中使用 api_key = os.environ.get("OPENAI_API_KEY")
⚠️ 安全提示:
• 不要提交包含 API Key 的代码到公开仓库
• 使用 .gitignore 排除配置文件
• 定期更换 API Key