# Обзор API

> Базовые адреса шлюза, список эндпоинтов и какой формат запроса подходит модели.

## Base URL

OpenAI-совместимые инструменты и SDK (base URL уже содержит `/v1`):
https://ai-seller.vibe-codes.ru/v1

Anthropic SDK и Claude Code (SDK сам добавит `/v1/messages`):
https://ai-seller.vibe-codes.ru

## Эндпоинты

| Эндпоинт | Описание |
| --- | --- |
| `POST /v1/chat/completions` | [Chat Completions](https://ai-seller.vibe-codes.ru/docs/chat-completions) — базовый OpenAI-формат, поддерживает стриминг |
| `POST /v1/responses` | [Responses](https://ai-seller.vibe-codes.ru/docs/responses) — формат Codex, поддерживает стриминг |
| `POST /v1/messages` | [Messages](https://ai-seller.vibe-codes.ru/docs/messages) — формат Anthropic и Claude Code, поддерживает стриминг |
| `POST /v1/images/generations` | [Генерация изображений](https://ai-seller.vibe-codes.ru/docs/images), тарификация за изображение |
| `POST /v1/videos` | [Создание видео-задачи](https://ai-seller.vibe-codes.ru/docs/videos): 202 + id для поллинга; тарификация за секунду по завершении |
| `GET /v1/videos/{id}` | Статус видео-задачи |
| `GET /v1/videos/{id}/content` | Скачивание готового видео — после того как GET /v1/videos/{id} вернул статус completed |
| `GET /v1/models` | [Каталог моделей](https://ai-seller.vibe-codes.ru/docs/models) (ключ необязателен; с ключом — включая модели, открытые вашему аккаунту) |
| `GET /v1/balance` | [Текущий баланс](https://ai-seller.vibe-codes.ru/docs/pricing#проверить-баланс) (по API-ключу) |

Других эндпоинтов нет: например, `/v1/embeddings` и `/v1/messages/count_tokens`
отвечают `404 not_found`.

Все запросы авторизуются ключом — см. [Ключи и авторизация](https://ai-seller.vibe-codes.ru/docs/authentication).
В каждом ответе есть заголовок `x-request-id` — тот же идентификатор, что
`request_id` в теле ошибки; указывайте его при обращении в поддержку.

## Формат запроса и модель

Шлюз не переводит запросы из одного формата в другой: запрос к
`/v1/chat/completions`, `/v1/messages` или `/v1/responses` уходит провайдеру
модели в том же формате. Поэтому модель отвечает на эндпоинте, только если его
формат поддерживает её провайдер. Если модель возвращает ошибку на одном
текстовом эндпоинте, попробуйте другой — чаще всего провайдеры поддерживают
`/v1/chat/completions`.

Тип модели должен совпадать с эндпоинтом: модель изображений на чате (и
наоборот) отвечает `404 model_not_found`, как несуществующая.

## Что шлюз меняет в запросе

Модели уходят только поддерживаемые параметры, а идентификаторы клиента
заменяются на идентификаторы шлюза — подробно на странице
[Параметры запроса](https://ai-seller.vibe-codes.ru/docs/params). Заголовки вашего запроса (например,
`OpenAI-Beta` или `anthropic-beta`) провайдеру не передаются. Историю разговора
передавайте целиком в каждом запросе: состояние на стороне провайдера шлюз не
хранит.
