接入文档
MaxMind API 使用与 OpenAI 兼容的 API 格式。通过修改配置,您可以使用 OpenAI SDK 来访问 MaxMind API,或使用任何与 OpenAI API 兼容的软件。
| 参数 | 值 |
| --- | --- |
| Base URL (OpenAI) | `https://api.maxmind.online/v1` |
| api_key | 在控制台申请一个 [API Key](https://maxmind.online/) |
| model | `maxmind-2.1-flash-0924`(1)
`maxmind-2.0-pro-preview-0925`(2) |
(1) MaxMind 2.1 Flash —— 最新旗舰模型。
(2) MaxMind 2.0 Pro-Preview —— 旗舰级推理模型。
模型 ID 与显示名称不同,调用时填模型 ID。用 `GET /models` 可随时拿到最新清单。
## 接入 Agent 工具
MaxMind 可接入多种主流 AI Agent 与编程助手工具。如果你使用 Claude Code、GitHub Copilot、OpenCode、RikkaHub 等工具,可以直接将 MaxMind 作为后端模型,无需编写代码即可开始使用。
## 鉴权
每个请求都必须在 HTTP 头里带上你的 API Key:
```http
Authorization: Bearer sk-你的钥匙
```
- 钥匙等同密码,不要写进前端代码、公开仓库或截图。
- 钥匙可以随时在控制台删除,删除后立即生效。怀疑泄露就立刻删掉重建,成本为零。
- 一把钥匙可以配独立的额度上限与每分钟请求数(RPM),与账号共享同一份总额度。
- 不要把 Key 放在浏览器端(fetch 直连)、App 安装包或任何用户能看到的地方。正确做法是自己的后端持有 Key,浏览器只调用你自己的后端。
## 调用对话 API
在创建 API Key 之后,你可以使用以下样例脚本,通过 OpenAI API 格式来访问 MaxMind 模型。样例为非流式输出,您可以将 stream 设置为 true 来使用流式输出。
#### curl
```bash
curl https://api.maxmind.online/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${MAXMIND_API_KEY}" \
-d '{
"model": "maxmind-2.1-flash-0924",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"thinking": {"type": "enabled"},
"reasoning_effort": "high",
"stream": false
}'
```
#### python
```python
# Please install OpenAI SDK first: `pip3 install openai`
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('MAXMIND_API_KEY'),
base_url="https://api.maxmind.online/v1")
response = client.chat.completions.create(
model="maxmind-2.1-flash-0924",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False,
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}
)
print(response.choices[0].message.content)
```
#### nodejs
```javascript
// Please install OpenAI SDK first: `npm install openai`
import OpenAI from "openai";
const openai = new OpenAI({
baseURL: 'https://api.maxmind.online/v1',
apiKey: process.env.MAXMIND_API_KEY,
});
async function main() {
const completion = await openai.chat.completions.create({
messages: [{ role: "system", content: "You are a helpful assistant." }],
model: "maxmind-2.1-flash-0924",
thinking: {"type": "enabled"},
reasoning_effort: "high",
stream: false,
});
console.log(completion.choices[0].message.content);
}
main();
```
## 推理模式(思考)
有些模型在正式回答前会先「想一遍」。这段思考会通过流式的 `delta.reasoning_content`(非流式则是 `message.reasoning_content`)单独下发,和正文分开,方便你决定是显示还是折叠。
- 不是每个模型都支持思考;本站已按模型做好映射,你只需要传 `reasoning_effort`,具体参数由本站自动处理。
- 想少想点或不想:传 `reasoning_effort: "minimal"` 或 `"low"`。
- 思考过程计入输出用量,开启思考会消耗更多额度。
## 模型列表
`GET /models` 返回当前可用的模型,向下兼容 OpenAI 的 `object: "list"` 结构。
```bash
curl https://api.maxmind.online/v1/models \
-H "Authorization: Bearer ${MAXMIND_API_KEY}"
```
| 模型 ID | 名称 | 思考 |
| --- | --- | --- |
| `maxmind-2.1-flash-0924` | MaxMind 2.1 Flash | 可调档位 |
| `maxmind-2.0-pro-preview-0925` | MaxMind 2.0 Pro-Preview | 可调档位 |
以接口返回的清单为准:某个模型不在清单里,就是当前不可用。
## 计费与额度
- 计费口径:按实际用量(输入 + 输出,含思考输出)实时折算成额度扣减,不同模型的折算比例不同。具体比例与单价为内部设置,不在文档中公开。
- 实时扣减:边生成边记账。生成过程中打开控制台「用量」页,能看到剩余额度百分比在一格格降,不用等回答结束。
- 失败不白扣:请求在产出任何内容前就失败(服务繁忙 / 超时 / 连不上),这条预记会退掉,不扣你的额度。
- 账号额度同时受三个窗口约束,任一触顶即暂停,等窗口滚动后自动恢复:5 小时(滚动窗口,拦短时间大批量调用)、日(自然日,按你所在时区)、周(滚动一周,拦长期慢性高消耗)。
- 请求前超限:直接拒绝,返回 429 与结构化额度错误(含窗口名与重置时间),不会产生任何消耗。
- 生成中途越线:服务立刻停止输出,已产出的部分按实际用量结算,紧跟一条 `insufficient_quota` 错误块。不会悄悄继续烧。
## 错误处理
出错时返回标准错误结构,并带上对应的 HTTP 状态码:
```json
{
"error": {
"message": "API Key 无效或已被删除",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
```
| 状态码 | 含义 | 怎么处理 |
| --- | --- | --- |
| 400 | 请求体不合法:缺 model / messages,或参数类型不对 | 按 error.message 修正请求 |
| 401 | Key 无效、已被删除 | 检查 Authorization 头,或到控制台重建钥匙 |
| 403 | 账号被停用 / 模型未授权 / 维护中 | 联系管理员 |
| 404 | 模型不存在,或模型当前不可用 | 用 GET /models 拿当前可用的模型列表 |
| 429 | 触发速率限制或额度耗尽 | 指数退避重试;额度耗尽请到控制台查看用量 |
| 500 | 服务端异常 | 可安全重试;持续失败请联系管理员 |
| 502 / 504 | 服务超时或不可达 | 重试;若持续,换一个模型 |
流式中途额度越线时,输出立即停止,服务端会在同一个 SSE 流里补发一个错误块再收尾,客户端应检查 `error.code == "insufficient_quota"` 并停止重试直到额度重置。
## 限流与并发
- 速率限制:按 IP、按账号、按 Key 三个维度分别限流,超限返回 429。
- 并发限制:同时进行中的请求数有上限,超出会排队或拒绝。
- 流式输出节奏:为保护服务链路,下行速度会被平滑;第一个 token 永远立即返回。
- 遇到 429 时请用指数退避重试:第一次等 1 秒,之后每次翻倍并加随机抖动,最多重试 5 次。不要用固定间隔狂重试。
## 客户端接入
常见的桌面 / 网页客户端都按「OpenAI 兼容自定义供应商」接入,三项配置:
| 配置项 | 填什么 |
| --- | --- |
| API 地址 / Base URL | `https://api.maxmind.online/v1`(已含 /v1,不要再拼路径) |
| API Key | 你的 sk- 开头钥匙 |
| 模型 / Model | 本站模型 ID(见模型列表),部分客户端要手动添加 |
- Cherry Studio:设置 → 模型服务 → 添加「OpenAI 兼容」供应商,填上面三项后点「管理」可自动拉取模型列表。
- ChatBox:设置 → 模型 → 「使用自定义 API Key」,模式选 OpenAI 兼容,模型名手动填本站模型 ID。
- LobeChat / 其它:凡是支持「自定义 OpenAI Base URL」的都一样:地址 + 钥匙 + 模型 ID。
客户端里如果模型列表拉取失败,多半是 Base URL 多了或少了 /v1。本站的 Base URL 已经包含 /v1。
## 常见问题
- 调用返回 404,说模型不存在?三种可能:① 模型名填错了,要填模型 ID 不是显示名称,先用 `GET /models` 拿一份最新列表;② 这个模型当前不可用;③ 模型被停用了。
- SDK 报 Connection error 或证书错误?确认 base_url 用的是 https:// 且以本站地址结尾、不带 /chat/completions。本站 OpenAI 的 /v1 已经包含在 Base URL 里。
- 回答是流式的,但我想等完整结果?不要传 stream(或传 false),服务端会一次性返回完整 JSON。
- 思考内容能单独关掉吗?能,传 `reasoning_effort: "minimal"` 或 `"low"`。
- 为什么同样的问题,字数一样但扣费不同?扣费按各模型的实际用量折算,不同模型的折算比例不同,是否开启思考也会影响。
- 回答生成到一半突然停了,还收到「额度已用完」?这是额度实时闸门在工作:生成过程中你的消耗越过了某个窗口的上限,服务立即停止生成避免继续扣额度,已产出的部分照实结算。等窗口重置(错误信息里有具体时间),或升级套餐提高额度。
- 用量页的百分比在跳动,正常吗?正常,而且是特性 —— 本站边生成边计费,剩余百分比实时反映当前这次请求已经消耗了多少,回答结束后会按真实用量精确结算一次。
- 换了模型要不要改代码?只改请求里的 model 字段即可,协议完全一致。