luno-api v1.2.2
About
Promise based wrapper around the Luno API.
Install
$ npm install luno-api
# OR
$ yarn add luno-apiUsage
Wrapper requires a key and secret that can be found in your settings
const Luno = require('luno-api')
const client = new Luno({
key: 'YOUR_KEY',
secret: 'YOUR_SECRET',
defaultPair: 'XBTZAR' // Default pair that is used for requests. if not provided, it will be set to XBTZAR
})
client.getTicker().then(console.log).catch(console.log)See API section for all possible methods.
API
Table of Contents
- getTicker
- getAllTickers
- getOrderBook
- getTrades
- createAccount
- getBalances
- getTransactions
- getPendingTransactions
- getOrderList
- postOrder
- postMarketOrder
- stopOrder
- getOrder
- getTradesList
- getReceiveAddress
- createReceiveAddress
- getFeeInfo
- getWithdrawalRequests
- requestWithdrawal
- getWithdrawalStatus
- cancelWithdrawalRequest
- send
- createQuote
- getQuote
- exerciseQuote
- discardQuote
getTicker
Returns the latest ticker indicators.
Parameters
pairString? Currency pair e.g. XBTZAR (optional, default'')
Examples
client.getTicker().then(console.log).catch(console.log)getAllTickers
Returns the latest ticker indicators from all active Luno exchanges.
Examples
client.getAllTickers().then(console.log).catch(console.log)getOrderBook
Returns a list of bids and asks in the order book
Parameters
pairString? Currency pair e.g. XBTZAR (optional, default'')
Examples
client.getOrderBook().then(console.log).catch(console.log)getTrades
Returns a list of the most recent trades. At most 100 results are returned per call.
Parameters
since(Number | String | Date)? Fetch trades executed after this timepairString? Currency pair e.g. XBTZAR (optional, default'')
Examples
client.getTrades(new Date('7/7/7')).then(console.log).catch(console.log)createAccount
Create an additional account for the specified currency.
Parameters
nameString The label to use for this account e.g. "Trading ACC" (optional, default'')currencyString The currency code for the account you want to create e.g. XBT, IDR, MYR, ZAR (optional, default'')
getBalances
Return the list of all accounts and their respective balances.
Examples
client.getBalances().then(console.log).catch(console.log)getTransactions
Return a list of transaction entries from an account. By default fetches the 100 most recent rows.
Parameters
id(String | Number) Account ID (optional, default'')minRow(String | Number)? Minimum of the row range to return (inclusive) (optional, default-100)maxRow(String | Number)? Maximum of the row range to return (exclusive) (optional, default0)
getPendingTransactions
Return a list of all pending transactions related to the account.
Parameters
getOrderList
Returns a list of the most recently placed orders
Parameters
stateString? Filter to only orders of this state e.g. PENDINGpairString? Filter to only orders of this currency pair e.g. XBTZAR
postOrder
Create a new trade order.
Parameters
typeString "BID" for a bid (buy) limit order or "ASK" for an ask (sell) limit order (optional, default'')volume(String | Number) Amount of Bitcoin to buy or sell as a decimal string in units of BTC e.g. "1.423" (optional, default'')price(String | Number) Limit price as a decimal string in units of ZAR/BTC e.g. "1200". (optional, default'')pairString? The currency pair to trade e.g. XBTZAR (optional, default'')
postMarketOrder
Create a new market order.
Parameters
typeString "BUY" to buy bitcoin, or "SELL" to sell bitcoin (optional, default'')volumeString For a "BUY" order: amount of local currency (e.g. ZAR, MYR) to spend as a decimal string in units of the local currency e.g. "100.50". For a "SELL" order: amount of Bitcoin to sell as a decimal string in units of BTC e.g. "1.423". (optional, default'')pairString The currency pair to trade e.g. XBTZAR
stopOrder
Request to stop an order.
Parameters
idString The order reference as a string e.g. BXMC2CJ7HNB88U4 (optional, default'')
getOrder
Get an order by its id.
Parameters
idString The order ID (optional, default'')
Examples
client.getOrder(1234).then(console.log).catch(console.log)getTradesList
Returns a list of your recent trades for a given pair, sorted by oldest first.
Parameters
sinceNumber? Filter to trades on or after this timestamp, e.g. 1470810728478limitNumber? Limit to this number of trades (min 1, max 100, default 100)pairString? Filter to trades of this currency pair e.g. XBTZAR
Examples
client.getTradesList(new Date('7/7/7'), 50).then(console.log).catch(console.log)getReceiveAddress
Returns the default receive address associated with your account and the amount received via the address. You can specify an optional address parameter to return information for a non-default receive address. In the response, total_received is the total confirmed Bitcoin amount received excluding unconfirmed transactions. total_unconfirmed is the total sum of unconfirmed receive transactions.
Parameters
assetString Currency code of the asset e.g. XBT (optional, default'')addressString? Specific Bitcoin address to retrieve. If not provided, the default address will be used
Examples
client.getReceiveAddress('XBT').then(console.log).catch(console.log)createReceiveAddress
Allocates a new receive address to your account. There is a rate limit of 1 address per hour, but bursts of up to 10 addresses are allowed.
Parameters
assetString Currency code of the asset e.g. XBT (optional, default'')
Examples
client.createReceiveAddress('XBT').then(console.log).catch(console.log)getFeeInfo
Returns your fees and 30 day trading volume (as of midnight) for a given pair.
Parameters
pairString? Filter to trades of this currency pair e.g. XBTZAR (optional, default'')
Examples
client.getFeeInfo('XBTZAR').then(console.log).catch(console.log)getWithdrawalRequests
Returns a list of withdrawal requests.
Examples
client.getWithdrawalRequests().then(console.log).catch(console.log)requestWithdrawal
Creates a new withdrawal request.
Parameters
typeString Withdrawal types e.g. ZAR_EFT, NAD_EFT, KES_MPESA, MYR_IBG, IDR_LLG (optional, default'')amount(String | Number) Amount to withdraw. The currency depends on the typebeneficiaryIdString? The beneficiary ID of the bank account the withdrawal will be paid out to. This parameter is required if you have multiple bank accounts.
Examples
client.requestWithdrawal('ZAR_EFT', 1000)getWithdrawalStatus
Returns the status of a particular withdrawal request.
Parameters
Examples
client.getWithdrawalStatus(1234).then(console.log).catch(console.log)cancelWithdrawalRequest
Cancel a withdrawal request. This can only be done if the request is still in state PENDING.
Parameters
Examples
client.cancelWithdrawalRequest(1234).then(console.log).catch(console.log)send
Send Bitcoin from your account to a Bitcoin address or email address.
Parameters
amount(String | Number) Amount to send as a decimal string (optional, default'')currencyString Currency to send e.g. XBT (optional, default'')addressString Destination Bitcoin address or email address to send to (optional, default'')descriptionString? Description for the transaction to record on the account statementmessageString? Message to send to the recipient. This is only relevant when sending to an email address
Examples
client.send(1000, 'XBT', 'foo@bar.com')createQuote
Creates a new quote to buy or sell a particular amount.
Parameters
typeString Possible types: BUY, SELL (optional, default'')amount(String | Number) Amount to buy or sell in the pair base currency (optional, default'')pairString? Currency pair to trade e.g. XBTZAR, XBTMYR. The pair can also be flipped if you want to buy or sell the counter currency (e.g. ZARXBT) (optional, default'')
Examples
client.createQuote('BUY', 1000).then(console.log).catch(console.log)getQuote
Get the latest status of a quote.
Parameters
idString ID of the quote to retrieve (optional, default'')
Examples
client.getQuote(1234).then(console.log).catch(console.log)exerciseQuote
Exercise a quote to perform the trade. If there is sufficient balance available in your account, it will be debited and the counter amount credited. An error is returned if the quote has expired or if you have insufficient available balance.
Parameters
idString ID of the quote to exercise (optional, default'')
Examples
client.exerciseQuote(1234).then(console.log).catch(console.log)discardQuote
Discard a quote. Once a quote has been discarded, it cannot be exercised even if it has not expired yet.
Parameters
idString ID of the quote to discard (optional, default'')
Examples
client.discardQuote(1234).then(console.log).catch(console.log)Contributing
Contributions are welcome!
- Fork it.
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
Or open up a issue.
License
Licensed under the MIT License.