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

Полное руководство по интеграции с API zapros.ai

Base URL

https://zapros.ai/api/v1

API совместим с OpenAI — подставьте этот base_url в любой OpenAI-совместимый SDK, и всё заработает.

Быстрый старт

Начните использовать API zapros.ai за 3 простых шага:

1

Зарегистрируйтесь

Создайте аккаунт на zapros.ai/register. Понадобится только email и пароль.

2

Получите API-ключ

В личном кабинете перейдите в раздел API-ключи и создайте новый ключ. Он будет иметь вид zpr_xxx...

3

Сделайте первый запрос

Пополните баланс и вызовите API. Пример ниже:

curl
curl -X POST https://zapros.ai/api/v1/chat/completions \
  -H "Authorization: Bearer zpr_ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5-nano",
    "messages": [
      {"role": "user", "content": "Привет!"}
    ]
  }'

Аутентификация

Все запросы к API должны содержать заголовок Authorization с вашим API-ключом:

Authorization: Bearer zpr_ваш_ключ

Важно: Никогда не передавайте ваш API-ключ в клиентском коде. Используйте его только на сервере.

Chat Completions

Основной эндпоинт для генерации текста. Полностью совместим с форматом OpenAI.

Запрос

POST /api/v1/chat/completions
{
  "model": "openai/gpt-5-nano",    // Обязательно. Идентификатор модели
  "messages": [                    // Обязательно. Массив сообщений
    {
      "role": "system",            // system | user | assistant
      "content": "Ты полезный ассистент"
    },
    {
      "role": "user",
      "content": "Привет!"
    }
  ],
  "stream": false,                 // Потоковый вывод (SSE)
  "temperature": 0.7,              // Креативность (0.0 - 2.0)
  "max_tokens": 1024               // Макс. кол-во токенов в ответе
}
Поддерживаются стандартные параметры OpenAI: top_p, stop, tools (function calling), tool_choice, response_format и другие. Поддержка конкретного параметра зависит от модели.

Ответ

200 OK
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1719000000,
  "model": "openai/gpt-5-nano",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Привет! Чем могу помочь?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 8,
    "total_tokens": 20
  }
}

Стриминг

При "stream": true ответ приходит по частям в формате Server-Sent Events:

SSE stream
data: {"choices":[{"delta":{"content":"Привет"},"finish_reason":null}]}

data: {"choices":[{"delta":{"content":"!"},"finish_reason":null}]}

data: {"choices":[{"delta":{},"finish_reason":"stop"}]}

data: [DONE]

Python

python
from openai import OpenAI

client = OpenAI(api_key="zpr_ваш_ключ", base_url="https://zapros.ai/api/v1")

stream = client.chat.completions.create(
    model="openai/gpt-5-nano",
    messages=[{"role": "user", "content": "Привет!"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

JavaScript

javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "zpr_ваш_ключ",
  baseURL: "https://zapros.ai/api/v1",
});

const stream = await client.chat.completions.create({
  model: "openai/gpt-5-nano",
  messages: [{ role: "user", content: "Привет!" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Модели

Список всех доступных моделей и цен — на странице Модели и цены. Идентификатор модели указывается в поле model целиком, вместе с провайдером (например anthropic/claude-sonnet-5).

Получить список моделей программно:

GET /api/v1/models
curl https://zapros.ai/api/v1/models \
  -H "Authorization: Bearer zpr_ваш_ключ"

Лимиты и оплата

Оплата — по факту использования: с баланса списывается стоимость каждого запроса по цене модели (за входные и выходные токены). Цены за 1 млн токенов указаны на странице Модели и цены.

  • Лимит запросов: 200 запросов в минуту на API-ключ. При превышении — код 429.
  • Баланс: если средств недостаточно, запрос вернёт код 402. Пополнить можно в личном кабинете.
  • Учёт: фактический расход по токенам и стоимость доступны в разделе «Статистика».

Ошибки

Ошибки возвращаются со стандартными HTTP-кодами и JSON-телом:

Формат ошибки
{
  "error": {
    "message": "Insufficient balance. Please top up your account",
    "type": "insufficient_funds",
    "code": "insufficient_balance"
  }
}
КодОписаниеРешение
401Неверный API-ключПроверьте ключ в заголовке Authorization
402Недостаточно средствПополните баланс в личном кабинете
404Модель не найденаПроверьте идентификатор модели на странице /models
429Превышен лимит запросовСнизьте частоту (лимит 200/мин на ключ)
500Внутренняя ошибкаПовторите позже. Если повторяется — напишите в поддержку

Примеры кода

Python (OpenAI SDK)

python
from openai import OpenAI

client = OpenAI(
    api_key="zpr_ваш_ключ",
    base_url="https://zapros.ai/api/v1"
)

response = client.chat.completions.create(
    model="openai/gpt-5-nano",
    messages=[{"role": "user", "content": "Привет!"}]
)
print(response.choices[0].message.content)

JavaScript (fetch)

javascript
const response = await fetch("https://zapros.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer zpr_ваш_ключ",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "openai/gpt-5-nano",
    messages: [{ role: "user", content: "Привет!" }],
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);

Нужна помощь? Напишите в Telegram или на support@zapros.ai

Получить API-ключ