> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elkapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Messages

> <ul><li>Anthropic Claude Messages API 格式的请求。</li><li>需要在请求头中包含 `anthropic-version`。</li></ul>

<RequestExample>
  ```bash cURL theme={null} theme={null}
  curl --request POST \
    --url 'https://api.elkapi.com/v1/messages' \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "model": "claude-sonnet-4-6",
    "messages": [
      {
        "role": "user",
        "content": "你好，请介绍一下你自己"
      }
    ],
    "max_tokens": 1024,
    "temperature": 1,
    "stream": false,
    "metadata": {
      "user_id": "user_id"
    }
  }'
  ```

  ```python Python theme={null} theme={null}
  import requests

  url = "https://api.elkapi.com/v1/messages"
  headers = {
      "Authorization": "Bearer <token>"
  }
  headers["Content-Type"] = "application/json"
  payload = {
      "model": "claude-sonnet-4-6",
      "messages": [
          {
              "role": "user",
              "content": "你好，请介绍一下你自己"
          }
      ],
      "max_tokens": 1024,
      "temperature": 1,
      "stream": False,
      "metadata": {
          "user_id": "user_id"
      }
  }

  response = requests.request("POST", url, headers=headers, json=payload)
  print(response.json())
  ```

  ```javascript JavaScript theme={null} theme={null}
  const url = "https://api.elkapi.com/v1/messages";

  const headers = {
    "Authorization": "Bearer <token>"
  };
  headers["Content-Type"] = "application/json";
  const payload = {
    "model": "claude-sonnet-4-6",
    "messages": [
      {
        "role": "user",
        "content": "你好，请介绍一下你自己"
      }
    ],
    "max_tokens": 1024,
    "temperature": 1,
    "stream": false,
    "metadata": {
      "user_id": "user_id"
    }
  };

  const response = await fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(payload)
  });

  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null} theme={null}
  {
    "id": "id",
    "type": "message",
    "role": "user",
    "content": "你好，请介绍一下你自己",
    "model": "claude-sonnet-4-6",
    "stop_reason": "end_turn",
    "usage": {
      "input_tokens": 1,
      "output_tokens": 1,
      "cache_creation_input_tokens": 1,
      "cache_read_input_tokens": 1
    }
  }
  ```
</ResponseExample>

## Authorizations

<ParamField header="Authorization" type="string" required>
  所有接口均需要使用 Bearer Token 进行认证。

  在请求头中添加：

  ```
  Authorization: Bearer YOUR_API_KEY
  ```
</ParamField>

## Body

<ParamField body="model" type="string" required default="claude-sonnet-4-6">
  示例：`claude-sonnet-4-6`
</ParamField>

<ParamField body="messages" type="array<object>" required>
  <ParamField body="messages.role" type="string" required>
    可选值：`user`、`assistant`
  </ParamField>

  <ParamField body="messages.content" type="string or array<object>" required />
</ParamField>

<ParamField body="system" type="string or array<object>" />

<ParamField body="max_tokens" type="integer" required />

<ParamField body="temperature" type="number" />

<ParamField body="top_p" type="number" />

<ParamField body="top_k" type="integer" />

<ParamField body="stream" type="boolean" />

<ParamField body="stop_sequences" type="array<string>" />

<ParamField body="tools" type="array<object>">
  <ParamField body="tools.name" type="string" />

  <ParamField body="tools.description" type="string" />

  <ParamField body="tools.input_schema" type="object" />
</ParamField>

<ParamField body="tool_choice" type="object">
  <ParamField body="tool_choice.type" type="string">
    可选值：`auto`、`any`、`tool`
  </ParamField>

  <ParamField body="tool_choice.name" type="string" />
</ParamField>

<ParamField body="thinking" type="object">
  <ParamField body="thinking.type" type="string">
    可选值：`enabled`、`disabled`
  </ParamField>

  <ParamField body="thinking.budget_tokens" type="integer" />
</ParamField>

<ParamField body="metadata" type="object">
  <ParamField body="metadata.user_id" type="string" />
</ParamField>

## Response

<ResponseField name="id" type="string" />

<ResponseField name="type" type="string">
  示例：`message`
</ResponseField>

<ResponseField name="role" type="string">
  示例：`assistant`
</ResponseField>

<ResponseField name="content" type="array<object>">
  <ResponseField name="content.type" type="string" />

  <ResponseField name="content.text" type="string" />
</ResponseField>

<ResponseField name="model" type="string" default="claude-sonnet-4-6">
  示例：`claude-sonnet-4-6`
</ResponseField>

<ResponseField name="stop_reason" type="string">
  可选值：`end_turn`、`max_tokens`、`stop_sequence`、`tool_use`
</ResponseField>

<ResponseField name="usage" type="object">
  <ResponseField name="usage.input_tokens" type="integer" />

  <ResponseField name="usage.output_tokens" type="integer" />

  <ResponseField name="usage.cache_creation_input_tokens" type="integer" />

  <ResponseField name="usage.cache_read_input_tokens" type="integer" />
</ResponseField>
