# Perp Price Levels (`flow_levels`)

> Executed volume profiles, value areas, thin zones, inferred long/short entries, realized liquidation prices and persistent resting walls across venues. Levels graded by traded, inferred or resting evidence, with confluence disclosed — not a price forecast.

- Category: Order flow & whales
- MCP tool: `flow_levels`
- REST: `GET /flow/levels/{symbol}`
- MCP App: hosts that support MCP Apps render the result as an interactive view
- x402 price: $0.03 per call (USDC on Base)
- HTML: https://www.f1ow.com/docs/tools/flow_levels

## What it does

Perp price levels for one coin, from what printed rather than from a chart: executed volume at price on every venue that lists it (the major perpetual exchanges), with the value area (70% of volume around the POC), high-volume nodes and thin zones (prices crossed without trading, where moves tend to run); open-interest changes at price split into long and short entries; realized liquidations at price (exchange liquidation sample); and resting walls from deep books on several venues, counted only when a second snapshot 2 s later still shows them. Every level is graded by evidence — traded (volume, liquidations) > inferred (OI side) > resting (orders, which can be pulled) — and lists the other evidence at the same price (confluence). Walls larger than their venue's own daily volume are flagged. Use it for where price may stall, accelerate or meet forced flow; it is not a forecast.

## Parameters

| Name | Type | In | Required | Description |
| --- | --- | --- | --- | --- |
| `symbol` | string | path | yes | Coin symbol, e.g. "WAVES". |
| `hours` | integer | query | no | Window in hours, 24–168. Default 72. |

## Call it

### cURL

```bash
curl "https://mcp.f1ow.com/v1/flow/levels/BTC?hours=24" \
  -H "Authorization: Bearer $F1OW_API_KEY"
```

