Miloapi 使用文档Miloapi 使用文档
🚀 快速开始
🌐 Miloapi 官网
💬 客服微信 Yeesleeve
🚀 快速开始
🌐 Miloapi 官网
💬 客服微信 Yeesleeve
  • 快速开始

    • 快速开始
  • 客户端配置

    • Claude Code CLI
    • OpenAI Codex CLI
    • Gemini CLI
    • Antigravity CLI / IDE
    • CC-Switch · 多 endpoint 切换工具
    • Cherry Studio
    • Cursor
    • OpenCode
    • OpenClaw · 多渠道 AI 机器人
    • Claude Desktop
    • Open WebUI
  • AI 工作台

    • AI 工作台
  • 编程调用

    • API 直接调用
  • 计费与帮助

    • 余额与计费
    • 常见问题

API 直接调用

不用任何客户端,直接拿 curl / Python / Node.js 调。

端点速查

协议端点用什么客户端
POST /v1/chat/completionsOpenAI Chat CompletionsOpenAI SDK / Cursor / Cherry / Open WebUI / Codex
POST /v1/messagesAnthropic MessagesAnthropic SDK / Claude Code / Claude Desktop
POST /v1/images/generationsOpenAI Images生图客户端
POST /v1/images/editsOpenAI Images Edit图生图客户端
POST /v1/embeddingsOpenAI Embeddings向量数据库
POST /v1/responsesOpenAI Responses新版 Codex CLI
GET /v1/models列出可用模型各客户端的「检查」按钮
POST /v1beta/models/{model}:generateContentGoogle Gemini NativeGemini CLI

1. curl

1.1 OpenAI 兼容协议(对话)

curl https://www.miloapi.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "你好"}]
  }'

1.2 Anthropic 原生协议(对话)

curl https://www.miloapi.com/v1/messages \
  -H "x-api-key: sk-你的claude-max-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "你好"}]
  }'

1.3 生图

curl https://www.miloapi.com/v1/images/generations \
  -H "Authorization: Bearer sk-你的gpt-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只橙色的猫坐在窗台上,水彩风格",
    "n": 1,
    "size": "1024x1024"
  }'

⚠️ 生图只接受 gpt-image-1 / gpt-image-2 这种型号,不接受 dall-e-2 / dall-e-3。

1.4 列出可用模型

curl https://www.miloapi.com/v1/models \
  -H "Authorization: Bearer sk-你的key"

2. Python

2.1 OpenAI SDK

from openai import OpenAI

client = OpenAI(
    base_url="https://www.miloapi.com/v1",
    api_key="sk-你的key",
)

resp = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

2.2 Anthropic SDK

from anthropic import Anthropic

client = Anthropic(
    base_url="https://www.miloapi.com",
    api_key="sk-你的claude-max-key",
)

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

2.3 流式响应

from openai import OpenAI

client = OpenAI(base_url="https://www.miloapi.com/v1", api_key="sk-你的key")

stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "讲个笑话"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

2.4 生图

from openai import OpenAI
import base64

client = OpenAI(base_url="https://www.miloapi.com/v1", api_key="sk-你的gpt-key")

resp = client.images.generate(
    model="gpt-image-2",
    prompt="a cute cat in watercolor style",
    n=1,
    size="1024x1024",
)

# 保存 base64 图片到文件
b64 = resp.data[0].b64_json
with open("cat.png", "wb") as f:
    f.write(base64.b64decode(b64))

3. Node.js

3.1 OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://www.miloapi.com/v1",
  apiKey: "sk-你的key",
});

const resp = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);

3.2 Anthropic SDK

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://www.miloapi.com",
  apiKey: "sk-你的claude-max-key",
});

const msg = await client.messages.create({
  model: "claude-opus-4-7",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好" }],
});
console.log(msg.content[0].text);

3.3 流式响应

const stream = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "讲个笑话" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

4. 模型映射表

某些客户端硬编码了旧模型名,Miloapi 自动映射到当前可用版本:

客户端填的实际路由到仅在
gpt-4gpt-5.4GPT 池
gpt-4ogpt-5.5GPT 池
gpt-4-turbogpt-5.4GPT 池
claude-3-5-sonnetclaude-sonnet-4-6Claude-MAX 池
claude-3-opusclaude-opus-4-7Claude-MAX 池
claude-3-haikuclaude-sonnet-4-6Claude-MAX 池
gemini-progemini-3.1-pro-previewgemini 池
gemini-1.5-progemini-3.1-pro-previewgemini 池
gemini-1.5-flashgemini-2.5-flashgemini 池
dall-e-3不支持改成 gpt-image-2
dall-e-2不支持改成 gpt-image-2

完整可调模型列表见 API 文档页面。


5. 错误码

HTTP含义处理
200成功—
401Key 无效 / Key 已删 / 分组不对检查 Key,见 FAQ
403余额不足 / IP 不在白名单充值 / 改白名单
404模型不在当前分组换模型或换 Key 的分组
429限流等几秒重试,见 FAQ
500网关内部错误联系客服
502上游临时不可用等几秒重试,网关会自动 failover

每个错误返回都带 error.message 字段,通常能直接看明白原因。