Luno API

REST API for Luno market data, accounts, trading, transfers and withdrawals, plus a WebSocket market-data stream. Legacy API under /api/1/ and the newer Exchange API under /api/exchange/{1,2,3}/.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/luno-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

AsyncAPI Specification

luno-streaming-asyncapi.yml Raw ↑
generated: '2026-07-20'
method: generated
source: https://www.luno.com/developers/api (Streaming API) + github.com/luno/luno-go/streaming
spec_type: AsyncAPI
asyncapi: 2.6.0
info:
  title: Luno Streaming API
  version: '1'
  description: >-
    Real-time market data stream for the Luno Exchange. A client opens one
    WebSocket connection per trading pair, authenticates with its API key pair,
    receives an initial full order book snapshot, then a continuous sequence of
    update messages (create / delete / trade) that mutate the local order book.
    This AsyncAPI is an API Evangelist representation of the documented stream,
    not a Luno-published spec.
servers:
  production:
    url: ws.luno.com
    protocol: wss
    description: Luno market data streaming endpoint.
channels:
  /api/1/stream/{pair}:
    parameters:
      pair:
        description: Trading pair / market id, e.g. XBTZAR, ETHZAR.
        schema:
          type: string
    subscribe:
      operationId: streamMarketUpdates
      message:
        oneOf:
          - name: orderBookSnapshot
            summary: Initial full order book (sent once on connect).
            payload:
              type: object
              properties:
                sequence: { type: string }
                asks: { type: array }
                bids: { type: array }
          - name: update
            summary: Incremental order book / trade update.
            payload:
              type: object
              properties:
                sequence: { type: string }
                trade_updates: { type: array }
                create_update: { type: object }
                delete_update: { type: object }
                status_update: { type: object }
                timestamp: { type: integer }
notes: >-
  Authentication is the same API Key ID / Secret pair used for the REST API,
  sent in the initial subscription frame. Luno does not offer outbound webhooks;
  this WebSocket stream is its event/streaming surface.