Методы AITUNNEL
Специальные методы API AITUNNEL для получения информации о пользователе, ключе, статистики и баланса. Эти эндпоинты не являются частью стандартного API OpenAI.
Информация о пользователе
GET /v1/aitunnel/me — возвращает информацию о текущем пользователе.
Ответ
{
"email": "user@example.com",
"id": 123
}Пример
import requests
response = requests.get(
"https://api.aitunnel.ru/v1/aitunnel/me",
headers={"Authorization": "Bearer sk-aitunnel-xxx"}
)
data = response.json()
print(f"Email: {data['email']}, ID: {data['id']}")curl https://api.aitunnel.ru/v1/aitunnel/me \
-H "Authorization: Bearer sk-aitunnel-xxx"Баланс аккаунта
GET /v1/aitunnel/balance — возвращает текущий баланс аккаунта в рублях. Если у ключа настроен бюджет, также возвращает оставшийся бюджет.
Ответ
{
"balance": 5000.0,
"budget": 850.5
}| Поле | Описание |
|---|---|
balance | Баланс аккаунта в рублях |
budget | Оставшийся бюджет ключа в рублях (только если настроен) |
Подробная информация о бюджете
Для получения деталей о бюджете (интервал сброса, время до сброса, начальная сумма) используйте /v1/aitunnel/key.
Пример
import requests
response = requests.get(
"https://api.aitunnel.ru/v1/aitunnel/balance",
headers={"Authorization": "Bearer sk-aitunnel-xxx"}
)
data = response.json()
print(f"Баланс: {data['balance']} ₽")
if "budget" in data:
print(f"Бюджет ключа: {data['budget']} ₽")curl https://api.aitunnel.ru/v1/aitunnel/balance \
-H "Authorization: Bearer sk-aitunnel-xxx"Информация о ключе
GET /v1/aitunnel/key — возвращает подробную информацию о текущем API ключе: имя, бюджет (с данными о сбросе) и срок действия.
Ответ
type KeyResponse = {
name: string | null;
// Присутствует, если у ключа настроен бюджет
budget?: {
remaining: number; // Оставшийся бюджет в рублях
initial: number; // Начальный бюджет
reset_interval?: string; // "daily", "weekly" или "monthly"
reset_at?: string; // Дата следующего сброса (ISO 8601)
reset_in_seconds?: number; // Секунд до сброса
};
// Присутствует, если у ключа ограниченный срок действия
expires_at?: string; // Дата истечения (ISO 8601)
expires_in_seconds?: number; // Секунд до истечения
};Примеры ответов
Ключ с бюджетом и сроком действия:
{
"name": "Production API",
"budget": {
"remaining": 850.5,
"initial": 1000.0,
"reset_interval": "monthly",
"reset_at": "2026-03-15T12:00:00.000Z",
"reset_in_seconds": 1728000
},
"expires_at": "2026-06-01T00:00:00.000Z",
"expires_in_seconds": 8294400
}Простой ключ без бюджета и без срока действия:
{
"name": "Dev key"
}Пример
import requests
response = requests.get(
"https://api.aitunnel.ru/v1/aitunnel/key",
headers={"Authorization": "Bearer sk-aitunnel-xxx"}
)
data = response.json()
print(f"Ключ: {data['name']}")
if "budget" in data:
budget = data["budget"]
print(f"Бюджет: {budget['remaining']} / {budget.get('initial', '?')} ₽")
if "reset_in_seconds" in budget:
hours = budget["reset_in_seconds"] // 3600
print(f"Сброс через: {hours} часов")
if "expires_in_seconds" in data:
hours = data["expires_in_seconds"] // 3600
print(f"Истекает через: {hours} часов")const response = await fetch("https://api.aitunnel.ru/v1/aitunnel/key", {
headers: { Authorization: "Bearer sk-aitunnel-xxx" },
});
const data = await response.json();
console.log(`Ключ: ${data.name}`);
if (data.budget) {
console.log(`Бюджет: ${data.budget.remaining} / ${data.budget.initial} ₽`);
if (data.budget.reset_in_seconds) {
const hours = Math.floor(data.budget.reset_in_seconds / 3600);
console.log(`Сброс через: ${hours} часов`);
}
}curl https://api.aitunnel.ru/v1/aitunnel/key \
-H "Authorization: Bearer sk-aitunnel-xxx"Статистика использования
GET /v1/aitunnel/stats/summary — возвращает подробную статистику использования для текущего API ключа: расходы, количество запросов и самые используемые модели.
Ответ
{
"today_spend": 12.5,
"today_requests": 87,
"month_spend": 1250.8,
"month_requests": 4320,
"avg_daily_spend": 41.69,
"top_model_by_spend": "claude-sonnet-4.5",
"top_model_by_spend_value": 680.2,
"top_model_by_requests": "gpt-5-mini",
"top_model_by_requests_value": 2100
}| Поле | Описание |
|---|---|
today_spend | Расходы за сегодня (₽) |
today_requests | Количество запросов за сегодня |
month_spend | Расходы за последние 30 дней (₽) |
month_requests | Количество запросов за 30 дней |
avg_daily_spend | Средний расход в день за 30 дней (₽) |
top_model_by_spend | Модель с наибольшими расходами за 30 дней |
top_model_by_spend_value | Сумма расходов на эту модель (₽) |
top_model_by_requests | Самая популярная модель по количеству запросов |
top_model_by_requests_value | Количество запросов к этой модели |
Привязка к ключу
Статистика возвращается для конкретного API ключа, которым вы авторизованы. Разные ключи — разная статистика.
Пример
import requests
response = requests.get(
"https://api.aitunnel.ru/v1/aitunnel/stats/summary",
headers={"Authorization": "Bearer sk-aitunnel-xxx"}
)
data = response.json()
print(f"Сегодня: {data['today_spend']} ₽ ({data['today_requests']} запросов)")
print(f"За месяц: {data['month_spend']} ₽ ({data['month_requests']} запросов)")
print(f"Среднее в день: {data['avg_daily_spend']} ₽")
if data['top_model_by_spend']:
print(f"Самая дорогая модель: {data['top_model_by_spend']} ({data['top_model_by_spend_value']} ₽)")
if data['top_model_by_requests']:
print(f"Самая популярная модель: {data['top_model_by_requests']} ({data['top_model_by_requests_value']} запросов)")curl https://api.aitunnel.ru/v1/aitunnel/stats/summary \
-H "Authorization: Bearer sk-aitunnel-xxx"Публичные эндпоинты
Эти эндпоинты не требуют авторизации.
Список моделей
GET /public/aitunnel/models — полный список моделей по категориям.
Конкретная категория: GET /public/aitunnel/models/:group
Группы: chat, images, videos, embeddings, speech, transcriptions, moderation.
# Все модели
curl https://api.aitunnel.ru/public/aitunnel/models
# Только чат-модели
curl https://api.aitunnel.ru/public/aitunnel/models/chat