Схема и сериализация данных в API
Запросы
Доступ к данным осуществляется через стандартные HTTPS запросы в кодировке UTF-8. Данные отправляются и принимаются в формате JSON.
Домен
Для всех методов, публичных или приватных, используется один домен
https://api.kuna.io
К примеру, URL для получения актуального ордербука
https://api.kuna.io/v3/book/{market}
где {market}
это ключ пары: btcuah, kunbtc или другой
Заголовки (Headers)
Заголовки, которые нужны для успешного запроса.
Заголовок | Описание |
accept | Должен быть application/json |
content-type | Только для методов где есть тело. Должен быть application/json |
kun-nonce | Метка времени запроса. Указывается в формате Unix Time Stamp в милисекундах (ms). Только для приватных методов. | |
kun-apikey | Публичный ключ вашего API Token. Только для приватных методов. |
kun-signature | Подпись запроса. Только для приватных методов. |
Подпись для приватных методов
Каждый приватный метод требует подписи. Подпись нужно указать в заголовке запроса под ключом kun-signature
.
Она формируется по формуле
HEX (
HMAC-SHA384(
{apiPath} + {nonce} + JSON({body}),
{secretKey}
)
)
Где,
Значение | Описание |
---|---|
{apiPath} | Метод, к примеру /v3/auth/kuna_codes/count |
{nonce} | Метка времени запроса. Указывается в формате Unix Time Stamp в милисекундах (ms). Это же значние должно быть и в заголовке под ключем kun-nonce |
{body} | Данные, которые передаются в теле запроса. Должны быть в формате JSON. В случае GET методов, когда тело не передается, используется пустой JSON объект - {} . |
{secretKey} | Приватный ключ вашего API Token |
javascript
const crypto = require('crypto');
const publicKey = '';
const secretKey = '';
const apiPath = '/v3/auth/kuna_codes/issued-by-me';
const nonce = new Date().getTime();
const body = {};
const signatureString = `${apiPath}${nonce}${JSON.stringify(body)}`;
const signature = crypto
.createHmac('sha384', secretKey)
.update(signatureString)
.digest('hex');
console.log(signature); // выводит подпись в HEX формате
<?php
$public_key = "";
$secret_key = "";
$api_path = "/v3/auth/kuna_codes/issued-by-me";
$nonce = strval(date_timestamp_get(date_create())*1000);
$body = (object) array();
$signatureString = $api_path.$nonce.json_encode($body);
$signature = hash_hmac("sha384", $signatureString, $secret_key);
printf($signature); // выводит подпись в HEX формате
?>
bash
curl -X POST \
https://api.kuna.io/v3/auth/kuna_codes/issued-by-me \
-d '{}' \
-H 'accept: application/json' \
-H 'kun-nonce: 1560007410000' \
-H 'kun-apikey: vPNvF9ArqV4HqMzpAIyaLvToJJ1x1rfRZP5jNrQf' \
-H 'kun-signature: 0d34c19a5125d68fe2e7fb3a3b58e162cc53e166d1e7790deb5d79f6cb04aad1d5e01daeb3ecf8871c3b767a8ea289ea'
Не пытайтесь использовать этот API Key. Он для примера :)
Updated almost 3 years ago