CloseRouter API

Документация CloseRouter API

Короткая документация по публичному inference API: модели, запросы, ключи, баланс и ошибки.

Base URL
https://api.closerouter.dev/v1
Авторизация
Authorization: Bearer closerouter_...
Каталог
GET /models

Chat Completions

OpenAI-style endpoint для chat-запросов, streaming и audio input у совместимых моделей.

Минимальный chat-запрос

curl
export CLOSEROUTER_API_KEY="closerouter_your_key"

curl https://api.closerouter.dev/v1/chat/completions \
  -H "Authorization: Bearer $CLOSEROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.4-mini",
    "messages": [
      { "role": "user", "content": "Reply with exactly: ok" }
    ],
    "max_tokens": 16
  }'

Streaming

Ответ приходит как Server-Sent Events: строки data: {...}, затем data: [DONE].

SSE
curl -N https://api.closerouter.dev/v1/chat/completions \
  -H "Authorization: Bearer $CLOSEROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-haiku-4.5",
    "messages": [
      { "role": "user", "content": "Reply with exactly: ok" }
    ],
    "max_tokens": 16,
    "stream": true
  }'

Audio input

Используйте только модели, у которых input_modalities содержит audio.

curl
export AUDIO_BASE64="$(base64 -w 0 ./sample.wav)"

curl https://api.closerouter.dev/v1/chat/completions \
  -H "Authorization: Bearer $CLOSEROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-3.1-pro-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          { "type": "text", "text": "Describe this audio in one sentence." },
          {
            "type": "input_audio",
            "input_audio": {
              "data": "'"$AUDIO_BASE64"'",
              "format": "wav"
            }
          }
        ]
      }
    ],
    "max_tokens": 80
  }'

Поля запроса

  • model обязателен. Можно передать models как список fallback-кандидатов.
  • messages принимает стандартные роли system, user и assistant.
  • stream: true включайте только для моделей, где endpoint detail показывает supports_streaming: true.
  • Поле user можно передать для вашей внутренней идентификации конечного пользователя.