# OBV & Volume Screener (Multi-Asset) API
> Which markets are under accumulation or distribution and where volume is surging, computed live from Yahoo Finance (no key, nothing stored). Price tells you what is happening; volume tells you whether to believe it. On-Balance Volume adds the day's volume when a market closes up and subtracts it when it closes down, so a rising OBV means buyers are in control (accumulation) and a falling OBV means sellers are (distribution) — and a divergence between OBV and price is an early warning of a turn. A volume surge — today's volume well above its recent average — flags conviction behind a move. For a cross-asset, cross-sector universe — equity indices and sectors, gold, oil, commodities, bonds and crypto — this computes each asset's OBV trend over the last month, its latest volume versus the 20-day average, and tags it accumulation, distribution or neutral. The screener endpoint returns the markets under accumulation and distribution and the ones with a volume surge. The asset endpoint returns one market's OBV/volume card. The universe endpoint lists what is covered. The cross-asset volume / OBV screener cut — distinct from the bring-your-own-candle volume-indicator API and the crypto volume-profile API; it adds the volume dimension the price-only screeners miss.

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

## Pricing
- **Free** (Free) — 840 calls/Mo, 2 req/s
- **Starter** ($10/Mo) — 18,600 calls/Mo, 6 req/s
- **Pro** ($31/Mo) — 92,500 calls/Mo, 16 req/s
- **Business** ($73/Mo) — 502,000 calls/Mo, 40 req/s

## Endpoints

### Screener

#### `GET /v1/screener` — Cross-asset board with accumulation/distribution and volume surges

**Parameters:**
- `class` (query, optional, string) — Filter by class: equities, sector, commodities, bonds, crypto Example: `sector`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/obv-api/v1/screener?class=sector"
```

**Response:**
```json
{
    "data": {
        "note": "Each market's On-Balance Volume trend over ~20 days (positive = accumulation/buying pressure, negative = distribution) and its latest volume versus the 20-day average (volume_ratio >= 1.5 = a surge). OBV confirms or warns against the price move. Sorted by OBV trend (strongest accumulation first).",
        "class": "sector",
        "assets": [
            {
                "key": "health_care",
                "class": "sector",
                "label": "Health Care",
                "money_flow": "strong accumulation",
                "volume_ratio": 0.95,
                "volume_surge": false,
                "latest_volume": 10546400,
                "avg_volume_20d": 11126215,
                "obv_trend_20d_pct": 59.7
            },
            {
                "key": "utilities",
                "class": "sector",
                "label": "Utilities",
                "money_flow": "strong accumulation",
                "volume_ratio": 0.9,
                "volume_surge": false,
                "latest_volume": 19144400,
                "avg_volume_20d": 21259410,
                "obv_trend_20d_pct": 59.2
            },
            {
                "key": "real_estate",
                "class": "sector",
                "label": "Real Estate",
                "money_flow": "strong accumulation",
                "volume_ratio": 1.12,
                "volume_surge": false,
                "latest_volume": 5513200,
                "avg_vol
…(truncated, see openapi.json for full schema)
```

### Asset

#### `GET /v1/asset` — One market OBV / volume card

**Parameters:**
- `asset` (query, required, string) — Asset key (see /v1/universe) Example: `sp500`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/obv-api/v1/asset?asset=sp500"
```

**Response:**
```json
{
    "data": {
        "key": "sp500",
        "note": "One market's volume card: the OBV trend over ~20 days (accumulation vs distribution), the latest volume and 20-day average, and whether volume is surging (>=1.5x average).",
        "class": "equities",
        "label": "S&P 500",
        "source": "Yahoo Finance",
        "symbol": "SPY",
        "money_flow": "strong accumulation",
        "volume_ratio": 1.67,
        "volume_surge": true,
        "latest_volume": 86176700,
        "avg_volume_20d": 51531220,
        "obv_trend_20d_pct": 15
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:00.614Z",
        "request_id": "5eda5e24-8f95-4191-b34f-ffa01691ae39"
    },
    "status": "ok",
    "message": "Asset retrieved successfully",
    "success": true
}
```

### Universe

#### `GET /v1/universe` — Supported instruments

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

**Response:**
```json
{
    "data": {
        "note": "Supported instruments. Pass key as asset= to /v1/asset, class= to /v1/screener.",
        "count": 21,
        "assets": [
            {
                "key": "sp500",
                "class": "equities",
                "label": "S&P 500",
                "symbol": "SPY"
            },
            {
                "key": "nasdaq100",
                "class": "equities",
                "label": "Nasdaq 100",
                "symbol": "QQQ"
            },
            {
                "key": "small_caps",
                "class": "equities",
                "label": "US Small Caps",
                "symbol": "IWM"
            },
            {
                "key": "developed_intl",
                "class": "equities",
                "label": "Developed ex-US",
                "symbol": "EFA"
            },
            {
                "key": "emerging",
                "class": "equities",
                "label": "Emerging Markets",
                "symbol": "EEM"
            },
            {
                "key": "technology",
                "class": "sector",
                "label": "Technology",
                "symbol": "XLK"
            },
            {
                "key": "financials",
                "class": "sector",
                "label": "Financials",
                "symbol": "XLF"
            },
            {
                "key": "energy",
                "class": "sector",
                "label": "Energy",
      
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

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

**Response:**
```json
{
    "data": {
        "note": "screener class= filters by class. asset= is a supported key (see /v1/universe). OBV is the running signed-volume sum; obv_trend_20d_pct is its change over ~20 sessions. Read fresh per call, nothing cached.",
        "source": "Yahoo Finance daily closes + volume (3mo range) across a multi-asset universe, live",
        "classes": [
            "equities",
            "sector",
            "commodities",
            "bonds",
            "crypto"
        ],
        "service": "obv-api",
        "settings": {
            "obv_lookback": 20,
            "surge_threshold": 1.5
        },
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/asset": "One market's OBV / volume card (asset=sp500).",
            "GET /v1/screener": "Cross-asset board with accumulation/distribution and volume surges (class=sector optional).",
            "GET /v1/universe": "The supported instruments."
        },
        "description": "OBV & volume screener (multi-asset) — which markets are under accumulation or distribution and where volume is surging, live from Yahoo Finance (no key, nothing stored). screener returns the markets under accumulation and distribution and the volume surges across a cross-asset board. asset returns one market's OBV/volume card (OBV trend, volume ratio, surge flag). universe lists what is covered. The cross-asset volume / OBV screener cut — distinct from the bring-your-own-candle volume-indicator API
…(truncated, see openapi.json for full schema)
```


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