Public API

Этот API не требует использования авторизации и доступен с помощью GET или POST запроса.

В общем виде URL для доступа к API выглядит следующим образом https:// /v1/{api_name}?{api_params} где api_name - это название API к которому происходит обращение, а api_params - входящие параметры запроса (если они необходимы)

Cписок валют биржи

Получаем информацию для начального заполнения блоков. Краткое и полное имя валюты, дата добавления и пр.

Наименование метода: GetMarkets
Входящие параметры нет
Пример использования
Возвращаемое значение
{
	"success" : true,
	"message" : "",
	"result" : [{
			"MarketCurrency" : "LTC",
			"BaseCurrency" : "BTC",
			"MarketCurrencyLong" : "Litecoin",
			"BaseCurrencyLong" : "Bitcoin",
			"MinTradeSize" : 0.01000000,
			"MarketName" : "BTC-LTC",
			"IsActive" : true,
			"Created" : "2014-02-13T00:00:00"
		}, {
			"MarketCurrency" : "DOGE",
			"BaseCurrency" : "BTC",
			"MarketCurrencyLong" : "Dogecoin",
			"BaseCurrencyLong" : "Bitcoin",
			"MinTradeSize" : 100.00000000,
			"MarketName" : "BTC-DOGE",
			"IsActive" : true,
			"Created" : "2014-02-13T00:00:00"
		}
    ]
	}
Описание полей
 

Cтатистика цен и объемов торгов по валютным парам

Получаем информацию для постоянного обновления блоков (цены, объемы и пр.)

Наименование метода: GetMarketSummaries
Входящие параметры нет
Пример использования
Возвращаемое значение
{
	"success" : true,
	"message" : "",
	"result" : [{
			"MarketName" : "BTC-888",
			"High" : 0.00000919,
			"Low" : 0.00000820,
			"Volume" : 74339.61396015,
			"Last" : 0.00000820,
			"BaseVolume" : 0.64966963,
			"TimeStamp" : "2014-07-09T07:19:30.15",
			"Bid" : 0.00000820,
			"Ask" : 0.00000831,
			"OpenBuyOrders" : 15,
			"OpenSellOrders" : 15,
			"PrevDay" : 0.00000821,
			"Created" : "2014-03-20T06:00:00",
			"DisplayMarketName" : null
		}, {
			"MarketName" : "BTC-A3C",
			"High" : 0.00000072,
			"Low" : 0.00000001,
			"Volume" : 166340678.42280999,
			"Last" : 0.00000005,
			"BaseVolume" : 17.59720424,
			"TimeStamp" : "2014-07-09T07:21:40.51",
			"Bid" : 0.00000004,
			"Ask" : 0.00000005,
			"OpenBuyOrders" : 18,
			"OpenSellOrders" : 18,
			"PrevDay" : 0.00000002,
			"Created" : "2014-05-30T07:57:49.637",
			"DisplayMarketName" : null
		}
    ]
	}
Описание полей
 

Список сделок по валютной паре

Получаем информацию сделок по валютной паре. Используется для обновления данных в "подробнее" о валюте (список buy/sell ордеров и общий список).

Наименование метода: GetMarketHistory
Входящие параметры market - валютная пара (пример BTC-LTC). обязательный параметр
Пример использования GetMarketHistory?market=BTC-ETH
Возвращаемое значение
{
	"success" : true,
	"message" : "",
	"result" : [{
			"Id" : 319435,
			"TimeStamp" : "2014-07-09T03:21:20.08",
			"Quantity" : 0.30802438,
			"Price" : 0.01263400,
			"Total" : 0.00389158,
			"FillType" : "FILL",
			"OrderType" : "BUY"
		}, {
			"Id" : 319433,
			"TimeStamp" : "2014-07-09T03:21:20.08",
			"Quantity" : 0.31820814,
			"Price" : 0.01262800,
			"Total" : 0.00401833,
			"FillType" : "PARTIAL_FILL",
			"OrderType" : "BUY"
		}
	]
	}
Описание полей
 

Формирования графика продаж

