Интеграция API KuCoin в мобильное криптоприложение
KuCoin выделяется среди бирж тем, что для WebSocket-подключения требует предварительного получения токена через REST — без этого токена к WebSocket вообще не подключиться. Это архитектурное решение удивляет разработчиков, привыкших к Binance или Bybit, где публичные стримы доступны напрямую.
Токен для WebSocket: обязательный первый шаг
POST /api/v1/bullet-public — для публичных данных (без подписи).
POST /api/v1/bullet-private — для приватных данных (с подписью HMAC-SHA256).
Ответ содержит token, instanceServers (список WebSocket-серверов с их endpoint и pingInterval) и время жизни токена (tokenValidFor в миллисекундах, обычно 18000000 — 5 часов).
Подключение: wss://{endpoint}?token={token}&connectId={random_uuid}. connectId — любой уникальный идентификатор сессии для дебаггинга на стороне KuCoin.
При обрыве соединения нужно повторно запросить токен (старый может истечь) и переподключиться. Если просто переподключаться с тем же токеном — иногда работает, иногда нет. Надёжнее всегда запрашивать новый.
Подпись REST API
Формат стандартный: KC-API-SIGN: Base64(HMAC-SHA256(timestamp + method + endpoint + body)). Отдельный заголовок KC-API-PARTNER и KC-API-PARTNER-SIGN требуется только для брокерских интеграций — обычному мобильному приложению не нужен.
KuCoin добавляет KC-API-KEY-VERSION: "2" — обязательный заголовок для ключей, созданных после 2021 года. Без него API возвращает {"code":"400007","msg":"Invalid KC-API-KEY-VERSION"} даже при правильной подписи.
Особенности торговли: Hummingbot-специфика не нужна
KuCoin активно используют боты (у них даже есть официальный Hummingbot-коннектор), поэтому rate limiting настроен жёстко для IP без заголовка User-Agent от известных ботов. Мобильному приложению достаточно стандартных лимитов: 1800 запросов в минуту для публичного API, 200 — для приватного. Проблемы начинаются только при агрессивном поллинге.
KuCoin Futures — отдельный домен (api-futures.kucoin.com) с собственной аутентификацией и другим набором эндпоинтов. Если нужна интеграция и Spot, и Futures — это фактически два разных API-клиента.
Стакан через WebSocket
KuCoin разделяет OrderBook на два стрима: /market/level2:{symbol} (инкрементальные обновления с последовательными номерами) и /spotMarket/level2Depth5:{symbol} (топ-5 лучших цен, полный снапшот каждое обновление). Для стакана глубиной 20+ уровней нужен первый вариант.
Алгоритм восстановления стакана:
- Подписаться на
level2стрим. - Запросить снапшот через REST
GET /api/v3/market/orderbook/level2?symbol=BTC-USDT— он возвращаетsequence. - Применять только те дельты, чей
sequenceStart > snapshot.sequence. - Если пришла дельта с
sequenceStart > lastApplied + 1— есть пропуск, нужен новый снапшот.
Это стандартная схема, но KuCoin добавляет sequenceStart и sequenceEnd в каждое сообщение дельты (а не одно число), что нужно учитывать при валидации.
Сроки
Базовая интеграция KuCoin Spot — 2–3 недели. Специфика (токен для WebSocket, версионирование ключей, восстановление стакана) добавляет примерно неделю по сравнению с Binance. Futures — отдельная оценка.







