Appearance
Отправка сообщений в чат
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 запросов/мин
Параметры
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
model | string | да | значения: 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 |
messages | array | да | сообщения диалога: {role, content}; role — system, user, assistant; от 1 до 200 |
stream | boolean | — | по умолчанию false; true — ответ SSE-потоком |
max_tokens | integer | — | максимум токенов ответа: 1–32768; по умолчанию 1024 |
temperature | number | — | 0.0–2.0 |
top_p | number | — | 0.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 | провайдер или сервис баланса недоступен — оценка возвращена полностью |