Используем для формирования графика в amchart`е продаж валюты и их объема

На текущий момент входной формат данных другой. Но лучьше делать в этом виде.

Наименование метода: GetTradePairChart
Входящие параметры

market - валютные пары (пример BTC-LTC). обязательный параметр

dataRange - число, интервал за который показываем данные ( [1...7] = [1d, 2d, 1w, 2w, 1m, 3m, 6m, All] )

dataGroup - групировка значений ( [1..7] = [15m, 30m, 1hr, 2hr, 4hr, 1d, 1d] )

timeStamp - начиная с какого времени выдавать данные (для обновления графика)

Пример использования GetTradePairChart?market=BTC-ETH&dataRange=3&dataGroup=2&timeStamp=1525709664067
Возвращаемое значение
[
	    'success': true,
	    'result': [
		'BTC-ETH': [
		    {
			"timestamp" : 1525709664067,
			"close" : 0.07802416,
			"open" : 0.07706612,
			"high" : 0.07823006,
			"low" : 0.07706612,
			"volume": 0,023323,
		    }, {
	    		"timestamp" : 1525713264067,
			"close" : 0.07794000,
			"open" : 0.07797594,
			"high" : 0.07816911,
			"low" : 0.07725639,
			"volume": 0,138,
		    }
		]
	    ]


	]
Описание полей

Authenticated API

Для доступа к данному API требуется авторизация и необходимо использовать POST метод.

URL — необходимо использовать следующий адрес https://api.exmo.com/v1/{api_name} где api_name - это наименование API метода

Авторизация осуществляется с помощью отправки на сервер следующих заголовков:

Key — Публичный ключ, его нужно взять настройках профиля пользователя
(пример: K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b)

Sign — POST данные (param=val&param1=val1), подписанные секретным ключом методом HMAC-SHA512, секретный ключ также нужно брать в настройках профиля пользователя

Существует возможность привязать несколько ключей к одному аккаунту для доступа к API. Для этого обращайтесь в техподдержку.

Дополнительно во всех запросах должен находиться обязательный POST-параметр nonce с инкрементным числовым значением (>0). Это значение не должно повторяться или уменьшаться в рамках пользователя.

На сервере для обработки запросов делаем связь: ключ = nonce, что-бы nonce был отдельный для каждого подключения (ключа).

Получение информации об аккаунте пользователя
Наименование метода: user_info
Входящие параметры
Пример использования api_query("user_info", Array());
Возвращаемое значение
{
  "uid": 10542,
  "server_date": 1435518576,
  "balances": {
    "BTC": "970.994",
    "USD": "949.47"
  },
  "reserved": {
    "BTC": "3",
    "USD": "0.5"
  }
}
Описание полей

uid - идентификатор пользоватля

server_date - дата и время сервера

balances - доступный баланс пользователя

reserved - баланс пользователя в ордерах

 

Создание ордера
Наименование метода: OrderCreate
Входящие параметры

pair - валютная пара

quantity - кол-во по ордеру

price - цена по ордеру

type - тип ордера, может принимать следующие значения:

  • buy - ордер на покупку
  • sell - ордер на продажу
  • market_buy - ордера на покупку по рынку
  • market_sell - ордер на продажу по рынку
  • market_buy_total - ордер на покупку по рынку на определенную сумму
  • market_sell_total - ордер на продажу по рынку на определенную сумму

Пример использования
Возвращаемое значение
{
        "result": true,
        "error": "",
        "order_id": 123456
    }
Описание полей
 
Отмена ордера
Наименование метода: order_cancel
Входящие параметры

order_id - идентификатор ордера

Пример использования api_query("order_cancel", Array("order_id"=>104235));
Возвращаемое значение
{
        "result": true,
        "error": ""
    }
Описание полей

result - true в случае успешного создания задачи на отмену ордера и false в случае ошибки

error - содержит текст ошибки

 

Получение списока открытых ордеров пользователя
Наименование метода: user_open_orders
Входящие параметры отсутствуют
Пример использования api_query("user_open_orders", Array());
Возвращаемое значение
{
    "BTC_USD": [
        {
            "order_id": "14",
            "created": "1435517311",
            "type": "buy",
            "pair": "BTC_USD",
            "price": "100",
            "quantity": "1",
            "amount": "100"
        }
    ]
    }
Описание полей

order_id - идентификатор ордера

created - дата и время создания ордера

type - тип ордера

pair - валютная пара

price - цена по ордеру

quantity - кол-во по ордеру

amount - сумма по ордеру

 

Получение сделок пользователя
Наименование метода: UserOrderList
Входящие параметры

pair - одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)

offset - смещение от последней сделки (по умолчанию 0)

limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000)

Пример использования api_query("user_trades", Array( "pair"=>"", "limit"=>100, "offset"=>0 ));
Возвращаемое значение
{
	"result" : success,
	"message" : "",
	"orders" : [{
	    "OrderId": 1,
	    ....
	}, {
	    "OrderId": 2,
	    ....
	}]
    }
Описание полей

trade_id - идентификатор сделки

date - дата и время сделки

type - тип сделки

pair - валютная пара

order_id - идентификатор ордера пользователя

quantity - кол-во по сделке

price - цена сделки

amount - сумма сделки

 

Получение отмененных ордеров пользователя
Наименование метода: user_cancelled_orders
Входящие параметры

offset - смещение от последней сделки (по умолчанию 0)

limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000)

Пример использования api_query("user_cancelled_orders", Array( "limit"=>100, "offset"=>0 ));
Возвращаемое значение
[
    {
        "date": 1435519742,
        "order_id": 15,
        "order_type": "sell",
        "pair": "BTC_USD",
        "price": 100,
        "quantity": 3,
        "amount": 300
    }
    ]
Описание полей

date - дата и время отмены ордера

order_id - идентификатор ордера

order_type - тип ордера

pair - валютная пара

price - цена по ордеру

quantity - кол-во по ордеру

amount - сумма по ордеру

 

Получение истории сделок ордера
Наименование метода: order_trades
Входящие параметры

order_id - идентификатор ордера

Пример использования api_query("order_trades", Array( "order_id"=>12345 ));
Возвращаемое значение
{
        "type": "buy",
        "in_currency": "BTC",
        "in_amount": "1",
        "out_currency": "USD",
        "out_amount": "100",
        "trades": [
        {
            "trade_id": 3,
            "date": 1435488248,
            "type": "buy",
            "pair": "BTC_USD",
            "order_id": 12345,
            "quantity": 1,
            "price": 100,
            "amount": 100
        }
    ]
    }
Описание полей

type - тип ордера

in_currency - валюта входящая

in_amount - кол-во входящей валюты

out_currency - валюта исходящая

out_amount - кол-во исходящей валюты

trades - массив сделок, где:

  • trade_id - идентификатор сделки
  • date - дата сделки
  • type - тип сделки
  • pair - валютная пара
  • order_id - идентификатор ордера
  • quantity - кол-во по сделке
  • price - цена по сделке
  • amount - сумма по сделке

 

Подсчет в какую сумму обойдется покупка определенного кол-ва валюты по конкретной валютной паре
Наименование метода: required_amount
Входящие параметры

pair - валютная пара

quantity - кол-во которое необходимо купить

Пример использования api_query("required_amount", Array( "pair"=>"BTC_USD", "quantity"=>"11" ));
Возвращаемое значение
{
        "quantity": 3,
        "amount": 5,
        "avg_price": 3.66666666
    }
Описание полей

quantity - кол-во которое вы сможете купить

amount - сумма на которую вы потратите на покупку

avg_price - средняя цена покупки

 

Получнение списка адресов для депозита криптовалют
Наименование метода: deposit_address
Входящие параметры

отсутствуют

Пример использования api_query("deposit_address", Array());
Возвращаемое значение
    {
        "BTC": "16UM5DoeHkV7Eb7tMfXSuQ2ueir1yj4P7d",
        "DOGE": "DEVfhgKErG5Nzas2FZJJH8Y8pjoLfVfWq4",
        "LTC": "LSJFhsVJM6GCFtSgRj5hHuK9gReLhNuKFb",
        "XRP": "rB2yjyFCoJaV8QCbj1UJzMnUnQJMrkhv3S,1234"
    }
	
Описание полей

WALLET API

Этот API вызывается аналогично Authenticated API.

Количество API вызовов ограничено 10 запросами в минуту с одного IP адреса.

Получение истории wallet

wallet_history
Наименование метода:
Входящие параметры

date - дата timestamp за которую нужно получить историю (если не указан берется текущий день)

Пример использования api_query("wallet_history", Array( "date"=>1493998000 ));
Возвращаемое значение
{
    "result": true,
    "error": "",
    "begin": "1493942400",
    "end": "1494028800",
    "history": [{
            "dt": 1461841192,
            "type": "deposit",
            "curr": "RUB",
            "status": "processing",
            "provider": "Qiwi (LA) [12345]",
            "amount": "1",
            "account": "",
        },{
            "dt": 1463414785,
            "type": "withdrawal",
            "curr": "USD",
            "status": "paid",
            "provider": "EXCODE",
            "amount": "-1",
            "account": "EX-CODE_19371_USDda...",
        }
        ]
    }
Описание полей

result - true в случае успешного получения истории, и false в случае ошибки

error - содержит описание ошибки

begin - начало периода

end - конец периода

history - массив операций пользователя (история кошелька), где:

dt - дата операции

type - тип

curr - валюта

status - статус

provider - провайдер

amount - сумма

account - счет

Внутренние API

Для доступа к данному API требуется создание уникального "кода" на строне сервера, и передача его в FrontEnd, необходимо использовать POST метод.

URL — необходимо использовать следующий адрес https://api.exmo.com/v1/{api_name} где api_name - это наименование API метода

Key — Внутренний ключ безопасности (ключ ядра = ключу FrontEnd`а)
(пример: S-7cc97c89aed2a2fd9ed7792d48d63f65800c447b)

