Skip to main content
POST
/
messages
Create Anthropic message
curl --request POST \
  --url https://api-direct.dimilinks.com/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "content": "<string>"
    }
  ],
  "system": "<string>",
  "temperature": 123,
  "top_p": 123,
  "top_k": 123,
  "stop_sequences": [
    "<string>"
  ],
  "stream": false,
  "tools": [
    {}
  ],
  "tool_choice": {},
  "metadata": {},
  "thinking": {}
}
'
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [
    {
      "type": "text",
      "text": "<string>"
    }
  ],
  "stop_reason": "<string>",
  "stop_sequence": "<string>",
  "usage": {
    "input_tokens": 123,
    "output_tokens": 123
  }
}
如果你已经在用 Anthropic 官方 SDK,或想使用 Claude 原生的 system prompt、Tool Use、Prompt Caching 等能力,建议直接调用 /v1/messages。它与 Anthropic 官方协议一致。
Anthropic 原生协议走独立域名 api-direct.dimilinks.com,与 OpenAI 兼容入口的 dimilinks.com/v1 不是同一个 base URL,密钥共用一把。

请求地址

POST https://api-direct.dimilinks.com/v1/messages
Content-Type: application/json
Authorization: Bearer <DIMILINKS_API_KEY>
anthropic-version: 2023-06-01
anthropic-version 头建议显式带上,与 Anthropic 官方文档保持一致;不带也可用,会按服务端默认版本解析。

简单示例

curl "https://api-direct.dimilinks.com/v1/messages" \
  -H "Authorization: Bearer $DIMILINKS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "你是一位简洁的中文助手。",
    "messages": [
      {"role": "user", "content": "用一句话解释什么是冥王星。"}
    ]
  }'
返回(节选):
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [
    { "type": "text", "text": "冥王星是太阳系外缘的一颗矮行星。" }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 32,
    "output_tokens": 24
  }
}

流式输出

加入 "stream": true,服务端会按 Anthropic 原生协议依次推回 message_start / content_block_start / content_block_delta / content_block_stop / message_delta / message_stop 事件。
curl "https://api-direct.dimilinks.com/v1/messages" \
  -H "Authorization: Bearer $DIMILINKS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -N \
  -d '{
    "model": "claude-opus-4-7",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一首关于雨夜的四行小诗"}
    ]
  }'

参数

参数类型必填说明
modelstringClaude 模型 ID,例如 claude-opus-4-7claude-sonnet-4-6claude-haiku-4-5-20251001,及对应 -thinking 变体。
max_tokensinteger单次输出 token 上限。
messagesarray消息数组,role 支持 user / assistantcontent 支持字符串或 [{type:"text",...}] 内容块。
systemstring | arraysystem prompt。可传字符串或 [{type:"text",...}] 数组。
temperaturenumber采样温度,0–1。
top_pnumber核采样概率,0–1。
top_kintegertop-k 采样。
stop_sequencesstring[]命中即停止生成。
streambooleantrue 走 SSE 流式输出。
toolsarrayAnthropic 原生 Tool Use 定义。
tool_choiceobject控制是否强制使用某个工具。
metadataobject终端用户标识等元数据。
thinkingobject启用思考模式,例如 { "type": "enabled", "budget_tokens": 8192 },需配合 *-thinking 模型。

用 Anthropic SDK 调用

Python:
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-...",
    base_url="https://api-direct.dimilinks.com/",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}],
)

print(message.content[0].text)
Node.js:
import Anthropic from '@anthropic-ai/sdk'

const client = new Anthropic({
  apiKey: process.env.DIMILINKS_API_KEY,
  baseURL: 'https://api-direct.dimilinks.com/',
})

const message = await client.messages.create({
  model: 'claude-opus-4-7',
  max_tokens: 1024,
  messages: [{ role: 'user', content: '你好' }],
})
Anthropic SDK 的 base_url 指到 https://api-direct.dimilinks.com/ 即可;SDK 内部会自动拼接 /v1/messages

Tool Use

curl "https://api-direct.dimilinks.com/v1/messages" \
  -H "Authorization: Bearer $DIMILINKS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "tools": [
      {
        "name": "get_weather",
        "description": "查询某个城市的当前天气",
        "input_schema": {
          "type": "object",
          "properties": { "city": {"type": "string"} },
          "required": ["city"]
        }
      }
    ],
    "messages": [
      {"role": "user", "content": "帮我查 Tokyo 现在的天气"}
    ]
  }'
模型回复中如果出现 content[].type === "tool_use",请执行工具,然后用 role=usertool_result 内容块继续对话。

思考模式

调用 *-thinking 模型时建议显式打开 thinking
{
  "model": "claude-opus-4-7-thinking",
  "max_tokens": 4096,
  "thinking": { "type": "enabled", "budget_tokens": 8192 },
  "messages": [
    {"role": "user", "content": "请逐步推导 √2 是无理数"}
  ]
}
返回里会出现 content[].type === "thinking" 内容块;如果不需要展示给最终用户,可以在前端层过滤。

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

anthropic-version
string

Anthropic API version, e.g. 2023-06-01.

Example:

"2023-06-01"

Body

application/json
model
string
required
Example:

"claude-sonnet-4-6"

max_tokens
integer
required
Example:

1024

messages
object[]
required
system
temperature
number
top_p
number
top_k
integer
stop_sequences
string[]
stream
boolean
default:false
tools
object[]
tool_choice
object
metadata
object
thinking
object

Response

Anthropic message response. When stream is true the response is text/event-stream with Anthropic native events.

id
string
Example:

"msg_xxx"

type
string
Example:

"message"

role
string
Example:

"assistant"

model
string
Example:

"claude-sonnet-4-6"

content
object[]
stop_reason
string
stop_sequence
string
usage
object