{"openapi":"3.1.0","info":{"title":"Luno API","version":"1.0.0","description":"Live spot market data from Luno, the leading crypto exchange across Africa and emerging markets (South Africa, Nigeria, Uganda, Zambia, Malaysia, Indonesia) — served straight from its public API, no key, nothing cached. Get a pair's best bid/ask, last trade and 24h volume (in South African rand, Nigerian naira, Ugandan shilling, ringgit, rupiah and more); rank every pair for a quote currency by 24h volume; read live market depth; and list each market's trading limits, price and volume scales and status. A distinct African / emerging-markets venue with local-fiat pricing, separate from other exchange feeds. Note: XBT = Bitcoin.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/luno-api","description":"oanor gateway"}],"tags":[{"name":"Luno"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/markets":{"get":{"operationId":"get_v1_markets","tags":["Luno"],"summary":"Market specs — trading limits, scales and status","description":"","parameters":[{"name":"quote","in":"query","required":false,"description":"Filter by quote currency e.g. ZAR (omit for all)","schema":{"type":"string"},"example":"ZAR"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":25,"quote":"ZAR","source":"Luno","markets":[{"base":"SONIC","quote":"ZAR","market":"SONICZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"SKY","quote":"ZAR","market":"SKYZAR","status":"ACTIVE","fee_scale":8,"max_price":100,"min_price":0.01,"max_volume":100000,"min_volume":10,"price_scale":4,"volume_scale":0},{"base":"INJ","quote":"ZAR","market":"INJZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":1,"max_volume":10000,"min_volume":0.001,"price_scale":2,"volume_scale":2},{"base":"DOGE","quote":"ZAR","market":"DOGEZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":10000000,"min_volume":10,"price_scale":4,"volume_scale":0},{"base":"SNX","quote":"ZAR","market":"SNXZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"TRX","quote":"ZAR","market":"TRXZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"XLM","quote":"ZAR","market":"XLMZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"ALGO","quote":"ZAR","market":"ALGOZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"USDC","quote":"ZAR","market":"USDCZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"BCH","quote":"ZAR","market":"BCHZAR","status":"ACTIVE","fee_scale":8,"max_price":1000000,"min_price":100,"max_volume":1000,"min_volume":0.001,"price_scale":0,"volume_scale":4},{"base":"LTC","quote":"ZAR","market":"LTCZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":10000,"min_volume":0.001,"price_scale":0,"volume_scale":4},{"base":"UNI","quote":"ZAR","market":"UNIZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"LINK","quote":"ZAR","market":"LINKZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"ADA","quote":"ZAR","market":"ADAZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"AVAX","quote":"ZAR","market":"AVAXZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":10000,"min_volume":0.001,"price_scale":2,"volume_scale":4},{"base":"POL","quote":"ZAR","market":"POLZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"DOT","quote":"ZAR","market":"DOTZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"ATOM","quote":"ZAR","market":"ATOMZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":100000,"min_volume":0.1,"price_scale":2,"volume_scale":2},{"base":"CRV","quote":"ZAR","market":"CRVZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"AAVE","quote":"ZAR","market":"AAVEZAR","status":"ACTIVE","fee_scale":8,"max_price":1000000,"min_price":100,"max_volume":10000,"min_volume":0.001,"price_scale":0,"volume_scale":4},{"base":"SOL","quote":"ZAR","market":"SOLZAR","status":"ACTIVE","fee_scale":8,"max_price":100000,"min_price":10,"max_volume":10000,"min_volume":0.001,"price_scale":2,"volume_scale":4},{"base":"USDT","quote":"ZAR","market":"USDTZAR","status":"ACTIVE","fee_scale":8,"max_price":10000,"min_price":1,"max_volume":1000000,"min_volume":0.1,"price_scale":4,"volume_scale":2},{"base":"XRP","quote":"ZAR","market":"XRPZAR","status":"ACTIVE","fee_scale":8,"max_price":1000,"min_price":0.1,"max_volume":100000,"min_volume":1,"price_scale":2,"volume_scale":0},{"base":"ETH","quote":"ZAR","market":"ETHZAR","status":"ACTIVE","fee_scale":8,"max_price":2000000,"min_price":1000,"max_volume":100,"min_volume":0.0005,"price_scale":0,"volume_scale":6},{"base":"XBT","quote":"ZAR","market":"XBTZAR","status":"ACTIVE","fee_scale":8,"max_price":10000000,"min_price":10,"max_volume":100,"min_volume":0.0001,"price_scale":0,"volume_scale":6}]},"meta":{"timestamp":"2026-06-10T22:56:21.442Z","request_id":"05b0f45f-c148-45fd-9438-5ae8387daf9b"},"status":"ok","message":"Markets retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Luno"],"summary":"Service metadata and endpoint list","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Pairs are uppercase with no separator (e.g. XBTZAR). XBT = Bitcoin.","source":"Luno API (api.luno.com, live)","service":"luno-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/ticker":"Ticker for one pair (pair=XBTZAR or symbol=XBT&quote=ZAR; BTC maps to XBT).","GET /v1/markets":"Market specs — trading limits, scales and status (quote=ZAR optional).","GET /v1/tickers":"All pairs for a quote ranked by 24h volume (quote=ZAR, limit=50).","GET /v1/orderbook":"Live market depth — top bids and asks (pair=XBTZAR, limit=20)."},"pair_count":143,"description":"Live spot market data from Luno, the leading crypto exchange across Africa and emerging markets (South Africa, Nigeria, Uganda, Zambia, Malaysia, Indonesia). The ticker endpoint returns a pair's best bid/ask, last trade and 24h volume (in rand, naira, shilling, ringgit, rupiah and more); the tickers endpoint ranks every pair for a quote currency by 24h volume; the orderbook endpoint returns live market depth; the markets endpoint lists each market's trading limits, price/volume scales and status. Live, no key, nothing stored. A distinct African / emerging-markets venue with local-fiat pricing, separate from other exchange feeds.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-10T22:56:21.597Z","request_id":"f4cf970d-c048-4835-89d4-475d99ecaef8"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/orderbook":{"get":{"operationId":"get_v1_orderbook","tags":["Luno"],"summary":"Live market depth — top bids and asks","description":"","parameters":[{"name":"pair","in":"query","required":true,"description":"Pair base+quote uppercase","schema":{"type":"string"},"example":"XBTZAR"},{"name":"limit","in":"query","required":false,"description":"Levels per side 1-100 (default 20)","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"asks":[{"price":1023835,"volume":0.0878},{"price":1023836,"volume":0.02575},{"price":1023849,"volume":0.012759},{"price":1023863,"volume":0.012484},{"price":1023947,"volume":0.007145},{"price":1023951,"volume":0.056141},{"price":1024008,"volume":0.006992},{"price":1024102,"volume":0.000977},{"price":1024227,"volume":0.006969},{"price":1024558,"volume":0.053104},{"price":1024560,"volume":0.146939},{"price":1024705,"volume":0.01764},{"price":1024809,"volume":0.055675},{"price":1025015,"volume":0.5465},{"price":1025030,"volume":0.00731},{"price":1025370,"volume":0.000348},{"price":1025406,"volume":0.000122},{"price":1025415,"volume":0.000509},{"price":1025831,"volume":0.000431},{"price":1025867,"volume":0.000152}],"bids":[{"price":1023444,"volume":0.00073},{"price":1022834,"volume":0.150316},{"price":1022833,"volume":0.046242},{"price":1022770,"volume":0.001367},{"price":1022034,"volume":0.062333},{"price":1021983,"volume":0.0515},{"price":1021912,"volume":0.044338},{"price":1021902,"volume":0.000977},{"price":1021740,"volume":0.004397},{"price":1021302,"volume":0.000977},{"price":1020970,"volume":0.3},{"price":1020896,"volume":0.6565},{"price":1020895,"volume":0.37936},{"price":1020702,"volume":0.000977},{"price":1020174,"volume":0.3668},{"price":1019281,"volume":0.007},{"price":1019139,"volume":0.007},{"price":1019095,"volume":0.002449},{"price":1019002,"volume":0.0005},{"price":1019000,"volume":0.001}],"pair":"XBTZAR","source":"Luno","spread":391,"best_ask":1023835,"best_bid":1023444,"timestamp":1781132181653,"spread_pct":0.0382},"meta":{"timestamp":"2026-06-10T22:56:21.725Z","request_id":"0007b7dd-5679-4c78-9aeb-e3a8d53bf097"},"status":"ok","message":"Order book retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/ticker":{"get":{"operationId":"get_v1_ticker","tags":["Luno"],"summary":"Ticker for one pair","description":"","parameters":[{"name":"pair","in":"query","required":true,"description":"Pair base+quote uppercase (or use symbol & quote); XBT = Bitcoin","schema":{"type":"string"},"example":"XBTZAR"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"ask":1023835,"bid":1023444,"base":"XBT","last":1023057,"pair":"XBTZAR","quote":"ZAR","source":"Luno","spread":391,"status":"ACTIVE","timestamp":1781132181765,"volume_24h":35.126699},"meta":{"timestamp":"2026-06-10T22:56:21.856Z","request_id":"4e2c15d2-d557-42b3-b10d-e35a18595ec9"},"status":"ok","message":"Ticker retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/tickers":{"get":{"operationId":"get_v1_tickers","tags":["Luno"],"summary":"All pairs for a quote ranked by 24h volume","description":"","parameters":[{"name":"quote","in":"query","required":false,"description":"Quote currency e.g. ZAR, NGN (default ZAR)","schema":{"type":"string"},"example":"ZAR"},{"name":"limit","in":"query","required":false,"description":"Max results 1-200 (default 50)","schema":{"type":"string"},"example":"50"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":25,"quote":"ZAR","total":25,"source":"Luno","tickers":[{"ask":16.6744,"bid":16.6743,"base":"USDT","last":16.6728,"pair":"USDTZAR","quote":"ZAR","spread":0.0001,"status":"ACTIVE","timestamp":1781132181651,"volume_24h":1900592.29},{"ask":18.28,"bid":18.27,"base":"XRP","last":18.26,"pair":"XRPZAR","quote":"ZAR","spread":0.01,"status":"ACTIVE","timestamp":1781132181148,"volume_24h":1108246},{"ask":1.3947,"bid":1.3572,"base":"DOGE","last":1.375,"pair":"DOGEZAR","quote":"ZAR","spread":0.0375,"status":"ACTIVE","timestamp":1781132100891,"volume_24h":584970},{"ask":16.6901,"bid":16.69,"base":"USDC","last":16.69,"pair":"USDCZAR","quote":"ZAR","spread":0.0001,"status":"ACTIVE","timestamp":1781132181755,"volume_24h":187544.67},{"ask":3.5999,"bid":3.468,"base":"CRV","last":3.52,"pair":"CRVZAR","quote":"ZAR","spread":0.1319,"status":"ACTIVE","timestamp":1781132101447,"volume_24h":168513.71},{"ask":2.6884,"bid":2.6639,"base":"ADA","last":2.65,"pair":"ADAZAR","quote":"ZAR","spread":0.0245,"status":"ACTIVE","timestamp":1781132181705,"volume_24h":77571.19},{"ask":3.17,"bid":3.0099,"base":"XLM","last":3.0099,"pair":"XLMZAR","quote":"ZAR","spread":0.1601,"status":"ACTIVE","timestamp":1781132101054,"volume_24h":61070.33},{"ask":1.5304,"bid":1.4501,"base":"ALGO","last":1.4501,"pair":"ALGOZAR","quote":"ZAR","spread":0.0803,"status":"ACTIVE","timestamp":1781132101089,"volume_24h":2655.32},{"ask":16.4,"bid":16,"base":"DOT","last":16,"pair":"DOTZAR","quote":"ZAR","spread":0.4,"status":"ACTIVE","timestamp":1781132101405,"volume_24h":1906.38},{"ask":1050.29,"bid":1047.52,"base":"SOL","last":1047.87,"pair":"SOLZAR","quote":"ZAR","spread":2.77,"status":"ACTIVE","timestamp":1781132181698,"volume_24h":1715.9285},{"ask":1.3491,"bid":1.1985,"base":"POL","last":1.2458,"pair":"POLZAR","quote":"ZAR","spread":0.1506,"status":"ACTIVE","timestamp":1781132101387,"volume_24h":1599.93},{"ask":5.52,"bid":5.31,"base":"TRX","last":5.39,"pair":"TRXZAR","quote":"ZAR","spread":0.21,"status":"ACTIVE","timestamp":1781132100992,"volume_24h":1346.3},{"ask":127.85,"bid":106.49,"base":"AVAX","last":106.49,"pair":"AVAXZAR","quote":"ZAR","spread":21.36,"status":"ACTIVE","timestamp":1781132101347,"volume_24h":1174.3283},{"ask":30.83,"bid":29.5,"base":"ATOM","last":29.68,"pair":"ATOMZAR","quote":"ZAR","spread":1.33,"status":"ACTIVE","timestamp":1781132101421,"volume_24h":1154.86},{"ask":127.96,"bid":116.06,"base":"LINK","last":127,"pair":"LINKZAR","quote":"ZAR","spread":11.9,"status":"ACTIVE","timestamp":1781132101253,"volume_24h":361.76},{"ask":26985,"bid":26978,"base":"ETH","last":27001,"pair":"ETHZAR","quote":"ZAR","spread":7,"status":"ACTIVE","timestamp":1781132180900,"volume_24h":266.12436},{"ask":40.01,"bid":40,"base":"UNI","last":40,"pair":"UNIZAR","quote":"ZAR","spread":0.01,"status":"ACTIVE","timestamp":1781132101221,"volume_24h":184.19},{"ask":695,"bid":693,"base":"LTC","last":690,"pair":"LTCZAR","quote":"ZAR","spread":2,"status":"ACTIVE","timestamp":1781132159341,"volume_24h":91.2056},{"ask":4.5,"bid":4,"base":"SNX","last":4,"pair":"SNXZAR","quote":"ZAR","spread":0.5,"status":"ACTIVE","timestamp":1781132100954,"volume_24h":47.68},{"ask":1023835,"bid":1023444,"base":"XBT","last":1023057,"pair":"XBTZAR","quote":"ZAR","spread":391,"status":"ACTIVE","timestamp":1781132181765,"volume_24h":35.126699},{"ask":89.99,"bid":78,"base":"INJ","last":78,"pair":"INJZAR","quote":"ZAR","spread":11.99,"status":"ACTIVE","timestamp":1781132100782,"volume_24h":0.26},{"ask":1103,"bid":991,"base":"AAVE","last":976,"pair":"AAVEZAR","quote":"ZAR","spread":112,"status":"ACTIVE","timestamp":1781132101488,"volume_24h":0.0109},{"ask":3750,"bid":3003,"base":"BCH","last":3800,"pair":"BCHZAR","quote":"ZAR","spread":747,"status":"ACTIVE","timestamp":1781132101170,"volume_24h":0},{"ask":1.1,"bid":0.95,"base":"SKY","last":0.95,"pair":"SKYZAR","quote":"ZAR","spread":0.15,"status":"ACTIVE","timestamp":1781132100682,"volume_24h":0},{"ask":1,"bid":0,"base":"SONIC","last":1,"pair":"SONICZAR","quote":"ZAR","spread":1,"status":"ACTIVE","timestamp":1781132100017,"volume_24h":0}]},"meta":{"timestamp":"2026-06-10T22:56:22.026Z","request_id":"eebdeb4c-df1b-46d5-9ab4-302965e0a5d0"},"status":"ok","message":"Tickers retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3650,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":925,"monthly_call_quota":83000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2475,"monthly_call_quota":435000,"rps_limit":15,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":5950,"monthly_call_quota":2710000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/luno-api"}