Sign — POST данные (param=val&param1=val1), подписанные секретным ключом методом HMAC-SHA512, секретный ключ задается вручную

Регистрация пользователя

Регистрация пользоваля в "ядре" с frontend`а

Наименование метода: user_registration
Входящие параметры

email - email пользователя

passw - пароль пользователя в открытом виде

fields - массив полей для сохранения в ядре

Пример использования
Возвращаемое значение
{
	 "success": true,
	 "messages": "",
	 "id": "21321",
	 "api_key": "K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b",
	 "api_sign": "9aed2a2fd9ed779f3784aed3f6580034324320215"
	}
Описание полей

success - определяет результат операции

messages - системное сообщение об ошибке в случае ошибки

id - ID пользователя в ядре

api_key - ключ пользователя для API операций / начальный для FrontEnd`а /

api_sign - ключ пользователя для API операций (подпись запроса)

 

Получение списка ключей пользователя
Наименование метода: UserApiKeysGet
Входящие параметры

userId - ID пользователя в ядре

Пример использования
Возвращаемое значение
{
	 "success": true,
	 "messages": "",
	 "result": [{
                    "id" : "10223",
                    "Key" : "K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b",
                    "Sign" : "9aed2a2fd9ed779f3784aed3f6580034324320215",
    		    "isActive": 1
                }, {
	            "id" : "11259",
    	            "Key" : "K-3ef97w59aed25efd9ed7792d48d63f65800c4eeb",
                    "Sign" : "2aed2a2fd9ed779eda84aed3dea300de32ea20fea",
		    "isActive": 0
                }
                ]
	}
