#exmo-rest
npm install exmo-rest
OR
git clone https://github.com/VadimPride/exmo-rest.git
cd ./exmo-rest
npm install
const exmoREST = require('exmo-rest');
let API;
// Public and Private methods.
API = new exmoREST('K-apiKey', 'S-secretKey');
// OR (only Public api)
API = new exmoREST.Public();
#PUBLIC METHODS: This API does not require authorization.
/**
* trades - List of the deals on currency pairs
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#5a5a9c0d-cf17-47f6-9d62-6d4404ebd5ac
* @param pair
* @returns {Promise}
*/
await API.getTrades('BTC_USD,BTC_EUR');
/**
* order_book - The book of current orders on the currency pair
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#c60c51a8-e683-4f45-a000-820723d37871
* @param pair
* @param limit
* @returns {Promise}
*/
await API.getOrderBook('BTC_USD,BTC_EUR', 100);
/**
* ticker - Statistics on prices and volume of trades by currency pairs
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#4c8e6459-3503-4361-b012-c34bb9f7e385
* @returns {Promise}
*/
await API.getTiker();
/**
* pair_settings - Currency pairs settings
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#7de7e75c-5833-45a8-b937-c2276d235aaa
* @returns {Promise}
*/
await API.getPairSettings();
/**
* currency - Currencies list
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#20263fe7-bbcd-4bae-89f4-4f830a893c38
* @returns {Promise}
*/
await API.getCurrency();
/**
* currency/list/extended - Extended list of currencies
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#7cdf0ca8-9ff6-4cf3-aa33-bcec83155c49
* @returns {Promise}
*/
await API.getCurrencyListExtended();
/**
* required_amount - Calculating the sum of buying a certain amount of currency for the particular currency pair
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#21af9230-221b-4aea-8243-2fd3da72055b
* @param pair
* @param quantity
* @returns {Promise}
*/
await API.getRequiredAmount('BTC_USD', 11);
/**
* candles_history - Get candles history
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#65eeb949-74e5-4631-9184-c38387fe53e8
* @param symbol - (currency pair)
* @param resolution - (discreteness of candles, possible values: 1, 5, 15, 30, 45, 60, 120, 180, 240, D, W, M)
* @param from - (beginning of period)
* @param to - (end of period)
* @returns {Promise}
*/
await API.getCandlesHistory('BTC_USD', 30, 1609543108181, 1609548108142);
/**
* payments/providers/crypto/list - Crypto providers list
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#4190035d-24b1-453d-833b-37e0a52f88e2
* @returns {Promise}
*/
await API.getPaymentsProvidersCryptoList();
#PRIVATE METHODS: This API requires authorization.
/**
* user_info - Getting information about user's account
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#c8388df7-1f9f-4d41-81c4-5a387d171dc6
* @returns {Promise}
*/
await API.getUserInfo();
/**
* order_create - Order creation
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#80daa469-ec59-4d0a-b229-6a311d8dd1cd
* @param pair - currency pair
* @param quantity - quantity for the order
* @param price - price for the order
* @param type - type of order, can have the following values: PrivateAPI.ORDER_TYPE
* @param client_id - client id for the order (optional parameter, must be a positive integer)
* @returns {Promise}
*/
await API.orderCreate('BTC_USD', 3, 100, 'buy', 100500);
/**
* order_cancel - Order cancellation
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#1f710d4b-75bc-4b65-ad68-006f863a3f26
* @param order_id - order identifier
* @returns {Promise}
*/
await API.orderCancel(12345);
/**
* stop_market_order_create - Stop market order creation
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#de6f4321-eeac-468c-87f7-c4ad7062e265
* @param pair - currency pair
* @param quantity - quantity for the order
* @param trigger_price - price for the order
* @param type - type of order, can have the following values: [PrivateAPI.ORDER_TYPE.BUY, PrivateAPI.ORDER_TYPE.SELL]
* @param client_id - client id for the order (optional parameter, must be a positive integer)
* @returns {Promise<void>}
*/
await API.stopMarketOrderCreate('BTC_USD', 1.56789, 10000.56789, 'buy', 100500);
/**
* stop_market_order_cancel - Stop market order cancellation
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#a4d0aae8-28f7-41ac-94fd-c4030130453d
* @param parent_order_id - stop market order identifier
* @returns {Promise}
*/
await API.stopMarketOrderCancel(507056272792275327);
/**
* user_open_orders - Getting the list of user’s active orders
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#0e135370-daa4-4689-8acd-b6876dee9ba1
* @returns {Promise}
*/
await API.getUserOpenOrders();
/**
* user_trades - Getting the list of user’s deals
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#b8d8d9af-4f46-46a1-939b-ad261d79f452
* @param pair - one or various currency pairs separated by commas
* @param limit - the number of returned deals (default: 100, maximum: 100)
* @param offset - last deal offset (default: 0)
* @returns {Promise}
*/
await API.getUserTrades('BTC_USD,BTC_EUR', 100, 0);
/**
* user_cancelled_orders - Getting the list of user’s cancelled orders
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#a51be1d0-af5f-44e4-99d7-f7b04c6067d0
* @param limit
* @param offset
* @returns {Promise}
*/
await API.getUserCancelledOrders(100, 0);
/**
* order_trades - Getting the history of deals with the order
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#cf27781e-28e5-4b39-a52d-3110f5d22459
* @param order_id - order identifier
* @returns {Promise}
*/
await API.getOrderTrades(12345);
/**
* deposit_address - Getting the list of addresses for cryptocurrency deposit
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#c8f9ced9-7ab6-4383-a6a4-bc54469ba60e
* @returns {Promise}
*/
await API.getDepositAddress();
/**
* withdraw_crypt - Creation of the task for cryptocurrency withdrawal. ATTENTION!!!
* This API function is available only after request to the Technical Support.
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#3ab9c34d-ad58-4f87-9c57-2e2ea88a8325
* @param amount - Amount of currency to be withdrawn (required)
* @param currency - Name of the currency to be withdrawn (required)
* @param address - Withdrawal address (required)
* @param invoice - Additional identifier (optional)
* @param transport - The network in which the withdrawal will be made.
* If you do not specify, then the default network will be selected.
* Explanation: some currencies exist in several blockchains, and you can specify in which blockchain you want to
* withdraw tokens. (optional)
* @returns {Promise}
*/
await API.withdrawCrypt(10, 'USDT', '16UM5DoeHkV7Eb7tMfXSu..', 1234, 'ERC20');
/**
* withdraw_get_txid - Getting the transaction ID in order to keep track of it on blockchain
* @param task_id - withdrawal task identifier
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#22e31775-14b8-4a51-b023-5b115ea99219
* @returns {Promise}
*/
await API.getWithdrawTxid(467756);
//
// Excode API (https://documenter.getpostman.com/view/10287440/SzYXWKPi#16e6ce35-e8c8-47d5-9ec8-cd7a78c05105)
//
/**
* excode_create - EXCODE coupon creation
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#6d7f3363-601b-4525-a546-a3729cefc5a6
* @param currency - name of coupon currency
* @param amount - amount in the coupon
* @param login - login of user, who can upload EXCODE coupon (not necessary param, if it present -
* coupon can upload only this user or their creator)
* @returns {Promise}
*/
await API.excodeCreate('BTC', 10, 'test_user');
/**
* excode_load - EXCODE coupon uploading
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#9cd0b31b-fb83-44b9-ac85-4e3cc67c15f4
* @param code - code of the EXCODE coupon
* @returns {Promise}
*/
await API.excodeLoad('EX-CODE_9004_BTC7c3f8adc0b158658....');
/**
* code_check - EXCODE coupon checking
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#09750ed5-e6e1-472f-95d7-eea6ce913ec8
* @param code - code of the EXCODE coupon
* @returns {Promise}
*/
await API.excodeCheck('EX-CODE_9004_BTC7c3f8adc0b158658....');
//
// Wallet API (https://documenter.getpostman.com/view/10287440/SzYXWKPi#1530e970-5b30-4ef5-8781-e569dc6f4313)
//
/**
* wallet_history - Get history of wallet
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#31e69a33-4849-4e6a-b4b4-6d574238f6a7
* @param date - timestamp of the day (if empty got current day)
* @returns {Promise}
*/
await API.getWalletHistory(1609543108181);
/**
* wallet_operations - Get operations of wallet
* @link https://documenter.getpostman.com/view/10287440/SzYXWKPi#97f1becd-7aad-4e0e-babe-7bbe09e33706
* @param limit - the number of returned transactions (default: 100, maximum: 100)
* @param offset - last transaction offset (default: 0)
* @param currency - one currency name (optional parameter)
* @param provider - one provider name (optional parameter)
* @param type - type of transaction: deposit or withdraw (optional parameter)
* @param order_id - order identifier (optional parameter)
* @returns {Promise}
*/
await API.getWalletOperations(100, 0, 'BTC', 'BTC', 'withdrawal', 524587);