Integration

Luno integration

Luno is a cryptocurrency exchange and wallet (South Africa, Nigeria, Malaysia, Indonesia, Uganda and more). Read public market data (tickers, order books, recent trades, market rules), read balances, account statements, orders, trades, fees, transfers and withdrawals, and act for real on the account: place and cancel limit and market orders, send crypto, request and cancel fiat withdrawals, move funds between own accounts and create accounts. Orders and crypto sends cannot be reversed once executed. Bank beneficiary routes (bank account numbers) and receive address routes (wallet addresses) are not exposed, and counterparty wallet addresses are not returned in statements. Rate limit: 300 calls per minute (HTTP 429 above it). Authentication is HTTP Basic with an API key id as the username and its secret as the password, created under Settings, API keys on luno.com; each key only reaches the functions its permissions allow (each tool names the permission it needs). Market data tools also answer without a key.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Luno.Built from the 36 Luno tools below, on the connection you add once.

What you can do with Luno

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Withdrawal, 4 operations

  • cancel_withdrawalCancel withdrawalDELETECancels a fiat withdrawal request for real; only possible while it is still PENDING. Needs Perm_W_Withdrawals.
  • create_withdrawalCreate withdrawalPOSTRequests a real fiat withdrawal to a bank beneficiary saved in the Luno app (type picks the method, e.g. ZAR_EFT). Cancel it with cancel_withdrawal while still PENDING. Needs Perm_W_Withdrawals.
  • get_withdrawalGet withdrawalGETReturns one fiat withdrawal request with its status, amount and fee. Needs Perm_R_Withdrawals.
  • list_withdrawalsList withdrawalsGETLists the user's fiat withdrawal requests, newest first, with amount, fee and status. Page with before_id. Needs Perm_R_Withdrawals.

Order, 3 operations

  • get_orderGet orderGETReturns one order by its order id (v1 shape: state, limit price and volume, filled amounts, fees). get_order_v2 adds side, status and account ids. Needs Perm_R_Orders.
  • get_order_v2Get order v2GETReturns one order by its order id (v2 shape: side, status, type, account ids, filled amounts, fees). Data is archived 100 days after an order completes. Needs Perm_R_Orders.
  • get_order_v3Get order v3GETReturns one order by its order id or by your client_order_id (give exactly one of the two), v2 shape. Needs Perm_R_Orders.

Listorder, 2 operations

  • list_ordersList ordersGETLists the user's most recently placed orders (v1 shape: state PENDING or COMPLETE, fees), optionally only open ones (state=PENDING) or one pair. list_orders_v2 adds side, status and client_order_id. Needs Perm_R_Orders.
  • list_orders_v2List orders v2GETLists the user's most recent orders, newest first (v2 shape: side, status, type, stop price, client_order_id): open orders by default, closed ones with closed=true. Data is archived 100 days after an order completes. Needs Perm_R_Orders.

Move, 2 operations

  • create_moveCreate movePOSTMoves funds for real between two of the user's own transactional accounts in the same currency. It may still be running on return: poll get_move. Moves show as transactions, not transfers.
  • get_moveGet moveGETReturns one move of funds between the user's accounts, by id or by client_move_id (exactly one of the two), with its status. Poll it after create_move.

Ticker, 2 operations

  • get_tickerGet tickerGETReturns the latest ticker of one currency pair: best bid and ask, last trade price, 24-hour volume and market status. Public, no key needed.
  • list_tickersList tickersGETReturns the latest tickers of every active market, or of the pairs given. Public, no key needed.

Account, 1 operation

  • create_accountCreate accountPOSTCreates a new account (wallet) in the given currency for the user, with a label. Users must be verified to trade that currency and may hold at most 10 accounts per currency. Needs Perm_W_Addresses.

Balance, 1 operation

  • get_balancesGet balancesGETLists all accounts of the user with their balance, reserved and unconfirmed amounts, optionally filtered by currency or account type. Returns the account ids the other tools take. Needs Perm_R_Balance.

Candle, 1 operation

  • list_candlesList candlesGETReturns candlesticks (open, high, low, close, volume) for a pair from since until now, oldest first, at most 1000 per call. Needs an API key (any permission).

Convert, 1 operation

  • convert_fundsConvert fundsPOSTConverts funds for real between a ZAR and a ZARU account at a 1:1 rate (the only supported conversion); the same idempotency_key returns the first result. Needs MP_Transfers.