Описание полей

success - определяет результат операции

messages - системное сообщение об ошибке в случае ошибки

result - массив ключей и подписей зарегистрированных для пользователя

 

Изменение ключа пользователя

Служит для управления ключами пользователя. Удаление, генерация нового ключа.

Наименование метода: UserApiKeySet
Входящие параметры

userId - ID пользователя в ядре

keyId - ID ключа

action - действие с ключом (trash, refresh, new)

Пример использования
Возвращаемое значение
{
	 "success": true,
	 "messages": "",
	 "id": "11259",
	 "api_key": "K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b",
	 "api_sign": "9aed2a2fd9ed779f3784aed3f6580034324320215",
	}
Описание полей

success - определяет результат операции

messages - системное сообщение об ошибке в случае ошибки

id - ID измененного ключа

api_key - ключ пользователя

api_sign - ключ пользователя для API операций (подпись)

 

Вход в личный кабинет

Вход пользователя в личный кабинет в FrontEnd`е

Наименование метода: user_login
Входящие параметры

email - login пользователя

passw - пароль пользователя в открытом виде

Пример использования
Возвращаемое значение
{
	 "success": true,
	 "messages": "",
	 "id": "21321",
	 "api_key": "K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b",
	 "api_sign": "9aed2a2fd9ed779f3784aed3f6580034324320215"
	}
Описание полей

success - определяет результат операции

messages - системное сообщение об ошибке в случае ошибки

id - ID пользователя в ядре

api_key - ключ пользователя для API операций

api_sign - ключ пользователя для API операций (подпись запроса)