API Bybit: ключи, режимы и проверка подключения

Обложка статьи «API Bybit: ключи, режимы и проверка подключения»: Золотой ключ слева, от него расходятся три линии к трём узлам: средняя сплошная и ведёт к залитому узлу, две крайние пунктирные

Какие задачи решает API V5 и когда нужен ключ?

Ключ нужен для запросов к вашему счёту. В документации V5 запросы разложены по разделам: рынок, торговля, позиции, счёт, активы, пользователь. Запрос времени из раздела рынка идёт без ключа и подписи. Запросы к счёту, заявкам и самому ключу подписываются.

Подписанный запрос несёт три обязательных заголовка: X-BAPI-API-KEY с ключом, X-BAPI-TIMESTAMP со временем в миллисекундах и X-BAPI-SIGN с подписью. Четвёртый, X-BAPI-RECV-WINDOW, задаёт, сколько запрос считается действительным, по умолчанию это 5000 мс. Ключ бывает двух видов. Обычный выдаёт биржа парой из ключа и секрета, подпись идёт по HMAC. Во втором варианте пару RSA вы создаёте сами и отдаёте бирже только публичную часть.

Здесь проходит граница, которую легко пропустить. Подключение по API ещё не торговля: это транспорт, по которому программа получает данные и может отправить заявку. Откуда берётся торговый сигнал и как проверить исполнение, разобрано в руководстве торговый бот: как работает и как проверить.

Как различать ключи mainnet, testnet и demo?

Ключ работает только в той среде, где создан, и только на её адресе. Типичная причина отказа при первом подключении - ключ от одной среды, а адрес от другой: биржа прямо просит это проверить в описании кода 10003. Там же упомянута четвёртая среда, демо внутри тестовой сети, но создавать в ней ключ документация не советует.

СредаАдрес RESTГде создают ключ
Mainnet, основнаяapi.bybit.comсайт биржи, API Management
Testnet, тестоваяapi-testnet.bybit.comсайт тестовой сети
Demo, демо-счётapi-demo.bybit.comсайт биржи, режим Demo Trading

Демо-счёт - отдельный счёт со своим ID, и набор методов у него неполный: рыночные запросы доступны все, а из остальных только часть. Для некоторых стран у основной площадки свой адрес, список есть в документации.

Создать ключ можно только на сайте, в приложении такого пункта нет. Новому аккаунту биржа может не дать этого сделать первые 48 часов после регистрации. При создании задают права. Для проверки подключения хватит ключа только для чтения, а право на вывод средств стороннему сервису не нужно: чем уже права, тем меньше риск при утечке ключа.

Срок действия смотрят у самого ключа. В его параметрах есть deadlineDay, остаток дней, и expiredAt, дата окончания. Документация оговаривает, что эти поля относятся к ключам без привязки к IP или к случаю, когда менялся пароль. Общий срок «на все ключи» из чужих инструкций переносить на свой ключ не стоит.

Как проверить подключение и понять ошибку?

Проверяют в два приёма: сначала связь без ключа, потом сам ключ запросом на чтение.

  1. Отправьте GET /v5/market/time на адрес своей среды. Параметров и ключа запрос не требует. В ответе должны прийти retCode 0 и два поля времени: timeSecond и timeNano.
  2. Сверьте это время с часами своего компьютера. Метка времени в подписанном запросе должна быть не старше окна recv_window. Опережать серверное время она может меньше чем на 1000 мс.
  3. Отправьте подписанный GET /v5/user/query-api. Он доступен ключу с любыми правами и возвращает параметры самого ключа: readOnly, список permissions, привязанные IP, срок.
  4. Сравните ответ с тем, что вы задавали при создании. readOnly 1 означает только чтение, 0 - чтение и запись.

Успешный первый шаг говорит только о том, что адрес доступен и биржа отвечает. Про ключ он ничего не доказывает, это проверяет третий шаг. Если на нём пришла ошибка, смотрите код в поле retCode.

КодЧто пишет биржаЧто сверить
10002время запроса вне допустимого окначасы компьютера, синхронизацию времени
10003ключ недействителенсовпадают ли ключ и адрес среды
10004ошибка подписипорядок строки для подписи и секрет
10005доступ запрещёнправа ключа
10006превышен лимит запросовчастоту обращений
10010IP не совпадаетсписок адресов, привязанных к ключу
33004срок действия ключа истёк (код для деривативов)дату в параметрах ключа

Лимит запросов считается по каждому методу отдельно и на аккаунт, а сверху действует общий лимит по IP. Сам лимит биржа возвращает в заголовке ответа X-Bapi-Limit, остаток - в X-Bapi-Limit-Status, так что гадать не приходится.

Риски и ограничения. Ключ и секрет равны паролю: их не пересылают, не вставляют в чужие формы и не хранят в открытом виде. Поля и коды приведены по документации, живой запрос к бирже для этого разбора не отправлялся. Адреса, коды и правила биржа меняет, перед работой сверяйтесь с текущей документацией. Исправное подключение не гарантирует результата торговли: торговля связана с риском потери капитала. Материал образовательный, это не индивидуальная инвестиционная рекомендация.

Как биржа считает издержки сделки, отправленной по API, разобрано в ответе про комиссии Bybit на споте и фьючерсах.

Источники

График TradingView с сигналами Buy и Sell индикатора Midas
Midas multi-индикатор for TradingViewОдин из самых продвинутых индикаторов для трейдинга
  • Сигналы без перерисовки
  • Интерактивный теханализ
  • 7 стратегий на выбор
Midas multi-индикатор for TradingViewСигнал, стоп и 3 цели - прямо на графике
  • Сигнал фиксируется по закрытию свечи
  • Стоп и 3 цели строятся автоматически
  • План сделки виден до входа