Skip to content

Отправка сообщений в чат

POST /chats/completions

Отправка сообщений в чат-модель. Лимит: 30 запросов/мин.

При "stream": false возвращает полный ответ JSON, при "stream": true — SSE-поток (text/event-stream) с OpenAI-совместимыми чанками.

Поддерживаются модели Gemini 3.6, Claude 5 и GPT 5.6 (провайдер — KIE). Полный список с ценами — GET /chats/models. Подробный гайд по потоковой передаче и биллингу — Чаты.

Базовый URL: https://api.aihere.ru/api/v1
Авторизация: Authorization: Bearer <API-ключ>
Rate-limit: 30 запросов/мин

Параметры

ПолеТипОбяз.Описание
modelstringдазначения: gemini-3-6-flash, gemini-3-6-flash-openai, claude-sonnet-5, claude-opus-5, gpt-5-6-luna, gpt-5-6-terra, gpt-5-6-sol
messagesarrayдасообщения диалога: {role, content}; role — system, user, assistant; от 1 до 200
streambooleanпо умолчанию false; true — ответ SSE-потоком
max_tokensintegerмаксимум токенов ответа: 1–32768; по умолчанию 1024
temperaturenumber0.0–2.0
top_pnumber0.0–1.0

Примеры

cURL

bash
curl -X POST "https://api.aihere.ru/api/v1/chats/completions" \
  -H "Authorization: Bearer $AIHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "gpt-5-6-luna",
  "messages": [{"role": "user", "content": "Скажи привет"}]
}'

Python

python
import requests

payload = {
    "model": "gpt-5-6-luna",
    "messages": [{"role": "user", "content": "Скажи привет"}],
}

resp = requests.post(
    "https://api.aihere.ru/api/v1/chats/completions",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json=payload,
    timeout=180,
)
resp.raise_for_status()
data = resp.json()
print(data["content"], data["usage"], data["cost_rub"])

JavaScript

javascript
const resp = await fetch("https://api.aihere.ru/api/v1/chats/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-5-6-luna",
  "messages": [{"role": "user", "content": "Скажи привет"}]
}),
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}: ${await resp.text()}`);
const data = await resp.json();
console.log(data.content, data.usage, data.cost_rub);

PHP

php
$payload = json_decode('{"model": "gpt-5-6-luna", "messages": [{"role": "user", "content": "Скажи привет"}]}', true);

$ch = curl_init('https://api.aihere.ru/api/v1/chats/completions');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_TIMEOUT => 180,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $data['content'];

Ответ 200

Ответ модели целиком (stream=false)

json
{
  "request_id": "f47ac10b58cc4372a5670e02b2c3d479",
  "model": "gpt-5-6-luna",
  "content": "Привет! Чем могу помочь?",
  "finish_reason": "stop",
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 8,
    "total_tokens": 20
  },
  "cost_rub": 0.01,
  "cost_coins": 0.01
}

cost_rub — итоговая стоимость запроса в рублях. Поле cost_coins — deprecated legacy-алиас с тем же значением, оставлен для совместимости; в новых интеграциях используйте cost_rub.

При "stream": true ответ — text/event-stream: дельты текста OpenAI-совместимыми чанками, финальный чанк с usage и cost_rub, завершение — data: [DONE]. Формат и разбор на 4 языках — в гайде по чатам.

Ошибки

КодПричина
402недостаточно средств на балансе (тело: balance, required)
422невалидный запрос (пустой messages, неизвестная model и т.п.)
429превышен rate-limit
502провайдер отклонил запрос — оценка стоимости возвращена полностью
503провайдер или сервис баланса недоступен — оценка возвращена полностью