### MCP

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "flow_levels",
    "arguments": {
      "symbol": "BTC",
      "hours": 24
    }
  }
}
```

### TypeScript

```ts
const res = await fetch("https://mcp.f1ow.com/v1/flow/levels/BTC?hours=24", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
```

### Python

```python
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/flow/levels/BTC?hours=24",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
```

### WebSocket

```jsonc
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "flow_levels",
    "arguments": {
      "symbol": "BTC",
      "hours": 24
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "flow_levels",
    "arguments": {
      "symbol": "BTC",
      "hours": 24
    },
    "intervalSeconds": 60
  }
}
```

### x402

```bash
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/flow/levels/BTC?hours=24"
```

## Sample response

Captured 2026-11-13. The JSON is what REST and WebSocket return and the `structuredContent` of an MCP call (trimmed):

```json
{
  "caveats": [
    "Evidence grades: traded (volume, realized liquidations) printed and is hard to fake; inferred (long/short entries) reads the side from OI × taker flow, or from price where the venue publishes no taker split; resting (walls) is intent and can be pulled at any time.",
    "Entries are OI changes placed where they happened, opened minus closed per side over the window: not positions still open.",
    "Volume spreads each candle (5-minute up to 72h, else 15-minute) across its high–low range, weighted toward its typical price. Wash trading on smaller venues inflates volume.",
    "Books show only what each venue's depth endpoint returns (see sources.books reach); on the majors that is a fraction of a percent, so walls there are near-touch only.",
    "Liquidations come from the OKX/Gate timing sample, a share of the market, never scaled up."
  ],
  "dailyRangePct": 8.77,
  "levels": [
    {
      "distancePct": -0.63,
      "evidence": "inferred",
      "kind": "long_entries",
      "onLadder": true,
      "outsized": false,
      "price": 68200,
      "priceHi": 68300,
      "priceLo": 68100,
      "readFromPrice": false,
      "strength": 1,
      "usd": 81119199,
      "withKinds": []
    },
    {
      "distancePct": -0.34,
      "evidence": "resting",
      "kind": "bid_wall",
      "onLadder": true,
      "outsized": false,
      "price": 68400,
      "priceHi": 68500,
      "priceLo": 68300,
      "readFromPrice": false,
      "strength": 1,
      "usd": 33934866,
      "venue": "BingX",
      "withKinds": []
    },
    {
      "distancePct": -0.05,
      "evidence": "resting",
      "kind": "bid_wall",
      "onLadder": true,
      "outsized": false,
      "price": 68600,
      "priceHi": 68700,
      "priceLo": 68500,
      "readFromPrice": false,
      "strength": 1,
      "usd": 50079990,
      "withKinds": []
    },
    {
      "distancePct": 0.24,
      "evidence": "resting",
      "kind": "ask_wall",
      "onLadder": true,
      "outsized": false,
      "price": 68800,
      "priceHi": 68900,
      "priceLo": 68700,
      "readFromPrice": false,
      "strength": 2,
      "usd": 48751475,
      "venue": "BingX",
      "withKinds": [
        "high_volume_node"
      ]
    },
    {
      "distancePct": 0.24,
      "evidence": "traded",
      "kind": "high_volume_node",
      "onLadder": true,
      "outsized": false,
      "price": 68800,
      "priceHi": 68900,
      "priceLo": 68700,
      "readFromPrice": false,
      "strength": 3,
      "usd": 2837990389,
      "withKinds": [
        "ask_wall"
      ]
    },
    {
      "distancePct": 0.53,
      "evidence": "traded",
      "kind": "short_liquidations",
      "onLadder": true,
      "outsized": false,
      "price": 69000,
      "priceHi": 69100,
      "priceLo": 68900,
      "readFromPrice": false,
      "strength": 2,
      "usd": 1681087,
      "withKinds": []
    },
    "… 6 more"
  ],
  "resistances": [
    {
      "distancePct": 0.24,
      "evidence": [
        "traded",
        "resting"
      ],
      "kinds": [
        "high_volume_node",
        "ask_wall"
      ],
      "outsized": false,
      "price": 68800,
      "strength": 3,
      "usd": 2886741864,
      "venue": "BingX"
    },
    {
      "distancePct": 0.53,
      "evidence": [
        "traded"
      ],
      "kinds": [
        "short_liquidations"
      ],
      "outsized": false,
      "price": 69000,
      "strength": 2,
      "usd": 1681087
    },
    {
      "distancePct": 0.68,
      "evidence": [
        "traded"
      ],
      "kinds": [
        "value_area_low"
      ],
      "outsized": false,
      "price": 69100,
      "strength": 2,
      "usd": 0
    }
  ],
  "rule": "strength 1–3 = evidence weight (POC 3; nodes, value-area edges, liquidations 2; entries 1.5; walls 1, halved when larger than their venue's day) + 0.5 for the largest of its kind + 1 per other evidence grade and 0.5 per other same-grade kind at that price (3 dots ≥ 3.5, 2 ≥ 2); value area = 70% of volume around the POC; high-volume node = local peak ≥ 1.5× the median bin and ≥ 1.35× the two bins e…",
  "sources": {
    "books": [
      {
        "persisted": true,
        "reachDownPct": -0.2,
        "reachUpPct": 0.21,
        "venue": "Binance"
      },
      {
        "persisted": true,
        "reachDownPct": -0.16,
        "reachUpPct": 0.14,
        "venue": "Bybit"
      },
      {
        "persisted": true,
        "reachDownPct": -1.31,
        "reachUpPct": 1.61,
        "venue": "BingX"
      },
      {
        "persisted": true,
        "reachDownPct": -0.01,
        "reachUpPct": 0.05,
        "venue": "Hyperliquid"
      }
    ],
    "flow": "Binance",
    "liquidations": [
      "OKX",
      "Gate"
    ],
    "takerCoveragePct": 100,
    "volume": [
      "Binance",
      "Bybit",
      "BingX",
      "Hyperliquid"
    ]
  },
  "sourcesFailed": [],
  "spot": 68633.25,
  "spotContext": {
    "inThinZone": false,
    "inValueArea": false,
    "nearestAbove": {
      "distancePct": 0.24,
      "evidence": "resting",
      "kind": "ask_wall",
      "onLadder": true,
      "outsized": false,
      "price": 68800,
      "priceHi": 68900,
      "priceLo": 68700,
      "readFromPrice": false,
      "strength": 2,
      "usd": 48751475,
      "venue": "BingX",
      "withKinds": [
        "high_volume_node"
      ]
    },
    "nearestBelow": {
      "distancePct": -0.34,
      "evidence": "resting",
      "kind": "bid_wall",
      "onLadder": true,
      "outsized": false,
      "price": 68400,
      "priceHi": 68500,
      "priceLo": 68300,
      "readFromPrice": false,
      "strength": 1,
      "usd": 33934866,
      "venue": "BingX",
      "withKinds": []
    }
  },
  "step": 200,
  "supports": [
    {
      "distancePct": -0.05,
      "evidence": [
        "resting"
      ],
      "kinds": [
        "bid_wall"
      ],
      "outsized": false,
      "price": 68600,
      "strength": 1,
      "usd": 50079990
    },
    {
      "distancePct": -0.34,
      "evidence": [
        "resting"
      ],
      "kinds": [
        "bid_wall"
      ],
      "outsized": false,
      "price": 68400,
      "strength": 1,
      "usd": 33934866,
      "venue": "BingX"
    },
    {
      "distancePct": -0.63,
      "evidence": [
        "inferred"
      ],
      "kinds": [
        "long_entries"
      ],
      "outsized": false,
      "price": 68200,
      "strength": 1,
      "usd": 81119199
    }
  ],
  "symbol": "BTC",
  "unconfirmedWalls": [],
  "valueArea": {
    "high": 73500,
    "low": 69100,
    "poc": 71400
  },
  "window": {
    "liquidatedUsd": 153332244,
    "oiChangePct": -4.38,
    "oiEndUsd": 6918409558,
    "oiStartUsd": 7235479303,
    "oiVenue": "Binance",
    "priceChangePct": -6.78,
    "priceEnd": 68644.4,
    "priceStart": 73634.6,
    "priceVenue": "Binance",
    "volumeUsd": 35787223162
  },
  "windowHours": 24,
  "generatedAt": "2026-11-13T08:06:12.4637708+00:00"
}
```

Over MCP the text report a model reads comes with it:

```text
BTC perp levels, last 24h, $200 bins. Volume: Binance, Bybit, BingX, Hyperliquid. Flow (OI, taker): Binance (taker side known on 100% of its volume). Liquidation sample: OKX, Gate. Books: Binance -0.2%/+0.2%, Bybit -0.2%/+0.1%, BingX -1.3%/+1.6%, Hyperliquid -0.0%/+0.0%.
  spot $68633.25 · outside the value area · POC $71400.00 · value area $69100.00–$73500.00
  resistance: $68800.00 (+0.2%, High-volume node + Ask wall ●●●); $69000.00 (+0.5%, Shorts liquidated ●●○); $69100.00 (+0.7%, Value area low ●●○)
  support: $68600.00 (-0.0%, Bid wall ●○○); $68400.00 (-0.3%, Bid wall ●○○); $68200.00 (-0.6%, Long entries ●○○)
  average 24h range 8.8% of price: levels within about ±4.4% are in a day's reach
  above (nearest first):
    +0.2%  $68800.00  High-volume node $2.84B [traded] · Ask wall $48.8M on BingX [resting]
    +0.5%  $69000.00  Shorts liquidated $1.7M [traded]
    +0.8%  $69200.00  Shorts liquidated $1.6M [traded]
    +0.7%  $69100.00  Value area low [traded]
    +4.0%  $71400.00  Volume POC $2.93B [traded]
    +4.3%  $71600.00  Long entries $88.6M [inferred]
  below (nearest first):
    -0.3%  $68400.00  Bid wall $33.9M on BingX [resting]
    -0.6%  $68200.00  Long entries $81.1M [inferred]
  Evidence: traded > inferred > resting. Resting orders can be pulled; not a forecast.
```

## Related tools

- [Whale Positions](https://www.f1ow.com/docs/tools/flow_whale_positions) — Live whale accounts: equity, side, notional, entry, leverage, unrealized PnL — and the reported liquidation price of each position.
- [Order Book](https://www.f1ow.com/docs/tools/flow_orderbook) — Best bid and ask, spread, depth and imbalance, with venue-labelled books and resting walls. Orders can be pulled: visible liquidity is evidence, not a promise of execution.
- [Whale Context](https://www.f1ow.com/docs/tools/flow_whale_context) — The cohort view: exchange reserve changes, top-trader long/short lean, and the large exchange-linked transfers that tend to arrive before a move does.
- [Market Regime](https://www.f1ow.com/docs/tools/research_regime) — What kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
