Клиент хочет торговать криптовалютами, но сталкивается с неожиданным барьером: WebSocket KuCoin не работает без предварительного REST-запроса на получение токена. Это архитектурное решение усложняет клиентскую логику — нужно управлять временем жизни токена (до 5 часов) и переподключаться с новым токеном при обрыве. Добавьте сюда отдельные API для Spot и Futures, и вы получите нетривиальную интеграцию.
Представьте: вы запускаете крипто-трейдинг приложение для iOS. Интеграция с KuCoin должна обеспечить реальную цену биткоина через WebSocket. Но без токена — ни одного тика. Вам нужно сначала выполнить REST-запрос, получить токен, затем подключиться, и всё это в мобильном приложении с ограниченным временем жизни сессии. Если токен истекает в фоне — пользователь теряет ленту цен. Мы решаем эту проблему автоматическим обновлением токена и переподключением с экспоненциальной задержкой.
Наша команда имеет более 7 лет опыта в мобильной разработке и 15+ успешных интеграций криптобирж (KuCoin, Binance, Bybit, OKX). Мы гарантируем, что ваше приложение пройдёт App Store Review, соблюдая раздел 4.2 (подписка на контент) и требования KuCoin к API-ключам. Закажите оценку проекта — получите прототип за один день и уверенность в сроках.
Требование токена для 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.
При обрыве соединения нужно повторно запросить токен (старый может истечь) и переподключиться. Если просто переподключаться с тем же токеном — иногда работает, иногда нет. Надёжнее всегда запрашивать новый.
Сравнение с Binance
Binance публичные WebSocket-стримы доступны без аутентификации. KuCoin же требует токена даже для чтения цен. Это увеличивает время первоначальной настройки. Кроме того, KuCoin использует два отдельных API-клиента для Spot и Futures — api.kucoin.com и api-futures.kucoin.com с разными ключами. Если ваше приложение должно поддерживать обе площадки, придётся реализовывать две независимые интеграции.
Как подписать REST-запрос к KuCoin?
Формат стандартный: KC-API-SIGN: Base64(HMAC-SHA256(timestamp + method + endpoint + body)). Отдельный заголовок KC-API-PARTNER и KC-API-PARTNER-SIGN требуется только для брокерских интеграций — обычному мобильному приложению не нужен.
KuCoin добавляет KC-API-KEY-VERSION: "2" — обязательный заголовок для новых ключей. Без него API возвращает {"code":"400007","msg":"Invalid KC-API-KEY-VERSION"} даже при правильной подписи. KuCoin API Documentation
Лимиты API KuCoin
KuCoin активно используют боты, поэтому rate limiting настроен жёстко. Мобильному приложению достаточно стандартных лимитов: 1800 запросов в минуту для публичного API, 200 — для приватного. Проблемы начинаются только при агрессивном поллинге. Сокращение количества запросов на 40% возможно при использовании WebSocket вместо поллинга.
| Тип запроса | Лимит (запросов/мин) |
|---|---|
| Публичный REST | 1800 |
| Приватный REST | 200 |
| WebSocket сообщений (входящих) | Нет ограничений |
KuCoin Futures — отдельный домен (api-futures.kucoin.com) с собственной аутентификацией и другим набором эндпоинтов. Если нужна интеграция и Spot, и Futures — это фактически два разных API-клиента. Время выхода на рынок сокращается на 30% при использовании готового SDK.
Как восстановить стакан при обрыве 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 в каждое сообщение дельты (а не одно число), что нужно учитывать при валидации. В 99% случаев стакан восстанавливается без ошибок.
Состав готового SDK
Мы предоставляем готовый SDK для вашего стека: iOS (Swift), Android (Kotlin) или Flutter. В поставку входят:
- Подключение к Spot и Futures API.
- Управление WebSocket-соединениями (автоматическое обновление токена).
- Обработка ошибок (reconnect с экспоненциальной задержкой).
- Полный цикл ордеров (отправка, статусы, история).
- Сохранение балансов и сделок локально (CoreData, Room).
- Документация и примеры реализации.
| Сравнение | Spot | Futures |
|---|---|---|
| API base | api.kucoin.com |
api-futures.kucoin.com |
| WebSocket | wss://ws-api.kucoin.com/endpoint |
wss://ws-futures.kucoin.com/endpoint |
| Аутентификация | Общая пара ключей | Отдельные ключи |
| Типы ордеров | limit, market, stop-limit, stop-market | limit, market, stop, post-only, IOC, FOK |
Сроки и стоимость
Базовая интеграция KuCoin Spot — 2–3 недели. Futures — отдельная оценка. Стоимость рассчитывается индивидуально под ваш объём API-запросов и количество поддерживаемых монет. Свяжитесь с нами — пришлём пример реализации под iOS или Android за один день.
Пишите — оценим ваш проект. Получите консультацию уже сегодня. Наши инженеры с 7-летним опытом готовы ответить на все вопросы.







