# API overview

> Gateway base addresses, the list of endpoints and which request format fits a model.

## Base URL

OpenAI-compatible tools and SDKs (base URL already includes `/v1`):
https://ai-seller.vibe-codes.ru/v1

Anthropic SDK and Claude Code (the SDK appends `/v1/messages` itself):
https://ai-seller.vibe-codes.ru

## Endpoints

| Endpoint | Description |
| --- | --- |
| `POST /v1/chat/completions` | [Chat Completions](https://ai-seller.vibe-codes.ru/en/docs/chat-completions) — base OpenAI format, streaming supported |
| `POST /v1/responses` | [Responses](https://ai-seller.vibe-codes.ru/en/docs/responses) — Codex format, streaming supported |
| `POST /v1/messages` | [Messages](https://ai-seller.vibe-codes.ru/en/docs/messages) — Anthropic and Claude Code format, streaming supported |
| `POST /v1/images/generations` | [Image generation](https://ai-seller.vibe-codes.ru/en/docs/images), billed per image |
| `POST /v1/videos` | [Create a video job](https://ai-seller.vibe-codes.ru/en/docs/videos): 202 + id for polling; billed per second on completion |
| `GET /v1/videos/{id}` | Video job status |
| `GET /v1/videos/{id}/content` | Download the finished video — after GET /v1/videos/{id} reports status completed |
| `GET /v1/models` | [Model catalog](https://ai-seller.vibe-codes.ru/en/docs/models) (key optional; with a key it also lists models opened to your account) |
| `GET /v1/balance` | [Current balance](https://ai-seller.vibe-codes.ru/en/docs/pricing#check-your-balance) (by API key) |

There are no other endpoints: for example, `/v1/embeddings` and
`/v1/messages/count_tokens` return `404 not_found`.

Every request is authorized with a key — see [Keys and authentication](https://ai-seller.vibe-codes.ru/en/docs/authentication).
Every response carries an `x-request-id` header — the same id as `request_id`
in an error body; include it when contacting support.

## Request format and model

The gateway does not translate between request formats: a request to
`/v1/chat/completions`, `/v1/messages` or `/v1/responses` reaches the model's
provider in the same format. So a model answers on an endpoint only if its
provider supports that format. If a model returns an error on one text
endpoint, try another — `/v1/chat/completions` is the most widely supported.

The model type must match the endpoint: an image model on the chat endpoint (and
vice versa) gets `404 model_not_found`, just like a model that does not exist.

## What the gateway changes in a request

Only supported parameters reach the model, and client identifiers are replaced
with the gateway's — see [Request parameters](https://ai-seller.vibe-codes.ru/en/docs/params). Your request
headers (for example, `OpenAI-Beta` or `anthropic-beta`) are not passed to the
provider. Send the full conversation history with every request: the gateway
keeps no provider-side state.