Fee info, 1 operation

  • get_fee_infoGet fee infoGETReturns the user's maker and taker fee rates (buy and sell) and 30-day trading volume (as of midnight) for one currency pair. Needs Perm_R_Orders.

Linked, 1 operation

  • list_linked_usersList linked usersGETLists the other Luno users linked to this API key (multi-access), with the permissions the key holds over each user.

List move, 1 operation

  • list_movesList movesGETLists the user's most recent moves of funds between own accounts, newest first (up to 100 by default).

Listtrade, 1 operation

  • list_my_tradesList my tradesGETLists the user's own recent trades for one currency pair, oldest first (newest first when before is given or sort_desc is true), with fees and the order each belongs to. Needs Perm_R_Orders.

Market, 1 operation

  • list_marketsList marketsGETLists every market (or the pairs given) with its trading status, minimum and maximum order price and volume, and decimal scales. Public, no key needed.

Marketorder, 1 operation

  • create_market_orderCreate market orderPOSTPlaces a real market order that executes immediately at market prices: BUY spends counter_volume of the counter currency, SELL sells base_volume of the base currency. Executed orders cannot be reversed. Needs Perm_W_Orders.

Name, 1 operation

  • update_account_nameUpdate account namePUTRenames an account (changes its label). Needs Perm_W_Addresses.

Network, 1 operation

  • list_send_networksList send networksGETLists the blockchain networks the user can send a currency on; pass a network id to send_crypto. Needs no permission.

Orderbook, 1 operation

  • get_orderbookGet orderbookGETReturns every bid and ask in the order book of one currency pair (asks by price ascending, bids by price descending, not aggregated). Can be large: prefer get_orderbook_top. Public, no key needed.

Orderbook top, 1 operation

  • get_orderbook_topGet orderbook topGETReturns the best 100 bids and asks of one currency pair, orders at the same price aggregated (asks by price ascending, bids descending). Public, no key needed.

Pending, 1 operation

  • list_pending_transactionsList pending transactionsGETLists the transactions of an account that have not completed yet. Pending entries are not numbered and may be reordered, deleted or updated at any time. Needs Perm_R_Transactions.

Postorder, 1 operation

  • create_limit_orderCreate limit orderPOSTPlaces a real limit order (BID buys, ASK sells) at a price, or a stop-limit order when stop_price is set; it may fill at once. Executed orders cannot be reversed; cancel an open one with cancel_order. Needs Perm_W_Orders.

Send, 1 operation

  • send_cryptoSend cryptoPOSTSends cryptocurrency for real from an account to a receive address (or a Luno user's email) of the same currency. Crypto sends are irreversible. Check the fee with get_send_fee first. Needs Perm_W_Send.

Send fee, 1 operation

  • get_send_feeGet send feeGETCalculates the fee a crypto send would cost, to a receive address or a Luno user's email. Read-only: it sends nothing. Needs no permission.

Stoporder, 1 operation

  • cancel_orderCancel orderPOSTCancels (stops) an open order for real; success tells whether it worked. A completed order cannot be reversed. Needs Perm_W_Orders.

Trade, 1 operation

  • list_tradesList tradesGETLists recent public trades of one currency pair, newest first: at most 100 per call and never older than 24 hours. Public, no key needed.

Transaction, 1 operation

  • list_transactionsList transactionsGETLists statement entries of an account by row range: rows count from 1 (oldest), min_row inclusive, max_row exclusive, at most 1000 per call; min_row=-100 with max_row=0 gives the latest 100. Needs Perm_R_Transactions.

Transfer, 1 operation

  • list_transfersList transfersGETLists the most recent confirmed transfers of one account, newest first: bank transfers, card payments and on-chain sends and receives that reached the available balance. Needs Perm_R_Transfers.

Validate, 1 operation

  • validate_send_addressValidate send addressPOSTRegisters a counterparty against Travel Rule requirements before a send (type send, the default) or to resolve a quarantined deposit (type receive). It records the counterparty details you give; it moves no funds. Needs Perm_W_Send.

Use Luno from Claude Code, Cursor or Codex

Connect Luno in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Luno operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Luno

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Luno once

    Add your Luno connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Luno integration FAQ

What can you do with the Luno integration?

LiveContext exposes 36 operations on Luno, covering withdrawal, order, listorder and move.

Popular integrations

Browse the whole catalog