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

# Anthropic Messages API

> Общайтесь с моделями Claude в нативном формате Anthropic Messages API

> [!NOTE]
>
> **Для пользователей из материкового Китая:** используйте `https://toapis.cn` в качестве эндпоинта (Base URL). Замените `https://toapis.com` на `https://toapis.cn` во всех примерах этого документа.

* Нативный формат Anthropic Messages API
* Полная совместимость с официальным Anthropic SDK (Python / JavaScript) — нужно лишь изменить `base_url`
* Поддержка потоковой передачи (SSE)
* Поддержка многоходовых диалогов, системных подсказок, визуального ввода и вызова инструментов

> [!NOTE]
>
> Если вы уже используете OpenAI SDK, рекомендуем [эндпоинт в формате OpenAI](https://docs.toapis.com/docs/ru/api-reference/chat/chat.md).
> Если вы используете Anthropic SDK или Claude Code, рекомендуется этот эндпоинт.

## Авторизация

**Authorization** `string`

Bearer-токен для прямых HTTP-запросов

```
Authorization: Bearer YOUR_API_KEY
```

**x-api-key** `string`

API-ключ, совместимый с Anthropic SDK

```
x-api-key: YOUR_API_KEY
```

**anthropic-version** `string` (default: 2023-06-01)

Версия Anthropic API. Устанавливается автоматически при использовании Anthropic SDK.

Рекомендуемое значение: `2023-06-01`

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

**model** `string` *required*

Название модели

Поддерживаются все модели серии Claude, например:

* `claude-opus-4-6`
* `claude-sonnet-4-6`
* `claude-haiku-4-5`

**messages** `object[]` *required*

Список сообщений в хронологическом порядке. Допустимы только роли `user` и `assistant`. Системные подсказки задаются в поле `system` верхнего уровня.

**messages\[n]**

**role** `string` *required*

Роль: `user` или `assistant`

**content** `string | object[]` *required*

Содержимое в виде строки или массива блоков контента

**Блок контента**

**type** `string` *required*

Тип контента: `text` или `image`

**text** `string`

Текстовое содержимое. Обязательно при `type: text`.

**source** `object`

Источник изображения. Обязательно при `type: image`.

**source**

**type** `string` *required*

Тип источника: `base64` или `url`

**media\_type** `string`

MIME-тип, обязателен для `base64`. Например: `image/jpeg`, `image/png`

**data** `string`

Изображение в кодировке Base64. Обязательно при `type: base64`.

**url** `string`

URL изображения. Обязательно при `type: url`.

**max\_tokens** `integer` *required*

Максимальное количество токенов для генерации

* Claude Sonnet 4-6: до `64000`
* Claude Opus 4-6: до `32000`

**system** `string | object[]`

Системная подсказка на верхнем уровне (не внутри `messages`)

Принимает строку или массив блоков контента.

**stream** `boolean` (default: false)

Включить потоковую передачу (Server-Sent Events)

* `true`: токены передаются по мере генерации в формате SSE Anthropic
* `false`: полный ответ возвращается одним блоком

**temperature** `number` (default: 1)

Температура семплирования

Диапазон: `0` – `1`

**top\_p** `number`

Порог ядерного семплирования

Диапазон: `0` – `1`. Не рекомендуется задавать одновременно с `temperature`.

**stop\_sequences** `string[]`

Стоп-последовательности — генерация прекращается при появлении любой из них

## Ответ

**id** `string`

Уникальный идентификатор запроса с префиксом `msg_`

**type** `string`

Тип объекта, всегда `message`

**role** `string`

Роль ответа, всегда `assistant`

**content** `object[]`

Список сгенерированных блоков контента

* `content[].type`: тип контента, обычно `text`
* `content[].text`: сгенерированный текст

**model** `string`

Модель, обработавшая запрос

**stop\_reason** `string`

Причина остановки генерации

* `end_turn`: модель завершила ответ естественным образом
* `max_tokens`: достигнут лимит `max_tokens`
* `stop_sequence`: сработала стоп-последовательность

**usage** `object`

Статистика использования токенов

* `usage.input_tokens`: количество входных токенов
* `usage.output_tokens`: количество выходных токенов

```bash cURL theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Привет, расскажи о себе"
      }
    ]
  }'
```

```bash cURL (системная подсказка) theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "Ты профессиональный помощник по программированию, специализирующийся на Python и Go.",
    "messages": [
      {
        "role": "user",
        "content": "Напиши быструю сортировку на Python"
      }
    ]
  }'
```

```bash cURL (потоковая передача) theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {
        "role": "user",
        "content": "Объясни, что такое рекурсия"
      }
    ]
  }'
```

```python Python (Anthropic SDK) theme={null}
import anthropic

client = anthropic.Anthropic(
    api_key="your-ToAPIs-key",
    base_url="https://toapis.com"
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Привет, расскажи о себе"}
    ]
)

print(message.content[0].text)
```

```python Python (потоковая передача) theme={null}
import anthropic

client = anthropic.Anthropic(
    api_key="your-ToAPIs-key",
    base_url="https://toapis.com"
)

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Объясни, что такое рекурсия"}
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
```

```javascript JavaScript (Anthropic SDK) theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "your-ToAPIs-key",
  baseURL: "https://toapis.com",
});

const message = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Привет, расскажи о себе" }],
});

console.log(message.content[0].text);
```

```json 200 theme={null}
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Привет! Я Claude — ИИ-ассистент от Anthropic. Я помогу ответить на вопросы, проанализировать информацию, написать код и многое другое. Чем могу помочь?"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 10,
    "output_tokens": 32
  }
}
```

```json 400 theme={null}
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "messages: field required"
  }
}
```

```json 401 theme={null}
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.