API 文档
概述
kimrel.com 提供一个独立的、兼容 OpenAI 与 Anthropic 的 API 接口,用于访问 Kimi K2 及相关模型。Kimi K2 由 Moonshot AI 开发,kimrel.com 与 Moonshot AI 不存在关联关系,也未获得其认可、背书或赞助。
基础 URL
https://kimrel.com/api
支持的协议
- 基于 HTTPS 的 REST API
- JSON 请求和响应体
- UTF-8 字符编码
- CORS 支持,适用于基于浏览器的应用程序
快速开始
只需三步即可开始使用 kimrel.com API:
- 创建账户并获得 100 个免费积分
- 从控制台生成 API 密钥
- 发送第一个请求(大多数模型每次请求消耗 1 积分,
kimi-k2.5每次请求消耗 2 积分)
示例请求
curl https://kimrel.com/api/v1/chat/completions \
-H "Authorization: Bearer $KIMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2-0905",
"messages": [{"role": "user", "content": "你好"}]
}'
AI 编码工具
kimrel.com 同时提供 OpenAI 兼容(chat completions)与 Claude 兼容(messages)接口,便于将受支持模型接入常见的 AI 编码工具。
模型支持:
kimi-k2、kimi-k2-0905、kimi-k2-thinking、kimi-k2.5与kimi-k2.6这些模型路由均由 kimrel.com 提供。Kimi K2 由 Moonshot AI 开发;kimrel.com 提供的是独立接口,并不隶属于、也未获得 Moonshot AI 的认可、背书或赞助。若您希望使用更强的图像理解、thinking 模式与工具调用,建议优先使用kimi-k2.6;kimi-k2.5仍适合多模态工作流,而kimi-k2更适合快速的 Python/JavaScript 工作流。
Claude Code(推荐)
Claude Code 从 ~/.claude/settings.json 读取配置。将以下 env 配置加入或更新:
{
"env": {
"ANTHROPIC_BASE_URL": "https://kimrel.com/api",
"ANTHROPIC_AUTH_TOKEN": "<KIMREL_API_KEY>",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
"ANTHROPIC_MODEL": "kimi-k2.5",
"ANTHROPIC_SMALL_FAST_MODEL": "kimi-k2",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k2.5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2.5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2"
}
}
保存后重启 Claude Code,请求将转发到 https://kimrel.com/api/v1/messages。
Codex
安装 Codex CLI:
npm i -g @openai/codex
在 ~/.codex/config.toml 中添加 kimrel.com 配置:
[model_providers.kimi-k2]
name = "kimrel.com Chat Completions API"
base_url = "https://kimrel.com/api/v1"
env_key = "KIMREL_API_KEY"
wire_api = "chat"
requires_openai_auth = false
request_max_retries = 4
stream_max_retries = 10
stream_idle_timeout_ms = 300000
[profiles.k2]
model = "kimi-k2"
model_provider = "kimi-k2"
[profiles.k2.5]
model = "kimi-k2.5"
model_provider = "kimi-k2"
设置 API key 并启动 Codex:
export KIMREL_API_KEY="<YOUR_API_KEY>"
codex --profile k2.5
身份认证
API 密钥
使用 API 密钥进行身份认证。在请求头中包含您的 API 密钥:
Authorization: Bearer YOUR_API_KEY
或者对于 Anthropic 兼容的端点:
X-API-Key: YOUR_API_KEY
认证方式
| 方式 | 请求头 | 格式 | 端点 |
|---|---|---|---|
| Bearer Token | Authorization | Bearer YOUR_API_KEY | /v1/chat/completions |
| API Key | X-API-Key | YOUR_API_KEY | /v1/messages |
API 参考
列出模型
列出所有可用于 API 的模型。
列出可用模型
GET /v1/models
返回可用于 API 的模型列表。
响应格式
{
"object": "list",
"data": [
{
"id": "kimi-k2",
"object": "model",
"created": 1735785600,
"owned_by": "moonshot-ai",
"permission": [...],
"root": "kimi-k2",
"parent": null
},
{
"id": "kimi-k2-0905",
"object": "model",
"created": 1735785600,
"owned_by": "moonshot-ai",
"permission": [...],
"root": "kimi-k2-0905",
"parent": null
},
{
"id": "kimi-k2-thinking",
"object": "model",
"created": 1735785600,
"owned_by": "moonshot-ai",
"permission": [...],
"root": "kimi-k2-thinking",
"parent": null
}
]
}
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
object | string | 始终为 list |
data | array | 可用模型列表 |
data[].id | string | API 请求中使用的模型标识符 |
data[].object | string | 始终为 model |
data[].owned_by | string | 拥有该模型的组织 |
聊天补全
聊天补全 API 为对话生成模型响应。此端点与 OpenAI 的 API 格式兼容。
创建补全
POST /v1/chat/completions
为给定的对话生成模型响应。
请求格式
{
"model": "kimi-k2-0905",
"messages": [
{
"role": "system",
"content": "你是一个有帮助的助手。"
},
{
"role": "user",
"content": "解释量子计算"
}
],
"temperature": 0.7,
"max_tokens": 2048,
"top_p": 1.0,
"frequency_penalty": 0,
"presence_penalty": 0,
"stream": false,
"n": 1
}
参数
| 参数 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
model | string | 是 | - | 模型标识符。使用 kimi-k2 |
messages | array | 是 | - | 输入消息。每条消息包含 role 和 content |
temperature | number | 否 | 0.6 | 采样温度,范围 0 到 2。较低的值使输出更确定 |
max_tokens | integer | 否 | 1024 | 生成的最大 token 数。模型最大值为 128000 |
top_p | number | 否 | 1.0 | 核采样阈值。temperature 的替代方案 |
frequency_penalty | number | 否 | 0 | 惩罚重复的 token。范围:-2.0 到 2.0 |
presence_penalty | number | 否 | 0 | 基于出现情况惩罚 token。范围:-2.0 到 2.0 |
stream | boolean | 否 | false | 增量流式传输响应 |
n | integer | 否 | 1 | 生成的补全数量 |
stop | string/array | 否 | null | 停止序列(最多 4 个) |
user | string | 否 | null | 用于跟踪最终用户的唯一标识符 |
消息对象
| 字段 | 类型 | 描述 |
|---|---|---|
role | string | 角色之一:system、user、assistant |
content | string | 消息内容 |
响应格式
{
"id": "chatcmpl-9d4c2f68-5e3a-4b2f-a3c9-7d8e6f5c4b3a",
"object": "chat.completion",
"created": 1709125200,
"model": "kimi-k2-0905",
"system_fingerprint": "fp_a7c4d3e2",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "量子计算利用量子力学现象..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 189,
"total_tokens": 214
}
}
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
id | string | 唯一请求标识符 |
object | string | 对象类型:chat.completion |
created | integer | Unix 时间戳 |
model | string | 使用的模型 |
choices | array | 生成的补全 |
usage | object | Token 使用统计 |
结束原因
| 值 | 描述 |
|---|---|
stop | 消息自然结束或达到停止序列 |
length | 达到最大 token 限制 |
流式传输
当 stream: true 时的服务器发送事件格式:
data: {"id":"chatcmpl-...","choices":[{"delta":{"content":"你好"},"index":0}]}
data: {"id":"chatcmpl-...","choices":[{"delta":{"content":"世界"},"index":0}]}
data: [DONE]
消息
消息 API 提供 Anthropic 兼容的消息生成。
创建消息
POST /v1/messages
使用消息格式创建模型响应。
请求格式
{
"model": "kimi-k2-0905",
"messages": [
{
"role": "user",
"content": "法国的首都是哪里?"
}
],
"max_tokens": 1024,
"system": "你是一个知识渊博的地理助手。",
"temperature": 0.7,
"top_p": 1.0,
"stop_sequences": ["\n\nHuman:"]
}
参数
| 参数 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
model | string | 是 | - | 模型标识符 |
messages | array | 是 | - | 对话消息(仅限 user/assistant) |
max_tokens | integer | 是 | - | 生成的最大 token 数 |
system | string | 否 | null | 用于行为指导的系统提示 |
temperature | number | 否 | 0.6 | 采样温度 (0-1) |
top_p | number | 否 | 1.0 | 核采样阈值 |
stop_sequences | array | 否 | null | 停止生成序列(最多 4 个) |
stream | boolean | 否 | false | 启用流式响应 |
metadata | object | 否 | null | 请求元数据 |
响应格式
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "法国的首都是巴黎。"
}
],
"model": "kimi-k2-0905",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 15,
"output_tokens": 9
}
}
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
id | string | 唯一消息标识符 |
type | string | 对象类型:message |
role | string | 始终为 assistant |
content | array | 消息内容块 |
model | string | 使用的模型 |
stop_reason | string | 生成停止的原因 |
usage | object | Token 使用情况 |
系统提示
在消息 API 中,系统提示是单独指定的:
{
"system": "你是 Claude,Anthropic 创建的 AI 助手。",
"messages": [
{"role": "user", "content": "你好"}
],
"max_tokens": 1024
}
模型
kimrel.com 对下列受支持模型路由暴露统一的模型 ID。Kimi K2 系列模型由 Moonshot AI 开发;kimrel.com 提供的是独立接入层,而非模型开发方的官方产品品牌。
可用模型
| 模型 ID | 上下文窗口 | 描述 |
|---|---|---|
kimi-k2 | 128,000 tokens | 通用聊天补全的主要模型 |
kimi-k2-0905 | 256,000 tokens | 具有扩展上下文窗口的增强模型 |
kimi-k2-thinking | 256,000 tokens | 专门用于深度推理、数学证明、研究分析和多步骤问题求解的模型 |
kimi-k2.5 | 256,000 tokens | 原生多模态智能体 MoE 模型(总参数 1T / 激活 32B),强调工具使用与推理能力 |
kimi-k2.6 | 256,000 tokens | K2.6 最新路由,适合文本 + 图像输入、thinking 模式与工具调用工作流 |
模型选择
根据您的使用场景选择合适的模型:
kimi-k2:适用于通用对话AI、内容生成和标准任务kimi-k2-0905:适用于需要更长上下文(最多256K tokens)的任务,例如分析整个文档或长对话kimi-k2-thinking:针对复杂推理任务优化:- 数学证明和竞赛级数学问题
- 研究分析和文献综述
- 需要逻辑推理的多步骤问题求解
- 高级工具编排(200-300次连续工具调用)
- 具有复杂UI需求的前端开发
- 需要自主导航的智能搜索任务
kimi-k2.5:原生多模态、智能体模型,强调工具使用与推理能力,支持 256K 上下文kimi-k2.6:推荐在 kimrel.com 上用于最新的 K2.6 工作流,支持文本 + 图像理解、thinking 模式与工具调用。本服务当前支持图像输入,但不支持视频输入。
Kimi-K2.5 关键规格:MoE 架构(总参数 1T / 激活 32B)、256K 上下文,以及 MoonViT 视觉编码器。
Thinking模型会逐步展示其推理过程,使其非常适合教育场景和需要透明度的应用程序。
Kimi K2.6 快速上手
kimi-k2.6 是 kimrel.com 当前提供的最新 K2.6 路由,适合需要更强推理、图像理解与工具调用能力的场景。对于当前服务而言,K2.6 支持 256K 上下文、文本 + 图像输入、工具调用,以及 OpenAI 兼容 /v1/chat/completions 端点上的 thinking 模式。需要特别说明的是:本服务当前不支持视频输入。
在 kimi-k2.6 路由下,您既可以直接提交 data:image/...;base64,... 形式的图片,也可以提交远程 http(s) 图片 URL。kimrel.com 会在服务端拉取图片、完成安全校验与大小校验,并在转发上游前将其转换为 base64。这意味着您可以直接复用现有截图链接或图像处理流水线,而无需在客户端先手动完成编码。
OpenAI 兼容:K2.6 + thinking
{
"model": "kimi-k2.6",
"messages": [
{
"role": "user",
"content": "请先充分思考,再总结最佳迁移方案。"
}
],
"thinking": { "type": "enabled" },
"max_completion_tokens": 2048
}
OpenAI 兼容:K2.6 图像理解
{
"model": "kimi-k2.6",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/demo-ui.png"
}
},
{
"type": "text",
"text": "请描述图片内容,并列出主要的界面元素。"
}
]
}
],
"max_completion_tokens": 2048
}
对于
kimi-k2.6,kimrel.com 支持远程http(s)图片 URL,并会在服务端自动拉取图片并转为 base64 后再转发上游。如果您已经有data:image/...;base64,...,也可以直接传入。视频 URL 会被本服务拒绝。
Kimrel 当前图片输入限制:
- 原始图片最大 6MB
- 转换为 base64 后的编码图片负载最大 8MB
- 支持 PNG、JPEG/JPG、WEBP、GIF
- 远程图片 URL 必须为
http(s),并由服务端抓取后再转发- 不支持视频输入
Anthropic 兼容:K2.6 图像输入
{
"model": "kimi-k2.6",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/demo-ui.png"
}
},
{
"type": "text",
"text": "请描述图片内容。"
}
]
}
]
}
Anthropic 兼容 /v1/messages 仍继续支持已有的 base64 图片块;远程图片 URL 自动抓取当前仅对 kimi-k2.6 开放,与服务端现有实现保持一致。
K2.6 工具调用示例
{
"model": "kimi-k2.6",
"messages": [
{
"role": "user",
"content": "请调用天气工具,对比北京与上海的天气。"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取城市当前天气",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}
}
],
"tool_choice": "auto",
"max_completion_tokens": 1024
}
请求限制
速率限制
根据积分余额对每个 API 密钥应用速率限制:
| 积分余额 | 每分钟请求数 | 每小时请求数 | 每天请求数 |
|---|---|---|---|
| 1-100 | 20 | 600 | 5,000 |
| 101-1,000 | 60 | 2,000 | 20,000 |
| 1,001-10,000 | 200 | 6,000 | 50,000 |
| 10,000+ | 500 | 15,000 | 100,000 |
速率限制响应头:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1709125800
Token 限制
| 限制类型 | 值 |
|---|---|
| 最大输入 tokens | 128,000 |
| 最大输出 tokens | 8,192 |
| 最大总 tokens | 128,000 |
超时设置
| 超时类型 | 时长 |
|---|---|
| 连接超时 | 30 秒 |
| 读取超时 | 600 秒 |
| 流式超时 | 600 秒 |
错误代码
HTTP 状态码
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 400 | 错误请求 - 无效参数 |
| 401 | 未授权 - 无效或缺失 API 密钥 |
| 403 | 禁止 - 积分或权限不足 |
| 404 | 未找到 - 无效端点 |
| 429 | 请求过多 - 超出速率限制 |
| 500 | 内部服务器错误 |
| 503 | 服务不可用 |
错误类型
OpenAI 格式错误
{
"error": {
"message": "提供的 API 密钥无效",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
| 错误代码 | 类型 | 描述 |
|---|---|---|
invalid_api_key | invalid_request_error | API 密钥无效或格式错误 |
insufficient_credits | insufficient_quota | 积分余额不足 |
rate_limit_exceeded | rate_limit_error | 请求过多 |
invalid_request | invalid_request_error | 请求验证失败 |
model_not_found | invalid_request_error | 指定的模型不存在 |
context_length_exceeded | invalid_request_error | 输入超出上下文窗口 |
encoded_image_too_large | invalid_request_error | 编码后的图片负载超过服务端可转发限制 |
Anthropic 格式错误
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "无效的 API 密钥"
}
}
| 错误类型 | 描述 |
|---|---|
authentication_error | 身份验证失败 |
invalid_request_error | 请求验证失败 |
rate_limit_error | 超出速率限制 |
api_error | 服务器端错误 |
错误处理
使用带抖动的指数退避实现重试:
import time
import random
def retry_with_backoff(
func,
max_retries=3,
base_delay=1,
max_delay=60
):
for attempt in range(max_retries):
try:
return func()
except RateLimitError:
if attempt == max_retries - 1:
raise
delay = min(
base_delay * (2 ** attempt) + random.uniform(0, 1),
max_delay
)
time.sleep(delay)
客户端库
Python
安装
pip install openai
# 或
pip install anthropic
OpenAI 客户端
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://kimrel.com/api/v1"
)
# 列出可用模型
models = client.models.list()
for model in models.data:
print(f"模型 ID: {model.id}")
# 创建聊天补全
response = client.chat.completions.create(
model="kimi-k2-0905",
messages=[
{"role": "user", "content": "你好"}
]
)
Anthropic 客户端
from anthropic import Anthropic
client = Anthropic(
api_key="YOUR_API_KEY",
base_url="https://kimrel.com/api/v1"
)
response = client.messages.create(
model="kimi-k2-0905",
messages=[
{"role": "user", "content": "你好"}
],
max_tokens=1024
)
Node.js
安装
npm install openai
# 或
npm install @anthropic-ai/sdk
OpenAI 客户端
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.KIMI_API_KEY,
baseURL: 'https://kimrel.com/api/v1',
});
// 列出可用模型
const models = await openai.models.list();
for (const model of models.data) {
console.log(`模型 ID: ${model.id}`);
}
// 创建聊天补全
const response = await openai.chat.completions.create({
model: 'kimi-k2-0905',
messages: [{ role: 'user', content: '你好' }],
});
Anthropic 客户端
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: process.env.KIMI_API_KEY,
baseURL: 'https://kimrel.com/api/v1',
});
const response = await anthropic.messages.create({
model: 'kimi-k2-0905',
messages: [{ role: 'user', content: '你好' }],
max_tokens: 1024,
});
Go
安装
go get github.com/sashabaranov/go-openai
示例
package main
import (
"context"
"fmt"
openai "github.com/sashabaranov/go-openai"
)
func main() {
config := openai.DefaultConfig("YOUR_API_KEY")
config.BaseURL = "https://kimrel.com/api/v1"
client := openai.NewClientWithConfig(config)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "kimi-k2-0905",
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleUser,
Content: "你好",
},
},
},
)
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}
REST API
无需客户端库的直接 HTTP 请求:
cURL
curl -X POST https://kimrel.com/api/v1/chat/completions \
-H "Authorization: Bearer $KIMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2-0905",
"messages": [
{"role": "user", "content": "你好"}
]
}'
Python (requests)
import requests
response = requests.post(
"https://kimrel.com/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
},
json={
"model": "kimi-k2-0905",
"messages": [{"role": "user", "content": "你好"}]
}
)
Node.js (fetch)
const response = await fetch('https://kimrel.com/api/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'kimi-k2-0905',
messages: [{ role: 'user', content: '你好' }],
}),
});
计费
积分系统
API 使用通过积分系统计费:
- 大多数模型:每次 API 请求消耗 1 积分
kimi-k2.5:每次 API 请求消耗 2 积分kimi-k2.6:每次 API 请求消耗 3 积分- 成功完成时扣除积分
- 失败的请求(4xx 错误)不收费
- 服务器错误(5xx)不收费
- 新用户注册时获得 100 个免费积分
- 邀请奖励:
- 有人使用您的邀请码注册时获得 50 积分
- 被邀请用户首次付费时获得 500 积分
积分套餐
| 套餐 | 积分数 | 价格 | 单价 | 有效期 |
|---|---|---|---|---|
| 入门版 | 500 | $4.99 | $0.0099 | 永不过期 |
| 标准版 | 5,000 | $29.99 | $0.0060 | 1 个月 |
| 高级版 | 20,000 | $59.99 | $0.0030 | 1 个月 |
| 企业版 | 自定义 | 联系销售 | 自定义 | 自定义 |
用量追踪
通过以下方式监控您的使用情况:
- 响应头:
X-Credits-Remaining: 4523 - 控制台:在我的积分查看实时使用统计
- API 端点:
GET /api/user/credits
使用数据包括:
- 总消耗积分
- 剩余积分
- 按天/小时的使用情况
- 每个请求的平均 token 数
迁移指南
从 OpenAI
从 OpenAI API 迁移只需最少的更改:
-
更新基础 URL:
# 从 client = OpenAI(api_key="sk-...") # 到 client = OpenAI( api_key="sk-...", base_url="https://kimrel.com/api/v1" ) -
更新模型名称:
# 从 model="gpt-4" # 到 model="kimi-k2-0905" -
无需其他更改 - API 完全兼容
从 Anthropic
从 Anthropic API 迁移:
-
更新基础 URL:
# 从 client = Anthropic(api_key="sk-ant-...") # 到 client = Anthropic( api_key="sk-...", base_url="https://kimrel.com/api/v1" ) -
更新身份验证:
- 从 Kimi K2 控制台生成 API 密钥
- 替换 Anthropic API 密钥
-
模型兼容性:
- 支持
Kimi K2
- 支持
更新日志
2025-11-10
- 添加 kimi-k2-thinking 模型
- 专门用于复杂推理任务的特化模型
- 逐步展示推理过程
- 支持数学证明、研究分析和多步骤问题求解
- 高级工具编排能力(200-300次连续工具调用)
2025-09-05
- 256K 上下文窗口支持
- 支持 kimi-k2-0905 模型
2025-01-30
- 添加 Anthropic Messages API 兼容性
- 引入 X-API-Key 身份验证方法
- 增强错误响应格式
2025-01-15
- 初始 API 发布
- OpenAI Chat Completions 兼容性
- 128K 上下文窗口支持
- 基于积分的计费系统