Skip to content
This repository has been archived by the owner on May 30, 2022. It is now read-only.

tiaanduplessis/luno-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

luno-api

Luno API wrapper



Built with ❤︎ by tiaanduplessis and contributors

Table of Contents

Table of Contents
  • About
  • Install
  • Usage
  • API
  • Contribute
  • License
  • About

    Promise based wrapper around the Luno API.

    Install

    $ npm install luno-api
    # OR
    $ yarn add luno-api

    Usage

    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

    Returns the latest ticker indicators.

    Parameters

    • pair String? 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

    • pair String? 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 time
    • pair String? 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

    • name String The label to use for this account e.g. "Trading ACC" (optional, default '')
    • currency String 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, default 0)

    getPendingTransactions

    Return a list of all pending transactions related to the account.

    Parameters

    getOrderList

    Returns a list of the most recently placed orders

    Parameters

    • state String? Filter to only orders of this state e.g. PENDING
    • pair String? Filter to only orders of this currency pair e.g. XBTZAR

    postOrder

    Create a new trade order.

    Parameters

    • type String "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 '')
    • pair String? The currency pair to trade e.g. XBTZAR (optional, default '')

    postMarketOrder

    Create a new market order.

    Parameters

    • type String "BUY" to buy bitcoin, or "SELL" to sell bitcoin (optional, default '')
    • volume String 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 '')
    • pair String The currency pair to trade e.g. XBTZAR

    stopOrder

    Request to stop an order.

    Parameters

    • id String The order reference as a string e.g. BXMC2CJ7HNB88U4 (optional, default '')

    getOrder

    Get an order by its id.

    Parameters

    • id String 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

    • since Number? Filter to trades on or after this timestamp, e.g. 1470810728478
    • limit Number? Limit to this number of trades (min 1, max 100, default 100)
    • pair String? 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

    • asset String Currency code of the asset e.g. XBT (optional, default '')
    • address String? 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

    • asset String 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

    • pair String? 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

    • type String 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 type
    • beneficiaryId String? 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 '')
    • currency String Currency to send e.g. XBT (optional, default '')
    • address String Destination Bitcoin address or email address to send to (optional, default '')
    • description String? Description for the transaction to record on the account statement
    • message String? 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

    • type String Possible types: BUY, SELL (optional, default '')
    • amount (String | Number) Amount to buy or sell in the pair base currency (optional, default '')
    • pair String? 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

    • id String 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

    • id String 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

    • id String ID of the quote to discard (optional, default '')

    Examples

    client.discardQuote(1234).then(console.log).catch(console.log)

    Contributing

    Contributions are welcome!

    1. Fork it.
    2. Create your feature branch: git checkout -b my-new-feature
    3. Commit your changes: git commit -am 'Add some feature'
    4. Push to the branch: git push origin my-new-feature
    5. Submit a pull request :D

    Or open up a issue.

    License

    Licensed under the MIT License.