{"openapi":"3.1.0","info":{"title":"BitoPro Exchange API","version":"1.0.0","description":"Live market data from BitoPro, Taiwan's largest regulated retail crypto exchange, straight from its public v3 REST API. This is the single-venue New-Taiwan-Dollar (TWD) order-flow view. The ticker endpoint returns the last price, 24h change, 24h high/low and 24h base volume for any listed pair (BTC_TWD, ETH_TWD, USDT_TWD …), or every pair at once ranked by volume. The orderbook endpoint returns the live aggregated bid/ask depth with per-level price, size and order count, plus the resulting best bid/ask and spread. The trades endpoint returns the most recent executed trades with price, amount, side and time. The pairs endpoint lists every tradable market with its base/quote, precision and order limits, and which markets are in maintenance. Together they answer \"what does BTC cost in New Taiwan Dollars on BitoPro right now, how deep is the book, and what just traded\" — a single-venue TWD-denominated exchange view, distinct from the aggregated cross-exchange market, whole-market overview and other regional exchange APIs in the catalogue. Live, no key on the upstream, nothing stored.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/bitopro-api","description":"oanor gateway"}],"tags":[{"name":"Market"},{"name":"Reference"},{"name":"Meta"}],"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/orderbook":{"get":{"operationId":"get_v1_orderbook","tags":["Market"],"summary":"Live bid/ask depth for a pair","description":"","parameters":[{"name":"pair","in":"query","required":true,"description":"Pair in base_quote form","schema":{"type":"string"},"example":"btc_twd"},{"name":"limit","in":"query","required":false,"description":"Depth per side (max 100)","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"asks":[{"count":1,"price":2005523,"amount":0.0111,"cumulative":0.0111},{"count":1,"price":2006230,"amount":0.0159,"cumulative":0.027},{"count":1,"price":2007102,"amount":0.1564,"cumulative":0.1834},{"count":1,"price":2007103,"amount":0.0002,"cumulative":0.1836},{"count":1,"price":2008001,"amount":0.00043907,"cumulative":0.18403907}],"bids":[{"count":1,"price":2005125,"amount":0.0024,"cumulative":0.0024},{"count":2,"price":2003740,"amount":0.0298,"cumulative":0.0322},{"count":1,"price":2002888,"amount":0.0249,"cumulative":0.0571},{"count":1,"price":2002867,"amount":7.865e-5,"cumulative":0.05717865},{"count":1,"price":2002830,"amount":0.00022752,"cumulative":0.05740617}],"pair":"btc_twd","source":"BitoPro","spread":398,"best_ask":2005523,"best_bid":2005125,"exchange":"BitoPro","spread_pct":0.0198},"meta":{"timestamp":"2026-06-12T01:42:07.751Z","request_id":"875dead4-f662-4fc2-91a2-805aee773141"},"status":"ok","message":"Orderbook 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":["Market"],"summary":"Ticker for a pair (or all pairs)","description":"","parameters":[{"name":"pair","in":"query","required":false,"description":"Pair in base_quote form; omit for all pairs","schema":{"type":"string"},"example":"btc_twd"},{"name":"quote","in":"query","required":false,"description":"Filter all-pairs by quote currency","schema":{"type":"string"},"example":"twd"},{"name":"limit","in":"query","required":false,"description":"Max pairs when listing all","schema":{"type":"string"},"example":"100"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"pair":"btc_twd","source":"BitoPro","low_24h":1968236,"exchange":"BitoPro","high_24h":2021445,"last_price":2005125,"change_24h_pct":1.41,"volume_24h_base":16.325778,"last_taker_was_buyer":true},"meta":{"timestamp":"2026-06-12T01:42:08.078Z","request_id":"3e7eb398-298d-4fd5-ad1d-1bce30668550"},"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/trades":{"get":{"operationId":"get_v1_trades","tags":["Market"],"summary":"Most recent executed trades for a pair","description":"","parameters":[{"name":"pair","in":"query","required":true,"description":"Pair in base_quote form","schema":{"type":"string"},"example":"btc_twd"},{"name":"limit","in":"query","required":false,"description":"Max trades (max 200)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"pair":"btc_twd","count":30,"source":"BitoPro","trades":[{"side":"buy","price":2005125,"amount":0.0024,"timestamp":"2026-06-12T01:39:28.000Z"},{"side":"buy","price":2005390,"amount":7.868e-5,"timestamp":"2026-06-12T01:39:05.000Z"},{"side":"buy","price":2005390,"amount":0.0009,"timestamp":"2026-06-12T01:39:00.000Z"},{"side":"buy","price":2005079,"amount":4.479e-5,"timestamp":"2026-06-12T01:38:00.000Z"},{"side":"buy","price":2004760,"amount":0.0002,"timestamp":"2026-06-12T01:37:55.000Z"},{"side":"buy","price":2003740,"amount":0.00017491,"timestamp":"2026-06-12T01:30:56.000Z"},{"side":"buy","price":2003584,"amount":8.964e-5,"timestamp":"2026-06-12T01:28:15.000Z"},{"side":"sell","price":2002867,"amount":0.00013873,"timestamp":"2026-06-12T01:28:14.000Z"},{"side":"buy","price":2003740,"amount":0.0004,"timestamp":"2026-06-12T01:28:10.000Z"},{"side":"sell","price":2003610,"amount":0.00035287,"timestamp":"2026-06-12T01:27:24.000Z"},{"side":"sell","price":2003610,"amount":0.00023508,"timestamp":"2026-06-12T01:27:24.000Z"},{"side":"sell","price":2003610,"amount":0.00023508,"timestamp":"2026-06-12T01:27:24.000Z"},{"side":"sell","price":2003610,"amount":0.00023508,"timestamp":"2026-06-12T01:27:24.000Z"},{"side":"sell","price":2003610,"amount":0.00021031,"timestamp":"2026-06-12T01:27:24.000Z"},{"side":"sell","price":2003610,"amount":0.00023508,"timestamp":"2026-06-12T01:27:23.000Z"},{"side":"sell","price":2003740,"amount":0.00052509,"timestamp":"2026-06-12T01:26:57.000Z"},{"side":"sell","price":2003740,"amount":8.349e-5,"timestamp":"2026-06-12T01:24:40.000Z"},{"side":"sell","price":2003794,"amount":0.04934882,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2004241,"amount":0.00041627,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2004462,"amount":0.00046694,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2005000,"amount":0.0002381,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2005025,"amount":0.00026637,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2005343,"amount":0.0183,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2006391,"amount":0.00023484,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2006000,"amount":0.00029726,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2005792,"amount":0.00028841,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2006480,"amount":0.00031428,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2005343,"amount":0.0004393,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2006527,"amount":0.00024896,"timestamp":"2026-06-12T01:24:35.000Z"},{"side":"sell","price":2006289,"amount":0.00022752,"timestamp":"2026-06-12T01:24:35.000Z"}],"exchange":"BitoPro"},"meta":{"timestamp":"2026-06-12T01:42:09.052Z","request_id":"4b49e433-21d9-4ffc-a889-d71059c243e0"},"status":"ok","message":"Trades 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/pairs":{"get":{"operationId":"get_v1_pairs","tags":["Reference"],"summary":"All tradable markets with precision & limits","description":"","parameters":[{"name":"quote","in":"query","required":false,"description":"Filter by quote currency","schema":{"type":"string"},"example":"twd"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":19,"pairs":[{"base":"shib","pair":"shib_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":5500000000,"min_base_amount":100000,"quote_precision":6,"min_market_buy_quote":70},{"base":"bnb","pair":"bnb_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.01,"quote_precision":1,"min_market_buy_quote":155},{"base":"xaut","pair":"xaut_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":10,"min_base_amount":0.001,"quote_precision":0,"min_market_buy_quote":100},{"base":"ape","pair":"ape_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":10000000,"min_base_amount":1,"quote_precision":2,"min_market_buy_quote":130},{"base":"usdc","pair":"usdc_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.01,"quote_precision":3,"min_market_buy_quote":1},{"base":"kaia","pair":"kaia_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":200000,"min_base_amount":1,"quote_precision":4,"min_market_buy_quote":100},{"base":"eth","pair":"eth_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.0001,"quote_precision":0,"min_market_buy_quote":15},{"base":"ltc","pair":"ltc_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.001,"quote_precision":1,"min_market_buy_quote":5},{"base":"doge","pair":"doge_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":1,"quote_precision":4,"min_market_buy_quote":5},{"base":"ton","pair":"ton_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":480286,"min_base_amount":1,"quote_precision":2,"min_market_buy_quote":38},{"base":"pol","pair":"pol_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":1,"quote_precision":3,"min_market_buy_quote":45},{"base":"bch","pair":"bch_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.001,"quote_precision":1,"min_market_buy_quote":15},{"base":"usdt","pair":"usdt_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":1,"quote_precision":3,"min_market_buy_quote":35},{"base":"xrp","pair":"xrp_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":1,"quote_precision":3,"min_market_buy_quote":40},{"base":"btc","pair":"btc_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.0001,"quote_precision":0,"min_market_buy_quote":190},{"base":"bito","pair":"bito_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":50,"quote_precision":3,"min_market_buy_quote":350},{"base":"trx","pair":"trx_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":10,"quote_precision":4,"min_market_buy_quote":50},{"base":"ada","pair":"ada_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.1,"quote_precision":4,"min_market_buy_quote":5},{"base":"sol","pair":"sol_twd","quote":"twd","base_precision":8,"in_maintenance":false,"max_base_amount":100000000,"min_base_amount":0.01,"quote_precision":2,"min_market_buy_quote":20}],"source":"BitoPro","exchange":"BitoPro"},"meta":{"timestamp":"2026-06-12T01:42:09.373Z","request_id":"eeddfff4-ed71-4701-84e9-a38495958a7f"},"status":"ok","message":"Pairs 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":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"pair is BitoPro's base_quote form (btc_twd, eth_twd, usdt_twd); BTCTWD / BTC-TWD are normalised. The default quote market is TWD (New Taiwan Dollar). The orderbook is fetched full and sliced to the requested depth, so any depth up to 100 is valid.","source":"BitoPro public API (api.bitopro.com/v3, live)","service":"bitopro-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/pairs":"All tradable markets with base/quote, precision and order limits (quote=twd optional).","GET /v1/ticker":"Ticker for one pair (pair=btc_twd) — last price, 24h change/high/low/volume. Omit pair for all pairs (quote=twd, limit=100).","GET /v1/trades":"Most recent executed trades for a pair (pair=btc_twd, limit=30).","GET /v1/orderbook":"Live bid/ask depth for a pair with spread (pair=btc_twd, limit=20)."},"description":"Live market data from BitoPro, Taiwan's largest regulated retail crypto exchange, via its public v3 REST API. The single-venue New-Taiwan-Dollar (TWD) order-flow view: ticker (last price, 24h change/high/low/volume for any pair), orderbook (live bid/ask depth with size, order count and spread), trades (most recent executions with side and time) and pairs (every tradable market with precision and limits). Live, no key, nothing stored. A single-venue TWD-denominated view distinct from the aggregated cross-exchange, whole-market and other regional exchange APIs.","btc_twd_last":2005125,"upstream_status":"ok"},"meta":{"timestamp":"2026-06-12T01:42:09.707Z","request_id":"3f3fe856-2a64-410a-9172-fffbd95d8f10"},"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"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":30000,"rps_limit":5,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":730,"monthly_call_quota":360000,"rps_limit":15,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2140,"monthly_call_quota":1550000,"rps_limit":40,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":4960,"monthly_call_quota":5600000,"rps_limit":120,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/bitopro-api"}