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

xRocket WebSocket API

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

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

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

Продакшенwss://exchange.app-api.xrocket.exchange/
Тестнетwss://exchange.app-api.testnet.xrocket.exchange/
подсказка

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

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

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

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

  1. Создайте аккаунт xRocket

Запустите @xRocket (для Mainnet) или @xrocket_testnet_bot (для Testnet) в Telegram — кошелёк/аккаунт xRocket будет автоматически создан и привязан к вашему Telegram-аккаунту.

  1. Получите свой Bearer Token (API-ключ)

В @xRocket (для Mainnet) или @xrocket_testnet_bot (для Testnet) перейдите в Меню > Настройки > Настройки биржи > API токен.

  1. Отправьте токен через метод auth сразу после подключения

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

{
"id": "1",
"method": "auth",
"params": {
"token": "<YOUR_API_TOKEN>"
}
}
Защитите свой API-токен

Ваш Bearer Token (API-ключ) предоставляет полный доступ к вашему аккаунту, включая торговлю, переводы и вывод средств. Обращайтесь с ним так же, как с паролем от аккаунта — никогда не публикуйте его!

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

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

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

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

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

Сообщения используют формат 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": {
// данные специфичные для канала
}
}
}

Каналы

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

Методы

  • 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"
}
}
}