# BitoPro Exchange API
> 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.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/bitopro-api/..."
```

## Pricing
- **Free** (Free) — 30,000 calls/Mo, 5 req/s
- **Starter** ($7/Mo) — 360,000 calls/Mo, 15 req/s
- **Pro** ($21/Mo) — 1,550,000 calls/Mo, 40 req/s
- **Scale** ($50/Mo) — 5,600,000 calls/Mo, 120 req/s

## Endpoints

### Market

#### `GET /v1/orderbook` — Live bid/ask depth for a pair

**Parameters:**
- `pair` (query, required, string) — Pair in base_quote form Example: `btc_twd`
- `limit` (query, optional, string) — Depth per side (max 100) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bitopro-api/v1/orderbook?pair=btc_twd&limit=20"
```

**Response:**
```json
{
    "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,
                "cumula
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/ticker` — Ticker for a pair (or all pairs)

**Parameters:**
- `pair` (query, optional, string) — Pair in base_quote form; omit for all pairs Example: `btc_twd`
- `quote` (query, optional, string) — Filter all-pairs by quote currency Example: `twd`
- `limit` (query, optional, string) — Max pairs when listing all Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bitopro-api/v1/ticker?pair=btc_twd&quote=twd&limit=100"
```

**Response:**
```json
{
    "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
}
```

#### `GET /v1/trades` — Most recent executed trades for a pair

**Parameters:**
- `pair` (query, required, string) — Pair in base_quote form Example: `btc_twd`
- `limit` (query, optional, string) — Max trades (max 200) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bitopro-api/v1/trades?pair=btc_twd&limit=30"
```

**Response:**
```json
{
    "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,
         
…(truncated, see openapi.json for full schema)
```

### Reference

#### `GET /v1/pairs` — All tradable markets with precision & limits

**Parameters:**
- `quote` (query, optional, string) — Filter by quote currency Example: `twd`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bitopro-api/v1/pairs?quote=twd"
```

**Response:**
```json
{
    "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,
           
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bitopro-api/v1/meta"
```

**Response:**
```json
{
    "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 
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/bitopro-api
OpenAPI spec: https://www.oanor.com/api/bitopro-api/openapi.json
