API 文档

同时兼容 OpenAI Chat Completions 与 Anthropic Messages。把节点地址指向控制台显示的用户专属节点。

快速开始

把 SDK 的 base_url 换成 https://<node>.quark.ink/v1,其中 <node> 是控制台显示的用户专属节点。api_key 换成在控制台创建的 qk_****,一行改动即可接入已授权模型。

quickstart.py
from openai import OpenAI

client = OpenAI(
    base_url="https://<node>.quark.ink/v1",  # <node> 在控制台查看
    api_key="qk_****",
)

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

认证

OpenAI 请求在 Authorization 头携带 Bearer qk_****;Anthropic 请求可使用 x-api-key: qk_****,也兼容 Bearer。Key 在控制台自助创建,数量不限;完整密钥仅创建时展示一次,此后列表只显示前缀等元数据。

terminal
curl https://<node>.quark.ink/v1/models \
  -H "Authorization: Bearer qk_****"

每个 Key 只能调用管理员配置的模型;未授权模型返回 404,非法请求头返回 403。

Chat Completions

POST /v1/chat/completions

请求与响应字段与 OpenAI 协议一致,现有 SDK 与工具链零改造。

request.json
{
  "model": "glm-5.3",
  "messages": [
    {"role": "system", "content": "回答保持简短。"},
    {"role": "user", "content": "你好,Quark"}
  ],
  "temperature": 0.7,
  "max_tokens": 1024
}
response.json
{
  "id": "202607231720598de33176b54f0a0527",
  "object": "chat.completion",
  "created": 1784827259,
  "model": "glm-5.3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好,这里是 Quark。",
        "reasoning_content": "用户希望得到简短问候。"
      },
      "finish_reason": "stop"
    }
  ],
  "request_id": "202607231720598de33176b54f0a0527",
  "usage": {
    "prompt_tokens": 18,
    "completion_tokens": 18,
    "total_tokens": 36,
    "prompt_tokens_details": {
      "cached_tokens": 0
    }
  }
}
参数类型必填说明
modelstring模型名,见下方模型列表
messagesarray对话消息,role 支持 system/user/assistant;content 可为文本,或含 text/image_url/video_url 的对象数组
streamboolean默认 false,开启后以 SSE 逐块返回
temperaturenumber采样温度 0–2,默认 1
max_tokensinteger生成上限,缺省由模型决定

kimi-k3 可通过 Chat Completions 发送 video_url 视频块,url 必须是 data:video/mp4;base64,... 这类内联数据。不支持公网 HTTP 或 HTTPS 地址。单请求体上限 50 MiB;Anthropic Messages 不接受视频。

video.json
{
  "model": "kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "描述这段视频"},
        {"type": "video_url", "video_url": {"url": "data:video/mp4;base64,..."}}
      ]
    }
  ]
}

Anthropic Messages

POST /v1/messages

Anthropic Messages 兼容接口使用 POST /v1/messages。请求体遵循 Anthropic 格式,使用顶层 systemmax_tokensmessages 字段;可直接接入 Claude Code 或 Anthropic SDK。该协议不接受视频输入,视频请走 Chat Completions 的 video_url

messages.sh
curl https://<node>.quark.ink/v1/messages \
  -H "x-api-key: qk_****" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5.3",
    "max_tokens": 1024,
    "system": "回答保持简短。",
    "messages": [{"role": "user", "content": "你好,Quark"}]
  }'

流式

请求体加 "stream": true,响应转为 SSE,每块一个 chunk,最后以 data: [DONE] 收尾。

event-stream
data: {"id":"chatcmpl-9f2a1c","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}

data: {"id":"chatcmpl-9f2a1c","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"你好"}}]}

data: {"id":"chatcmpl-9f2a1c","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":",这里是 Quark。"}}]}

data: {"id":"chatcmpl-9f2a1c","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

错误码

OpenAI 请求返回 OpenAI 错误格式;Anthropic 请求返回 Anthropic 错误格式,均包含可用于定位问题的错误类型与说明。

状态码含义处理建议
401无效 Key检查 Key 拼写与撤销状态,必要时在控制台重新创建
403请求被拒绝移除非法请求头,或联系管理员调整该 Key 的权限
404模型未授权检查模型名,或联系管理员为该 Key 配置模型
429触发限流按 Retry-After 退避重试,或升级套餐
500请求处理异常稍后重试,系统会自动处理请求
503服务暂不可用服务繁忙,稍候再试或临时切换模型

模型列表

单位人民币/百万 tokens,牌价变动同步生效。

模型厂商上下文输入 · ¥/1M输出 · ¥/1M
glm-5.3-flashZhipu1M¥0.8¥2.8
glm-5.3Zhipu1M¥8¥28
glm-5.3-fastZhipu1M¥12¥42
glm-5.2Zhipu1M¥8¥28
glm-5.2-fastZhipu1M¥12¥42
glm-5.1Zhipu200K¥8¥28
glm-5Zhipu200K¥6¥22
deepseek-v4-proDeepSeek1M¥4.5¥13.5
deepseek-v4-flashDeepSeek1M¥1.5¥4.5
kimi-k3Moonshot1M¥20¥100
kimi-k3-fastMoonshot1M¥30¥150
kimi-k2.7-codeMoonshot256K¥6.5¥27
kimi-k2.5Moonshot256K¥4¥21
kimi-k2.6Moonshot256K¥6.5¥27