# Crypto Order Flow & CVD API
> Who is actually hitting the market — buyers or sellers — read live from Binance's aggregated trade tape, no key, nothing stored. Every trade carries a flag for which side was the aggressor: a taker buy lifts the ask, a taker sell hits the bid. Summing those over a window gives order flow — the net buying or selling pressure that price action follows — and its running total is the Cumulative Volume Delta (CVD), the metric order-flow traders watch to spot absorption and divergence. The flow endpoint scans the recent aggregated trades for a pair (up to 5,000) and returns the taker-buy and taker-sell volume in base and quote, the delta (buy minus sell), the CVD over the window, the buy/sell ratio, the share of volume that was buying, a net-pressure label and the time span covered. The large endpoint surfaces the big prints — single aggressive trades above a notional threshold — and tags each as a taker buy or sell, so you see the whale orders moving the tape, with the buy- and sell-side large-trade totals. The symbols endpoint lists tradable pairs. This is the trade-flow / CVD microstructure analytics cut for crypto — distinct from the raw recent-trades feed, the order-book depth and the price, ticker and slippage APIs in the catalogue. Pairs are Binance symbols (BTCUSDT) or a coin=BTC&quote=USDT form.

## 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/orderflow-api/..."
```

## Pricing
- **Free** (Free) — 450 calls/Mo, 2 req/s
- **Starter** ($12/Mo) — 11,500 calls/Mo, 6 req/s
- **Pro** ($37/Mo) — 68,000 calls/Mo, 18 req/s
- **Business** ($85/Mo) — 360,000 calls/Mo, 45 req/s

## Endpoints

### Order Flow

#### `GET /v1/flow` — Order flow, delta & CVD for a pair

**Parameters:**
- `symbol` (query, required, string) — Binance pair Example: `BTCUSDT`
- `trades` (query, optional, string) — Recent trades to scan (100-5000, default 1000) Example: `2000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/orderflow-api/v1/flow?symbol=BTCUSDT&trades=2000"
```

**Response:**
```json
{
    "data": {
        "note": "delta_quote (the CVD over the window) is taker-buy minus taker-sell quote volume; positive = net aggressive buying. Up to 5000 recent trades scanned (trades=N).",
        "source": "Binance",
        "symbol": "BTCUSDT",
        "pressure": "balanced",
        "cvd_quote": -42965.6,
        "buy_trades": 1066,
        "delta_base": -0.6786,
        "last_price": 63354.69,
        "delta_quote": -42965.6,
        "sell_trades": 934,
        "buy_sell_ratio": 0.9824,
        "taker_buy_base": 37.98445,
        "trades_scanned": 2000,
        "window_seconds": 338.4,
        "taker_buy_quote": 2406493.72,
        "taker_sell_base": 38.66305,
        "buy_volume_share": 0.4956,
        "taker_sell_quote": 2449459.32
    },
    "meta": {
        "timestamp": "2026-06-12T01:41:13.615Z",
        "request_id": "ecd0bc1c-c7d5-4b42-8019-04739c368b01"
    },
    "status": "ok",
    "message": "Flow retrieved successfully",
    "success": true
}
```

#### `GET /v1/large` — Large aggressive prints (whales)

**Parameters:**
- `symbol` (query, required, string) — Binance pair Example: `BTCUSDT`
- `min_notional` (query, optional, string) — Minimum trade size in quote currency Example: `100000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/orderflow-api/v1/large?symbol=BTCUSDT&min_notional=100000"
```

**Response:**
```json
{
    "data": {
        "note": "single aggressive aggregated trades at or above min_notional (default $100,000); side is the aggressor.",
        "source": "Binance",
        "symbol": "BTCUSDT",
        "largest": [
            {
                "qty": 2.98439,
                "side": "buy",
                "time": 1781228423554,
                "price": 63342.46,
                "notional_usd": 189038.6
            },
            {
                "qty": 2.76,
                "side": "buy",
                "time": 1781228423552,
                "price": 63342.46,
                "notional_usd": 174825.19
            },
            {
                "qty": 1.98418,
                "side": "buy",
                "time": 1781228389649,
                "price": 63369.53,
                "notional_usd": 125736.55
            },
            {
                "qty": 1.98418,
                "side": "buy",
                "time": 1781228389649,
                "price": 63364.25,
                "notional_usd": 125726.08
            },
            {
                "qty": 1.98418,
                "side": "buy",
                "time": 1781228389649,
                "price": 63361.54,
                "notional_usd": 125720.7
            },
            {
                "qty": 1.98418,
                "side": "buy",
                "time": 1781228389649,
                "price": 63358.99,
                "notional_usd": 125715.64
            },
            {
                "qty": 1.
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/symbols` — Tradable Binance pairs

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

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

**Response:**
```json
{
    "data": {
        "count": 435,
        "quote": "USDT",
        "source": "Binance",
        "symbols": [
            "0GUSDT",
            "1000CATUSDT",
            "1000CHEEMSUSDT",
            "1000SATSUSDT",
            "1INCHUSDT",
            "1MBABYDOGEUSDT",
            "2ZUSDT",
            "AAVEUSDT",
            "ACEUSDT",
            "ACHUSDT",
            "ACMUSDT",
            "ACTUSDT",
            "ACXUSDT",
            "ADAUSDT",
            "ADXUSDT",
            "AEURUSDT",
            "AEVOUSDT",
            "AGLDUSDT",
            "AIGENSYNUSDT",
            "AIUSDT",
            "AIXBTUSDT",
            "ALCXUSDT",
            "ALGOUSDT",
            "ALICEUSDT",
            "ALLOUSDT",
            "ALPINEUSDT",
            "ALTUSDT",
            "AMPUSDT",
            "ANIMEUSDT",
            "ANKRUSDT",
            "APEUSDT",
            "API3USDT",
            "APTUSDT",
            "ARBUSDT",
            "ARDRUSDT",
            "ARKMUSDT",
            "ARKUSDT",
            "ARPAUSDT",
            "ARUSDT",
            "ASRUSDT",
            "ASTERUSDT",
            "ASTRUSDT",
            "ATMUSDT",
            "ATOMUSDT",
            "ATUSDT",
            "AUCTIONUSDT",
            "AUDIOUSDT",
            "AUSDT",
            "AVAUSDT",
            "AVAXUSDT",
            "AVNTUSDT",
            "AWEUSDT",
            "AXLUSDT",
            "AXSUSDT",
            "BABYUSDT",
            "BANANAS31USDT",
            "BANANAUSDT",
          
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "symbol is a Binance pair (BTCUSDT) or coin=BTC&quote=USDT. flow scans up to 5000 recent trades (trades=N, default 1000). A taker buy lifts the ask; a taker sell hits the bid. delta_quote is the CVD over the window. Read fresh per call; only the tradable-symbol list is cached hourly.",
        "source": "Binance public REST (api.binance.com/api/v3/aggTrades, live)",
        "service": "orderflow-api",
        "endpoints": {
            "GET /v1/flow": "Taker buy/sell volume, delta/CVD, ratio and pressure for a pair (symbol=BTCUSDT, trades=1000).",
            "GET /v1/meta": "This document.",
            "GET /v1/large": "Large aggressive prints above a notional threshold, tagged buy/sell (symbol=BTCUSDT, min_notional=100000).",
            "GET /v1/symbols": "Tradable Binance pairs, optionally filtered by quote (quote=USDT)."
        },
        "description": "Crypto order flow and Cumulative Volume Delta (CVD), read live from Binance's aggregated trade tape, no key, nothing stored. flow scans recent trades for a pair and returns taker-buy vs taker-sell volume (base & quote), the delta/CVD, the buy/sell ratio, the buy-volume share and a net-pressure label. large surfaces the big aggressive prints above a notional threshold, each tagged buy or sell. symbols lists tradable pairs. The trade-flow / CVD microstructure analytics cut — distinct from the raw recent-trades feed, order-book depth and price/ticker APIs.",
        "trading_symbols": 137
…(truncated, see openapi.json for full schema)
```


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