These docs are for v3.0. Click to read the latest docs for v4.0.

Схема и сериализация данных в 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. Он для примера :)