OBV API — Volume Confirmation of Price

On Balance Volume tracks cumulative buying vs selling pressure. Use it to confirm breakouts or spot divergence vs price.

No credit card$2.50 PAYG credit on sign up
15+API endpoints
42Indicator series
M1–D17 timeframes
$2.50PAYG starting credit
Why TickAtlas

What is the OBV API?

On Balance Volume is a cumulative indicator that adds volume on up-days and subtracts volume on down-days. When OBV trends up alongside price, the move is volume-confirmed — institutions are buying. When price makes new highs but OBV fails to follow, it signals bearish divergence — the rally lacks conviction. TickAtlas pre-calculates OBV from our live data so your strategy gets the cumulative value without maintaining a running volume sum.

Pre-Calculated, Redis-Cached

Indicator values are computed server-side on every new candle. Your app queries the result — no TA library, no candle history needed.

7 Timeframes

M1, M5, M15, M30, H1, H4, D1 — the same endpoint serves scalpers and position traders alike.

Forex, Crypto, Commodities

EURUSD, GBPUSD, XAUUSD, BTCUSD, USDJPY — data available for every symbol in our data.

One Request. Instant Data.

REQUEST
curl -X GET \
  "https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=OBV&timeframe=H1" \
  -H "X-API-Key: YOUR_API_KEY"
200 OK
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "timeframe": "H1",
    "indicator": "OBV",
    "value": 152340,
    "bid": 1.08401,
    "ask": 1.08414,
    "updated_at": 1711548000,
    "server_time": "2024-03-27T14:00:00+00:00"
  }
}

Volume Conviction in One Request

cURL Request
curl -H "X-API-Key: YOUR_KEY" "https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=OBV&timeframe=H1"
Python Volume divergence detection
import requests

r = requests.get(
    "https://tickatlas.com/v1/indicator",
    headers={"X-API-Key": "YOUR_KEY"},
    params={"symbol": "EURUSD", "indicator": "OBV", "timeframe": "H1"},
)
obv = r.json()["data"]["value"]

prev_obv = 18290544   # OBV from the previous bar (persist between calls)
price_higher_high = True

# Volume divergence: price up but OBV down = bearish divergence
if price_higher_high and obv < prev_obv:
    signal = "BEARISH_DIVERGENCE"
elif not price_higher_high and obv > prev_obv:
    signal = "BULLISH_DIVERGENCE"
else:
    signal = "TREND_CONFIRMED"
print(signal)
200 OK Response
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "timeframe": "H1",
    "indicator": "OBV",
    "value": 18452301,
    "bid": 1.08401,
    "ask": 1.08414,
    "updated_at": 1711548000,
    "server_time": "2024-03-27T14:00:00+00:00"
  }
}

OBV key facts

  • Cumulative — the absolute value is less important than the trend direction
  • Use history endpoint to compare OBV trend vs price trend over time
  • Most powerful on H4 and D1 — volume noise is smoothed by higher timeframes
  • Works best on crypto (BTCUSD) and futures-derived price feeds where tick volume is reliable

Plug into any stack

  • ChatGPT Custom GPTs
  • Claude Tools
  • Python / pandas
  • Node.js
  • Discord bots
  • Slack webhooks
  • n8n
  • Zapier
  • Google Sheets
Pricing

Start on pay-as-you-go, upgrade when the traffic justifies it.

Every new account starts with $2.50 of pay-as-you-go credit and no card. Monthly plans add a flat monthly price, WebSocket streaming and support.

Pay as you go
$2.50 credit No card required to start
  • $2.50 of credit included
  • Every REST endpoint except raw ticks
  • No card required, no overage
  • 10 API keys
See plan details
Starter
$29 per month · 10,000 requests/day · 120/min
  • Every REST endpoint except raw ticks
  • WebSocket streaming, 5 symbols
  • Released calendar actuals
  • Email support
  • 3 API keys
See plan details
Frequently asked questions

What developers ask first.

Straight answers on limits, coverage and how the endpoint behaves in production.

Why does OBV return a large cumulative number like 184,250,340?

OBV is a cumulative sum — it adds or subtracts the full period volume on each candle based on whether the close was up or down. The absolute value is not meaningful in isolation; what matters is whether OBV is trending up, down, or diverging from price.

How do I detect OBV divergence?

Use GET /v1/indicator/history with indicator=OBV to retrieve a time series. Compare the OBV trend direction to the price trend direction over the same window. If price makes higher highs but OBV makes lower highs, that's bearish divergence.

Is OBV reliable on Forex symbols where volume is tick-based?

Tick volume in our data is the number of price updates, not actual transaction volume. This is a known limitation. OBV is most reliable on crypto symbols (BTCUSD) and instruments with exchange-reported volume. For Forex, OBV still has utility as a relative indicator but should be treated as a directional proxy.

What timeframe is best for OBV?

H4 and D1 produce the cleanest OBV trends. M1 and M5 OBV is very noisy due to high tick frequency. For breakout confirmation, H1 is a good balance — you get volume context while avoiding excessive noise.

Start building

Start Building in 5 Minutes

Sign up, grab your API key, make your first request.

Every new account starts with $2.50 of pay-as-you-go credit. No card required.