Перейти к основному содержимому

xRocket WebSocket API

API WebSocket обеспечивает потоковую передачу данных в реальном времени для торговли и управления аккаунтом.

Как подключить?

Используйте следующий URL-адрес для подключения вашего проекта к xRocket WebSocket API:

Для testnet:

подсказка

Чтобы поддерживать соединение активным и предотвратить его закрытие сервером через 60 секунд, отправляйте сообщение ping каждые 30 секунд.

Пример ping-сообщения:

{
"id": "12345",
"method": "ping"
}

Формат сообщения

Сообщения используют формат JSON со следующей структурой:

{
"id": "12345",
"method": "method_name",
"params": {
// параметры, специфичные для метода, например, имя канала для подписки, тикер или токен аутентификации
}
}

Рекомендации по использованию ID запроса:

  • Каждый запрос должен содержать поле с уникальным id (string или числовое значение).
  • id используется для сопоставления запросов с соответствующими ответами.

Пример запроса на подписку:

{
"id": "request_id",
"method": "subscribe",
"params": {
"channel": "ticker",
"symbol": "BTC-USDT",
"interval": "1day"
}
}

Потоковые уведомления используют формат подписки:

{
"method": "subscription",
"params": {
"channel": "ticker",
"symbol": "BTC-USDT",
"interval": "1day",
"data": {
// данные специфичные для канала
}
}
}

Каналы

КаналОписание
Публичные каналыПредоставляют общедоступные рыночные данные, такие как тикеры, книги ордеров и пр. Аутентификация не требуется.
ТикерОбновления тикера.
Все тикерыОбновления тикеров для всех символов.
Книга ордеровОбновления книги ордеров.
СделкиОбновления сделок для определённых символов.
СвечиДанные свечей.
Приватные каналыПредоставляют данные об аккаунте. Требуется аутентификация.
БалансыОбновления балансов аккаунта.
Активные ордерыОбновления ордеров аккаунта.

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

  • Получите токен JWT вашего аккаунта xRocket. В Telegram-боте перейдите в Меню - Настройки - Настройки биржи - API-токен или обратитесь в службу поддержки xRocket. Токен должен быть выдан для вашей учетной записи и привязан к вашему идентификатору пользователя xRocket (хранится в нашей базе данных). Сервер извлекает и проверяет идентификатор пользователя из утверждений JWT.
  • Используйте свой JWT в качестве токена API. Отправьте токен с помощью метода auth сразу после подключения.
Внимание

Используйте testnet-бота для получения токена для testnet-интеграций.

Пример запроса аутентификации:

{
"id": "1",
"method": "auth",
"params": {
"token": "<your_jwt_token_here>"
}
}

Успешный ответ:

{
"id": "1",
"result": {
"success": true
}
}

Ответ с ошибкой:

{  
"id": "1",
"error": {
"code": -32034,
"message": "User Blocked",
"data": {
"detail": "Invalid authentication"
}
}
}

Методы

  • ping — Проверка подключения
  • auth — Аутентификация подключения для приватных потоков данных
  • subscribe — Подписка на поток данных
  • unsubscribe — Отписка от потока данных
  • unsubscribeAll — Отписка от всех активных потоков данных

Отписка

Пример запроса отписки от определённых потоков данных:

{
"id": "12345",
"method": "unsubscribe",
"params": {
"channel": "channel_name"
}
}

Отписка от всех

Пример запроса на отписку от всех активных потоков данных:

{
"id": "12345",
"method": "unsubscribeAll"
}

Обработка ошибок

Коды ошибок API Websocket соответствуют спецификации JSON-RPC.

Наши коды ошибок

Код ошибкиОписание
-32700Ошибка парсинга — Сервер получил некорректный JSON.
-32600Некорректный запрос — Отправленный JSON не является валидным объектом Request.
-32601Метод не найден — Метод не существует или недоступен.
-32602Некорректные параметры — Недопустимый(ые) параметр(ы) метода.
-32603Внутренняя ошибка — Внутренняя ошибка JSON-RPC.
-32000Неверное количество знаков после запятой — Запрошенное количество десятичных знаков не поддерживается.
-32001Ордер не найден — Указанный Ордер не найден.
-32002Уже подписаны — Соединение уже подписано на этот поток данных.
-32003Не подписаны — Попытка отписаться от канала без активной подписки.
-32005Торговый символ не найден — Запрошенный торговый символ не найден.
-32006Некорректный символ — Предоставленный символ недействителен.
-32007Символ недоступен — Символ в настоящее время недоступен для торговли.
-32008Слишком большой интервал — Запрошенный временной интервал слишком большой.
-32009Торговля по символу не открыта — Торговля по этому символу еще не началась или приостановлена.
-32010Актив недоступен — Запрошенный актив недоступен.
-32011Некорректная точность — Запрошенная точность цены или количества не поддерживается.
-32030Недействительный токен — Предоставленный токен аутентификации недействителен, истек или аннулирован.
-32032Ошибка валидации — Произошла ошибка при проверке входящих данных.
-32033Неавторизованный доступ — Недостаточно разрешений для выполнения операции.
-32034Пользователь заблокирован — Учетная запись пользователя была заблокирована.
-32050Превышен лимит запросов — Слишком много запросов. Пожалуйста, повторите попытку позже.

Формат ответа ошибки

{
"id": "1205411",
"error": {
"code": -32034,
"message": "User Blocked",
"data": {
// данные и поля, специфичные для ошибки
"detail": "Invalid authentication"
}
}
}