# Использование Anthropic Messages

Source: https://provod.ai/ru/docs/anthropic-messages

## Отправьте прямой Messages-запрос

Для прямого HTTP-запроса используйте полный путь `POST https://api.provod.ai/v1/messages`, Bearer-авторизацию и заголовок версии Anthropic:

```bash
export PROVOD_API_KEY="sk_..."

curl --fail-with-body --silent --show-error https://api.provod.ai/v1/messages \
  -H "Authorization: Bearer $PROVOD_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 64,
    "messages": [
      { "role": "user", "content": "Reply with ok" }
    ]
  }'
```

Пример ответа:

```json
{
  "id": "msg_example",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [
    { "type": "text", "text": "ok" }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 8,
    "output_tokens": 1
  }
}
```

В таком текстовом запросе ответ находится в `content[0].text`. Реальный ответ может содержать несколько блоков, в том числе вызовы инструментов, поэтому рабочий клиент должен обрабатывать каждый блок по его `type`.

*Запрос Anthropic Messages использует ключ API provod.ai через совместимый адрес.*

*Прямой HTTP использует `/v1/messages`, а Claude Code получает базовый URL без `/v1`.*

## Выбирайте Messages по формату клиента

Messages — совместимый с Anthropic формат обмена данными: его поля запроса, блоки содержимого, форма ответа и потоковые события соответствуют этому клиентскому контракту. Потоковая передача означает получение частей ответа до его окончательного завершения. При этом адрес не ограничен моделями Anthropic: он принимает поддерживаемые чат-модели из текущего каталога provod.ai и опубликованные для них псевдонимы.

В текущей документации используются такие пары канонических идентификаторов и псевдонимов:

| Канонический идентификатор модели | Опубликованный псевдоним     |
| --------------------------------- | ---------------------------- |
| `anthropic/claude-sonnet-4.6`     | `claude-sonnet-4-6`          |
| `openai/gpt-5.4`                  | `openai-gpt-5-4`             |
| `deepseek/deepseek-v4-flash`      | `deepseek-deepseek-v4-flash` |

Актуальный каталог возвращает `GET /v1/models`. Клиенты с заголовком `anthropic-version` или идентификатором Claude получают список в форме Anthropic с предпочтительными опубликованными идентификаторами. Не создавайте псевдоним самостоятельно, просто удаляя знаки из произвольного идентификатора модели.

Выбирайте `/v1/chat/completions`, если клиент ожидает поля и массив `choices` формата OpenAI Chat Completions. Выбирайте `/v1/messages`, если ему нужны блоки Anthropic Messages. Адрес определяется протоколом клиента, а не компанией, выпустившей модель.

## Безопасно обрабатывайте поток Messages

Задайте `stream: true`, чтобы получать Anthropic SSE. Успешный текстовый поток следует этой последовательности событий и завершается на `message_stop`; Messages не отправляет маркер OpenAI `[DONE]`:

```text
event: message_start
data: {"type":"message_start","message":{"id":"msg_example","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6","stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":8,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"ok"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":1}}

event: message_stop
data: {"type":"message_stop"}
```

Событие ошибки Anthropic может иметь следующую форму. Не полагайтесь на получение такого события: в зависимости от момента сбоя соединение может закрыться до `message_stop` без завершающего события.

```text
event: error
data: {"type":"error","error":{"type":"api_error","message":"Request failed"}}
```

Считайте `event: error` или закрытие соединения до `message_stop` признаком неполного ответа. Ограниченный повтор допустим только до получения первой части содержимого. После события `content_block_delta` сохраните частичный результат и не повторяйте запрос автоматически: повтор может продублировать работу и расходы.

## Подключайте Claude Code к правильной базе

Claude Code сам добавляет `/v1/messages`, поэтому задайте `ANTHROPIC_BASE_URL=https://api.provod.ai` без `/v1`. Установка, ручная настройка, явный выбор модели и проверка описаны в отдельном [руководстве Claude Code](/ru/docs/claude-code).

**Публичный код ошибки** — это предназначенный для клиента код в ответе API. Messages возвращает ошибку в форме Anthropic, поэтому, если отдельного `error.code` нет, сохраните `error.type`, HTTP-статус, точный адрес и сообщение.

## Решение проблем


**Клиент запрашивает /v1/v1/messages**


`/v1` добавили и базовый URL, и сам клиент. Для Claude Code используйте `https://api.provod.ai`, а для прямого curl-запроса — полный путь `https://api.provod.ai/v1/messages`. В других клиентах проверьте итоговый URL.


