Xtool AI API (2.0.0)

Поддержка: support@xtool.ru URL: https://xtool.ru

REST API нейросетей для работы с различными моделями искусственного интеллекта (OpenAI, Anthropic, Google и др.).


🔗 Навигация


🚀 Основные возможности

  • Отправка запросов к текстовым и графическим моделям ИИ
  • Управление сессиями диалогов с сохранением контекста
  • Получение истории сообщений
  • Гибкая настройка параметров генерации (temperature, max_tokens)
  • Прозрачный расчет стоимости запросов

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

Все запросы (кроме /auth/login/) требуют JWT токен в заголовке Authorization: Bearer {token}.


📦 Формат ответов

Все ответы возвращаются в формате JSON с полем status (ok или error).


Auth

Авторизация в API

Авторизация в API (генерация JWT) по логину и паролю

Request Body schema: application/json
required
login
required
string

Логин пользователя для авторизации в системе. Используется вместе с паролем для получения JWT токена.

password
required
string

Пароль пользователя. Передается в открытом виде через HTTPS. После успешной проверки возвращается JWT токен для дальнейшей аутентификации.

Responses

Request samples

Content type
application/json
{
  • "login": "user@example.com",
  • "password": "SecurePassword123"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

AI

Идентификатор сессии (комнаты) чата

Запрос к апи на получение пользователем идентификатора сессии (комнаты) чата и его регистрации в системе

Authorizations:
bearerAuth
Request Body schema: application/json
required
room_id
string or null = 32 characters

Идентификатор сессии (комнаты) чата в формате UUID. Если не указан или null, система сгенерирует новый room_id и вернет его в ответе. Если указан существующий room_id, запрос будет привязан к этой сессии, что позволит использовать историю сообщений через параметр chat_depth в /ai/send/. Рекомендуется сохранять полученный room_id на клиенте для продолжения диалога.

Responses

Request samples

Content type
application/json
{
  • "room_id": "123e4567-e89b-12d3-a456-42661417"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Настройки

Получение настроек

Authorizations:
bearerAuth

Responses

Request samples

$url = 'https://api.xtool.ru/ai/settings/';
$token = 'your_jwt_token_here';

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([]),
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token
    ]
]);

$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);

if ($result['status'] === 'ok') {
    foreach ($result['data']['ai'] as $model) {
        echo $model['description'] . "\n";
    }
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Получение истории сообщений

История

Authorizations:
bearerAuth
Request Body schema: application/json
required
room_id
required
string or null = 32 characters

Идентификатор сессии (комнаты) чата в формате UUID, для которой требуется получить историю сообщений. Используется room_id, полученный через /ai/room/ или сохраненный после предыдущих запросов. История включает все сообщения (запросы и ответы), отправленные в рамках указанной сессии.

Responses

Request samples

Content type
application/json
{
  • "room_id": "123e4567-e89b-12d3-a456-42661417"
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Отправка запроса нейросети

Отправка запроса

Authorizations:
bearerAuth
Request Body schema: application/json
required
room_id
required
string = 32 characters

Идентификатор сессии (комнаты) чата. UUID, который получается через /ai/room/ и используется для группировки сообщений одного диалога. В рамках одной сессии сохраняется история сообщений, доступная при использовании параметра chat_depth.

ai
required
integer

ID модели ИИ из списка доступных моделей. Получить список можно через эндпоинт /ai/settings/. Каждая модель имеет свои характеристики (тип, стоимость, лимиты токенов).

system_prompt
string

Систем промпт - инструкция для нейросети (system prompt). Устанавливает роль, контекст и правила поведения модели перед обработкой пользовательского сообщения. Влияет на стиль, тон и формат ответов.

message
required
string

Основной текст запроса пользователя. Для TEXT моделей — вопрос или задача, для IMAGE моделей — описание изображения.

chat_depth
integer >= 0
Default: 0

Количество предыдущих сообщений из истории, используемых как контекст. 0 — без контекста (независимые запросы), большие значения — учет истории диалога.

max_output_tokens
required
integer

Максимальное количество токенов в ответе модели. Ограничивает длину генерируемого текста или сложность изображения. Если не указан, используется значение max_output_tokens выбранной модели из /ai/settings/. Не должен превышать максимальное значение модели. Влияет на стоимость запроса.

temperature
number

Степень случайности генерации текста. Диапазон допустимых значений у каждой нейросети свой, но чаще всего, от 0 до 2, где 0 — максимально детерминированные ответы, 2 — максимально случайные. При значениях близких к 0 модель выбирает наиболее вероятные токены, при высоких значениях — более разнообразные варианты.

seed
number or null

Seed для генерации изображений. Используется для получения воспроизводимых результатов при генерации изображений. Одинаковые значения seed с одинаковыми параметрами запроса дадут идентичные или очень похожие изображения. Если не указан, используется случайное значение.

Responses

Request samples

Content type
application/json
{
  • "room_id": "123e4567-e89b-12d3-a456-42661417",
  • "ai": 5,
  • "system_prompt": "Ты опытный учитель и наставник. Объясняй сложные темы простым языком.",
  • "message": "Почему небо голубое? Объясни простыми словами.",
  • "chat_depth": 3,
  • "max_output_tokens": 2000,
  • "temperature": 0.5,
  • "seed": 12
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}