Давным-давно. Когда Bitcoin стоил $600, а инфобизнесмены ходили в школу. Когда Виталик только мечтал о своем проекте, а криптовалюта для масс была лишь странной религией. Был запущен краудфандинг на создание биржи в Украине, и собрал краудфайндин в 2.7 раза больше необходимого, и была рождена биржа kuna.io. Биржа не была идеальной и на ней была лишь одна пара BTC/UAH, но она стала глотком свежего воздуха для всего криптосообщества Украины. Через биржу можно было с легкостью купить и продать криптовалюту в Украине. Никаких сложных форм KYC. Лишь кнопки Buy и Sell и стакан между ними. И это было прекрасно.
Уже тогда, что бы на биржу завести робота, который самостоятельно "нажимает" на Buy и Sell, было разработано Kuna API v2 - простой и понятный интерфейс для програмной работы с биржей. Эта документация все еще актуальна, но мы советуем переходить на API v3, так как скоро эта документация перестанет быть актуальной.
Добро пожаловать, в этот замысловатый мир технических терминов API v2!
https://kuna.io/api/v2/timestamp
1465845534 — временная метка в юникс-формате
https://kuna.io/api/v2/tickers/btcuah
{
"at": время на сервере,
"ticker": {
"buy": цена биткоина на покупку,
"sell": цена биткоина на продажу,
"low": наименьшая цена сделки за 24 часа,
"high": наибольшая цена сделки за 24 часа,
"last": цена последней сделки,
"vol": объём торгов в базовой валюте за 24 часа,
"amount": общая стоимость торгов в котируемое валюте за 24 часа
}
}
https://kuna.io/api/v2/depth?market=btcuah
{
"timestamp": временная метка
"asks": массив ордеров на продажу
[
[цена, объём]
],
"bids": массив ордеров на покупку
[
[цена, объём]
]
}
https://kuna.io/api/v2/trades?market=btcuah
[{
"id": идентификатор сделки,
"price": цена за биткоин,
"volume": объём в биткоинах,
"funds": объём в гривнах,
"market": идентификатор рынка,
"created_at": время сделки,
"side": всегда null
}]
Используются для получения пользовательской информации и для торгов. Для использования необходим API-токен, который можно создать в кабинете.
Все пользовательские запросы должны содержать параметры access_key
, tonce
и signature
.
Например: https://kuna.io/api/v2/members/me?access_key=dV6vEJe1CO&tonce=1465850766246&signature=secret
access_key — публичная часть API-токена, которая отображается в кабинете в разделе API
tonce — временная метка в юникс-формате с миллисекундами
signature — подпись
Подпись генерируется по алгоритму:
HEX(HMAC-SHA256("HTTP-verb|URI|params", secret_key))
HTTP-verb — это GET или POST
URI — стока запроса без домена
params — отсортированные параметры, включая access_key и tonce, но без подписи
secret_key — секретная часть API-токена
Например, запрос для получения истории торгов пользователя:
HEX(
HMAC-SHA256(
"GET|/api/v2/trades/my|access_key=dV6vEJe1CO&market=btcuah&tonce=1465850766246",
"AYifzxC3Xo"
)
)
Результат выполнения этой функции:
33a694498a2a70cb4ca9a7e28224321e20b41f10217604e9de80ff4ee8cf310e — это и будет подписью для данного запроса
https://kuna.io/api/v2/members/me
{
"email": электронная почта,
"activated": активирован ли акаунт,
"accounts": массив активов
[{
"currency": валюта,
"balance": доступная сумма,
"locked": заблокированная сумма
}]
}
POST https://kuna.io/api/v2/orders
Параметры:
side — buy или sell
volume — объём ордера в биткоинах
market — btcuah
price — цена за один биткоин
Ответ:
{
"id": идентификатор ордера,
"side": buy или sell,
"ord_type": тип ордера — limit или market,
"price": цена за биткоин,
"avg_price": средняя цена сделки по ордеру, для нового ордера — 0,
"state": состояние ордера, для нового ордера — wait,
"market": идентификатор рынка,
"created_at": время выставления ордера,
"volume": выставленный объём в биткоинах,
"remaining_volume": незаполненное количество биткоинов,
"executed_volume": заполненное количество биткоинов, для нового ордера — 0,
"trades_count": количество торгов по ордеру, для нового ордера — 0
}
POST https://kuna.io/api/v2/order/delete
Параметры:
id — идентификатор ордера
Ответ:
{
"id": идентификатор ордера,
"side": buy или sell,
"ord_type": тип ордера — limit или market,
"price": цена за биткоин,
"avg_price": средняя цена сделки по ордеру,
"state": состояние ордера — весгда wait,
"market": идентификатор рынка,
"created_at": время выставления ордера,
"volume": объём сделки в биткоинах,
"remaining_volume": незаполненное количество биткоинов,
"executed_volume": заполненное количество биткоинов,
"trades_count": количество сделок по ордеру
}
GET https://kuna.io/api/v2/orders
Параметры:
market — btcuah
Ответ:
[{
"id": идентификатор ордера,
"side": buy или sell,
"ord_type": тип ордера— limit или market,
"price": цена за биткоин,
"avg_price": средняя цена сделки по ордеру,
"state": состояние ордера — всегда wait,
"market": идентификатор рынка,
"created_at": время выставления ордера,
"volume": объём сделки в биткоинах,
"remaining_volume": оставшееся количество биткоинов,
"executed_volume": купленное количество биткоинов,
"trades_count": количество сделок по ордеру
}]
GET https://kuna.io/api/v2/trades/my
Параметры:
market — btcuah
Ответ:
[{
"id": идентификатор сделки,
"price": цена за биткоин,
"volume": объём в биткоинах,
"funds": объём в гривнах,
"market": идентификатор рынка,
"created_at": время сделки,
"side": bid или ask
}]