Get started
Analytics

Technical indicators,
calculated from the bars you can audit.

GET /v1/indicators calculates moving averages, RSI, MACD and five other indicators on request from OHLC's own daily and intraday bars. Every formula, parameter and warmup length is published at /v1/indicators/definitions.

Eight indicators

SMA, EMA, RSI, MACD, Bollinger Bands, ATR, rate of change and the stochastic oscillator.

Your parameters

Set period, or fast_period, slow_period and signal_period for MACD, within published limits.

Daily or intraday

Calculate on daily bars, or on 5-minute and hourly bars from the last 30 days.

Adjusted inputs

Choose raw, split or total_return source bars so long averages do not break at a split.

Supported indicators

The table below matches /v1/indicators/definitions as of October 3, 2026. Warmup is the number of preceding bars needed before the first value at default parameters.

CodeIndicatorParameters (default)OutputsWarmup
smaSimple moving average of closesperiod (20)value19
emaExponential moving average, smoothing 2 / (period + 1)period (20)value19
rsiWilder relative strength index, 0 to 100period (14)value14
macdFast EMA minus slow EMA, with signal linefast_period (12), slow_period (26), signal_period (9)value, signal, histogram33
bollinger_bandsSMA ± two population standard deviationsperiod (20)value, upper, lower19
atrWilder-smoothed average true rangeperiod (14)value14
rocRate of change: 100 × (close / close n bars ago − 1)period (12)value12
stochastic%K over the high-low range, %D as its SMAperiod (14), signal_period (3)value, signal15

Multi-output indicators return one row per output per bar, named in output, so a MACD request yields value, signal and histogram rows for each date. Values arrive as a measure object with value, unit and currency_code; a null value means unavailable, not zero.

How the calculation works

Indicators are calculated on request from the same bars the price endpoints serve: end-of-day bars for interval=1d, and the retained 5-minute bars (or hourly bars rolled up from them) for 5m and 1h. event_at is the close of each source bar, so a daily value for a U.S. stock is stamped 20:00 UTC in summer.

Results start at from, but preceding bars are read for warmup. If there are not enough of them, early values are null rather than computed on a short window. Recursive indicators (EMA, MACD, RSI and ATR) warm up long enough that their starting point no longer shows in the published eight decimals (480 bars for a 20-day EMA), so each value matches one seeded from the earliest bar your key may read. A short history, or a plan's shorter history depth, still starts from the earliest bar available, so values close to it can differ slightly from a charting tool that seeds from a different start.

Adjusted inputs

Source bars are split-adjusted by default, so a lookback that crosses a 4-for-1 split does not see a 75% drop that drags every average with it. Crypto and currency pairs, indices, bonds and OTC listings, which have no split adjustments, are read raw, and each value's adjustment says which its bars had. Pass adjustment=raw for prices as traded; total_return also accounts for dividends. See stock splits for how the factors work.

Hourly MACD for SPY with default 12/26/9 periodscURL
curl 'https://api.ohlc.io/v1/indicators?symbols=ARCX:SPY&indicator=macd&interval=1h&from=2026-09-29&to=2026-10-02&adjustment=split' \
  -H "Authorization: Bearer $OHLC_API_KEY"

Limits

  • Intervals: 1d, 5m and 1h. Weekly and monthly bars are not published yet, and 1m is not collected for stocks
  • Intraday indicators reach back only as far as intraday bars are kept, about 30 days
  • period is accepted only by indicators that define it; unsupported combinations return 422
  • Exchange listings use the regular session only
  • Each request costs 25 credits per symbol, up to 100 symbols; the definitions endpoint costs 5 credits

Common uses

  • Adding moving averages, Bollinger Bands or RSI panes to a chart without maintaining your own math
  • Generating signals for a backtest, such as a 50-day and 200-day SMA crossover
  • Sizing positions or stops from ATR
  • Answering indicator questions in Claude or another assistant through the MCP server

Plans

Technical indicators need the indicators.read capability, included on Pro, Commercial and Scale. Daily indicators also read end-of-day bars, and intraday ones read intraday bars; both are part of Pro. History depth follows the plan: 15 years on Pro and full history on Commercial and Scale.

14-day RSI for Apple

RequestcURL
curl 'https://api.ohlc.io/v1/indicators?symbols=XNAS:AAPL&indicator=rsi&interval=1d&period=14&from=2026-10-01&to=2026-10-02' \
  -H "Authorization: Bearer $OHLC_API_KEY"
Response · Illustrative sampleJSON
{
  "data": [
    {
      "id": "record_d362aada5049380e9fecd352255d621ea1fe008ddfa5fc14cc6f2ed26ffa7b2d",
      "instrument_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
      "event_at": "2026-10-02T20:00:00.000000Z",
      "indicator": "rsi",
      "interval": "1d",
      "session": "regular",
      "adjustment": "split",
      "parameters": { "period": 14, "fast_period": null, "slow_period": null, "signal_period": null },
      "output": "value",
      "value": { "value": "54.71995818", "unit": "index_points", "currency_code": null }
    }
  ],
  "meta": {
    "timezone": "UTC",
    "as_of": "2026-10-03T15:04:55Z",
    "next_cursor": null,
    "coverage": { "status": "partial", "reason": "Calculated on request from stored end-of-day and retained intraday bars; history follows the eod and intraday datasets." }
  }
}

Prices delayed 15 minutes · Illustrative sample data

Questions, answered.

Which technical indicators does the API support?

SMA, EMA, RSI, MACD, Bollinger Bands, ATR, rate of change and the stochastic oscillator. /v1/indicators/definitions lists each one's formula, parameters, outputs and warmup.

Can I change the RSI or moving average period?

Yes. Pass period from 1 to 1000 (RSI and Bollinger Bands from 2). MACD takes fast_period, slow_period and signal_period, with fast below slow.

Why don't my EMA or RSI values match my charting app?

Recursive indicators depend on where the series starts. OHLC seeds them from the earliest bar your key can read, and many charting tools start from a shorter window. Prices adjusted differently for splits also change the result, so compare on the same adjustment.

Can I get indicators on intraday data?

Yes, on 5-minute and hourly bars within the roughly 30 days of retained intraday data. Use interval=5m or interval=1h.

Is there a free technical indicators API?

No. Indicators are included on Pro ($149/month) and above. On lower plans you can compute them yourself from daily bars, which every plan includes.

A little JSON.
A lot of possibility.

Explore the API