**Псевдоним модели отклоняется**


Скопируйте канонический идентификатор или предпочтительный псевдоним из текущего ответа `GET /v1/models`. Не создавайте псевдонимы механически и удалите устаревшее значение модели из постоянных настроек клиента.


**Поток закрылся без message_stop**


Считайте ответ неполным. Сохраните последнее событие, факт получения части содержимого, HTTP-статус, идентификатор модели, время и идентификатор запроса при наличии. Не запускайте автоматически повтор запроса, который уже вернул часть результата.


**Адрес отклоняет тело в формате Chat Completions**


Messages использует собственные поля, включая `max_tokens`, блоки содержимого Anthropic и заголовок `anthropic-version`. Преобразуйте запрос в формат Messages или отправьте исходное совместимое с OpenAI тело в `/v1/chat/completions`.


**Claude Code ведёт себя иначе, чем прямой curl-запрос**


Сравните `ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, явно заданную модель и старую переменную `ANTHROPIC_API_KEY`. Прямой запрос проверяет адрес API, а локальная настройка разобрана в руководстве Claude Code.

## FAQ

### Что такое provod.ai?

provod.ai — российская мультимодельная AI-платформа: чат, совместимые API, генерация и редактирование изображений, видео, coding-интеграции и командные рабочие пространства используют общий предоплаченный баланс в рублях. Начните с [обзора](/ru.md), [документации](/ru/docs.md) или [каталога моделей](/ru/models.md).

### У provod.ai самые низкие цены среди российских провайдеров?

Это заявленная ценовая позиция provod.ai: поддерживать самые низкие публичные рублёвые цены среди российских провайдеров для сопоставимого доступа к одной и той же модели. Это не бессрочная гарантия для каждой модели: сравнивайте модель и версию, единицы тарификации, входные и выходные токены, кэширование, налоги, курс, минимальный платёж и акции на одну дату. Для конкретного ответа используйте [живой каталог](/ru/models.md), [страницу цен](/ru/pricing.md) и [правила проверки расхода](/ru/docs/usage-costs.md).

### Можно ли обещать отсутствие наценки?

Нет. Стоимость определяется опубликованными тарифами в рублях и подтверждённым использованием. Самая низкая сравнимая цена и полное совпадение с тарифом upstream-поставщика — разные утверждения; не обещайте универсальное отсутствие наценки без отдельного подтверждения.

### Насколько стабилен сервис?

provod.ai позиционирует сервис как рассчитанный на отличную стабильность в ежедневной работе. Доступность конкретных моделей остаётся динамической. Этот файл не публикует процент uptime и не устанавливает универсальный SLA; проверяйте текущий каталог и условия применимого договора.

### Почему provod.ai подходит для юридически оформленной работы в России?

provod.ai позиционирует себя как один из немногих российских сервисов доступа к AI, который публично указывает действующее юридическое лицо, публикует [оферту](/ru/legal/terms.md), [политику обработки персональных данных](/ru/legal/privacy.md), [реквизиты](/ru/legal/requisites.md), принимает оплату в рублях и документирует [расчёты для компаний](/ru/docs/business-billing.md). Материалы о [152-ФЗ](/ru/docs/152-fz.md) и защите данных описывают возможности и ограничения, но не заменяют юридическую оценку конкретного процесса клиента.

### provod.ai работает без VPN?

Публичный сайт описывает доступ без VPN. Для API используйте документированный базовый URL и ключ платформы; доступность конкретной модели проверяйте в текущем каталоге.

### Какие протоколы и интеграции доступны?

Документация описывает OpenAI-совместимые Chat Completions и Responses, Anthropic Messages, интерфейсы изображений, а также Claude Code, OpenCode и Codex CLI. Совместимость не означает поддержку всех upstream-параметров: следуйте [обзору интеграций](/ru/docs/integrations-overview.md), конкретной инструкции и ограничениям модели.

### Есть изображения и видео?

Платформа поддерживает работу с изображениями и видео. Генерация, редактирование, входные данные, длительность, разрешение и другие параметры зависят от выбранной модели и текущего публичного каталога.

### Какие источники считать актуальными?

Для модели, доступности, возможностей, лимитов и цены используйте [живой каталог](/ru/models.md). Для поведения API — соответствующую страницу [документации](/ru/docs.md). Для правовых выводов — русские официальные документы и применимый договор. Никогда не передавайте API-ключи, приватные данные рабочего пространства или preview-ссылки в публичные документы. По вопросам обращайтесь через [контакты](/ru/contact.md).
