API криптобирж
Обращение к API происходит по адресу: http://api.btcindex.io/crex/?method={method}
, где
{method}
— метод API.
Методы:
method=tickers (по умолчанию)
Параметры:
- type - тип (список см. в методе ticker_types, поле name)
- count - кол-во записей (по умолчанию 1000, макс. 1000)
- tickers - список идентификаторов тикеров, через запятую, макс. 30
- tm - timestamp в секундах, от которого начать вывод данных, по умолчанию - count последних записей
- api_key - ключ
Параметр tickers формируется следующим образом: exchange:symbol
Exchange: имя биржи (список см. в методе exchanges)
Symbol: наименование пары токенов (список токенов см. в методе products), например ethbtc, сначала base-токен (который продаем/покупаем), потом quote-токен (в котором указываем цену).
Пример: binance:ethbtc - курс eth к btc на бирже binance
В качестве наименования биржи можно указать “all” - означает “агрегированный курс со всех бирж”.
Если в symbol токены указать через тире, то будет рассчитан кросс-курс через btc, например binance:eth-usdt означает “кросс курс eth к usdt через btc на binance”. Можно также указать кросс-токен, добавив его между base и quote, например: binance:ltc-eth-usdt означает “кросс курс ltc к usdt через eth на binance”.
Пример:
http://api.btcindex.io/crex/?type=1h&count=10&tickers=binance:ethbtc,bitfinex:ethbtc&api_key=
{
"type": "1h", // запрошенный тип тикера
"tm": 1534298400, // запрошенный tm
"dt": "2018-08-15 02:00:00", // запрошенный tm в utc
"count": 10, // кол-во
"tickers": {
1534298400: { // время начала периода
"dt": "2018-08-15 02:00:00", // время начала периода в utc
"binance:ethbtc": { // первый тикер
"average": 0.04590245, // средневзвешенная цена торгов
"buy_volume": 6179.74199828, // объем покупок
"sell_volume": 6030.61199786, // объем продаж
"open": 0.045414, // цена на начало периода (первая сделка)
"high": 0.046369, // максимальная цена за период
"low": 0.045403, // минимальная цена за период
"close": 0.045713 // цена на конец периода (последняя сделка)
},
"bitfinex:ethbtc": { // второй тикер
}
}
}
}
method=ticker_types
Список типов тикеров. Например: 1s - одна секунда, 15m - 15 минут и т.п. Суффикс “a” (1da) означает “скользящее среднее” - т.е. “последние 24 часа”, вместо 1d (за текущие сутки по UTC). 1w - недельные тикеры начинаются в понедельник. 1M - месячные тикеры начинаются первого числа. 1Ma - скользящее среднее за 30 дней.
Пример:
http://api.btcindex.io/crex/?method=ticker_types&api_key=
{
"types": {
"1s": {
"id": 1,
"name": "1s", // название
"update_period": 1 // периодичность пересчета, в секундах
},
"15s": {
"id": 2,
"name": "15s",
"update_period": 3
},
}
method=exchanges
Список бирж.
Пример:
http://api.btcindex.io/crex/?method=exchanges&api_key=
method=products
Список токенов.
Пример:
API через Websocket
Обращение к API происходит по адресу: wss://btcindex.io/ws
Для получения тикеров в реальном времени отправляем json:
{
"method": "subscribe", // подписка на обновления
"type": "1s", // тип, см. ticker_types выше)
"ticker": "binance:ethbtc" // биржа+пара
}
Описание формата параметра ticker см. выше.
Для подписки на несколько тикеров отправляем несколько подписок.
В ответ получаем:
{
"method":"subscribed", // подписан
"type":"1s",
"ticker":"binance:ethbtc"
}
Далее при каждом пересчете тикера получаем сообщение:
{
"method":"data", // данные
"type":"1s", // тип тикера
"ticker":"binance:ethbtc", // наименование
"timestamp":1534329887, // время начала периода
"datetime":"2018-08-15 10:44:47", // время начала периода в UTC
// описание полей см. выше
"average":0.04471875,
"buy_volume":0.186,
"sell_volume":0.132,
"open":0.044717,
"high":0.04472,
"low":0.044717,
"close":0.044717
}
На каждый timestamp сервер отправляет несколько сообщений (при каждом пересчете данных за период).