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

# POST /v1/messages

> Главный эндпоинт. Совместим с официальным Anthropic Messages API.

Полностью совместимо с Anthropic Messages API. Если ваш код работает с
официальным API — он работает с нами. Меняется только `baseURL`.

## Эндпоинт

```
POST https://api.east-api-3.org/v1/messages
```

## Заголовки

| Header              | Описание                                    |
| ------------------- | ------------------------------------------- |
| `x-api-key`         | Ваш ключ `sk-ant-api03-…` или `sk-ant-03-…` |
| `content-type`      | `application/json`                          |
| `anthropic-version` | По желанию; принимаем без проверки          |

## Тело запроса

<ResponseField name="model" type="string" required>
  Имя модели, например `claude-sonnet-4.6`.
</ResponseField>

<ResponseField name="messages" type="array" required>
  Массив сообщений `{ role: "user" | "assistant", content }`. `content`
  принимается строкой или массивом блоков.
</ResponseField>

<ResponseField name="max_tokens" type="integer" required>
  Максимум токенов в ответе.
</ResponseField>

<ResponseField name="system" type="string | array">
  Системный промпт. Строкой или массивом блоков с поддержкой
  `cache_control`.
</ResponseField>

<ResponseField name="stream" type="boolean" default="false">
  Если `true` — отдаём ответ через SSE.
  См. [Streaming](/streaming).
</ResponseField>

<ResponseField name="temperature" type="number" default="1.0">
  0..1, либо до 2 для творческих задач.
</ResponseField>

<ResponseField name="tools" type="array">
  Описания доступных функций. Формат — стандартный Anthropic tool-use.
</ResponseField>

<ResponseField name="stop_sequences" type="array">
  До 4 строк, при появлении которых генерация останавливается.
</ResponseField>

## Пример

<CodeGroup>
  ```typescript TypeScript theme={null}
  const msg = await client.messages.create({
    model: "claude-sonnet-4.6",
    max_tokens: 1024,
    system: "Ты помощник разработчика. Отвечай по существу.",
    messages: [
      { role: "user", content: "Объясни разницу между Mutex и RwLock в Rust" },
    ],
  });
  ```

  ```python Python theme={null}
  msg = client.messages.create(
      model="claude-sonnet-4.6",
      max_tokens=1024,
      system="Ты помощник разработчика. Отвечай по существу.",
      messages=[
          {"role": "user", "content": "Объясни разницу между Mutex и RwLock в Rust"},
      ],
  )
  ```

  ```bash cURL theme={null}
  curl https://api.east-api-3.org/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-sonnet-4.6",
      "max_tokens": 1024,
      "system": "Ты помощник разработчика. Отвечай по существу.",
      "messages": [{"role": "user", "content": "Привет"}]
    }'
  ```
</CodeGroup>

## Ответ

```json theme={null}
{
  "id": "msg_01a2b3c4d5...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4.6",
  "content": [
    { "type": "text", "text": "..." }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 23,
    "output_tokens": 87
  }
}
```

`usage.input_tokens` + `usage.output_tokens` × коэффициент модели = количество
кредитов, которое спишется с вашего баланса. Подробности —
[Тарифы](/pricing).

## Поля ответа

<ResponseField name="id" type="string">
  Уникальный идентификатор ответа.
</ResponseField>

<ResponseField name="content" type="array">
  Массив блоков. Чаще всего один `{ type: "text", text: "..." }`,
  но при tool-use — `{ type: "tool_use", ... }`.
</ResponseField>

<ResponseField name="stop_reason" type="string">
  `end_turn` | `max_tokens` | `stop_sequence` | `tool_use`.
</ResponseField>

<ResponseField name="usage" type="object">
  Токены, потраченные на этот запрос. Используется для биллинга и аналитики.
</ResponseField>
