ZvenoAI
API Reference

Messages

POST
/v1/messages

Создает запрос к LLM-модели через Anthropic Messages API. Совместим с Anthropic SDK и Claude Code — можно использовать любой Anthropic SDK, указав base_url: "https://api.zveno.ai".

Поддерживает:

  • Обычный и streaming (stream: true) режимы
  • Tool use (function calling)
  • Vision (изображения в сообщениях)
  • Extended thinking
  • Prompt caching (cache_control)
  • Computer use tools
  • Автоматический failover между провайдерами

Модель указывается в формате vendor/model (например, anthropic/claude-sonnet-4-20250514).

Аутентификация: Authorization: Bearer <api-key> или x-api-key: <api-key>. Заголовок x-api-key автоматически нормализуется для совместимости с Claude Code и Anthropic SDK.

Тело запроса проксируется к провайдеру без конвертации формата, единственное преобразование — замена поля model на provider-specific ID.

Ошибки возвращаются в формате Anthropic: {"type": "error", "error": {"type": "<error_type>", "message": "<message>"}}.

Authorization

BearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "http://localhost:8080/v1/messages" \  -H "Content-Type: application/json" \  -d '{    "model": "string",    "messages": [      {        "role": "string",        "content": null      }    ],    "max_tokens": 0  }'
{
  "id": "string",
  "type": "string",
  "role": "string",
  "content": [
    {
      "type": "string",
      "text": "string",
      "source": {
        "type": "string",
        "media_type": "string",
        "data": "string",
        "url": "string"
      },
      "id": "string",
      "name": "string",
      "input": null,
      "tool_use_id": "string",
      "content": null,
      "is_error": true,
      "cache_control": {
        "type": "string"
      },
      "thinking": "string",
      "data": "string"
    }
  ],
  "model": "string",
  "stop_reason": "string",
  "stop_sequence": "string",
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}

Responses POST

Создает response запрос к LLM-модели через OpenAI Responses API. Совместим с OpenAI Responses API — можно использовать любой OpenAI SDK, указав `base_url: "https://api.zveno.ai/v1"`. Поддерживает: - Текстовый, массивный и multi-turn input - Обычный и streaming (`stream: true`) режимы - Function calling / tool use - Structured output (JSON schema) - Reasoning (extended thinking) - Multi-turn conversations (`previous_response_id`) - Мульти-модельный fallback (`models: [...]`) - Настройки выбора провайдера (`provider`) Модель указывается в формате `vendor/model` (например, `openai/gpt-4o`, `anthropic/claude-sonnet-4-20250514`). Аутентификация: `Authorization: Bearer <api-key>`.

List Models GET

Возвращает список доступных LLM-моделей в формате, совместимом с OpenAI Models API. Авторизация не требуется. Поддерживает: - Поиск по названию, вендору и описанию (`search`) - Фильтрацию по типу модели (`model_type`: chat, audio_transcription) - Гибкую сортировку (по цене, контексту, рейтингу и др.) - Пагинацию Каждая модель содержит информацию о вендоре, контекстном окне, поддерживаемых модальностях, ценах и возможностях (tool use, vision, streaming и др.).