Клієнт хоче торгувати криптовалютами, але стикається з несподіваним бар'єром: 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-річним досвідом готові відповісти на всі запитання.







