# Messages (Anthropic)

> POST /v1/messages — формат Anthropic Messages для Claude Code и Anthropic SDK.

`POST /v1/messages` — формат Anthropic Messages. Его используют Claude Code и
Anthropic SDK. Base URL для них — без `/v1`: SDK добавит путь сам.
https://ai-seller.vibe-codes.ru

> Шлюз не переводит форматы: запрос уходит провайдеру модели в формате Anthropic.
> Эндпоинт работает только с моделями, провайдер которых этот формат
> поддерживает. Если модель отвечает ошибкой, используйте её через
> [Chat Completions](https://ai-seller.vibe-codes.ru/docs/chat-completions) или [Responses](https://ai-seller.vibe-codes.ru/docs/responses).

## Запрос

```bash [curl]
curl https://ai-seller.vibe-codes.ru/v1/messages \
  -H "x-api-key: $AISELLER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "max_tokens": 200,
    "system": "Отвечай кратко.",
    "messages": [{"role": "user", "content": "Сколько планет в Солнечной системе?"}]
  }'
```

```python [Python]
import anthropic

client = anthropic.Anthropic(base_url="https://ai-seller.vibe-codes.ru", api_key="$AISELLER_API_KEY")
msg = client.messages.create(
    model="gpt-5.6-sol",
    max_tokens=200,
    system="Отвечай кратко.",
    messages=[{"role": "user", "content": "Сколько планет в Солнечной системе?"}],
)
print(msg.content[0].text)
```

## Ответ

```json
{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "gpt-5.6-sol",
  "content": [{"type": "text", "text": "Восемь."}],
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 20, "output_tokens": 3}
}
```

## Особенности

- **Авторизация** — `x-api-key` или `Authorization: Bearer`, оба работают.
  Заголовок `anthropic-version` шлюз ставит сам; `anthropic-beta` провайдеру не
  передаётся, поэтому бета-возможности API недоступны.
- **Ошибки** приходят в конверте Anthropic (`{"type": "error", ...}`) — SDK и
  Claude Code разбирают их штатно. См. [Ошибки](https://ai-seller.vibe-codes.ru/docs/errors).
- **Параметры:** `stop_sequences` вместо `stop`, формат ответа —
  `output_config.format`; `seed`, `response_format` и `reasoning_effort` здесь
  молча вырезаются. `metadata` заменяется идентификатором шлюза.
- **Инструменты:** ваши (без `type` или `custom`) и клиентские инструменты
  Anthropic — `bash_*`, `text_editor_*`, `memory_*`, `computer_*`. Серверные
  (веб-поиск, исполнение кода, MCP) вырезаются.
- **Нет** `/v1/messages/count_tokens`, Files API и `compaction` (400).
- **Стриминг** — `"stream": true`, события `message_*` и `content_block_*`;
  usage — в `message_start` и `message_delta`. См. [Стриминг](https://ai-seller.vibe-codes.ru/docs/streaming).

Полный список параметров — в разделе [Параметры запроса](https://ai-seller.vibe-codes.ru/docs/params).
