Get started
Corporate actions

Stock split history
and split-adjusted prices.

GET /v1/splits returns forward splits, reverse splits and stock dividends paid in the company's own shares, each with its ratio, execution date and the cumulative factor that adjusts earlier prices. Add adjustment=split to daily bars and the adjustment is applied for you.

Ratios as numbers

split_from and split_to say how many shares became how many. A 10-for-1 split is 1 to 10.

Cumulative factors

historical_adjustment_factor multiplies a pre-split price onto today's share basis in one step.

Adjusted prices and volume

adjustment=split scales earlier prices down and volume up, so charts and averages stay continuous.

Every split in a window

Omit symbols to list all splits across the market for up to 366 days.

Reading a split record

FieldMeaning
execution_dateThe ex-date: the first trading date on the post-split basis
split_from, split_toShares before and after. 4-for-1 is 1 to 4; a 1-for-10 reverse split is 10 to 1
adjustment_typeforward_split, reverse_split or stock_dividend
historical_adjustment_factorProduct of split_from / split_to over this split and every later one
idStable record ID that does not change when the split is revised
is_cancelledtrue if the split was withdrawn

announced_at is null today: the current source supplies the execution date and ratio, not the announcement time.

How the cumulative factor works

To put any raw price from before a split onto today's basis, multiply it by the historical_adjustment_factor of the first split after that date. Apple's record shows why the product matters. Its 2020 4-for-1 split carries 0.25. Its 2014 7-for-1 split carries 0.035714..., which is 1/7 × 1/4, because a share bought before 2014 has since been split twice.

NVIDIA's end-of-day close on 2024-06-07, the last session before its 10-for-1 split, was 1208.88. Multiply by 0.1 and you get 120.888, which is exactly what /v1/eod returns for that day with adjustment=split.

Split-adjusted prices from the API

You rarely need to apply factors yourself. GET /v1/eod?adjustment=split back-adjusts every earlier bar for the listing's reconciled splits, and total_return adds dividends on top. Volume is scaled the other way, so share counts stay comparable across the split.

End-of-day values returned by /v1/eod on October 3, 2026.
NVDA, 2024-06-07 (end of day)CloseVolume
adjustment=raw1208.8841,238,578
adjustment=split120.888412,385,780

Adjusted rows carry adjustment and factor_set_version. If the validated factor set for a listing is not ready, the request returns 503 adjustments-unavailable instead of mixing bases. OTC listings and crypto pairs have no split history and return raw prices only; requesting an adjustment for one returns 422 adjustment-unsupported. The adjusted prices guide covers the full method.

Splits elsewhere in the API

  • /v1/snapshot and /v1/movers split-adjust previous_close, so a split never shows up as a price move
  • /v1/dividends restates each payment with split_adjusted_amount
  • /v1/corporate-actions returns splits and dividends together, with their legs
  • Technical indicators accept adjustment=split so moving averages do not break at a split

Market-wide queries and point in time

Without symbols, pass from and to (up to 366 days, counting both) to list every split executed in that window, for 500 credits per request. as_of returns the split history and factors as they were known at the end of a past UTC day, which is how you reproduce an earlier adjusted series exactly.

Every split executed this yearcURL
curl 'https://api.ohlc.io/v1/splits?from=2026-01-01&to=2026-09-30&order=desc' \
  -H "Authorization: Bearer $OHLC_API_KEY"

Common uses

  • Rebuilding an adjusted price series in your own database from raw bars and split factors
  • Adjusting share counts and cost basis in a portfolio tracker when a holding splits
  • Spotting reverse splits, which companies often use to lift a share price above an exchange's minimum
  • Checking that a chart or dataset from another tool was adjusted correctly

Plans

Split history is included on every plan, Free included, with the same symbol and history limits as prices: 5 years on Free and Developer, 15 on Pro, full history on Commercial and Scale. Single-symbol requests cost 5 credits per symbol.

Split history for NVIDIA

RequestcURL
curl 'https://api.ohlc.io/v1/splits?symbols=XNAS:NVDA&order=desc&limit=2' \
  -H "Authorization: Bearer $OHLC_API_KEY"
Response · Illustrative sampleJSON
{
  "data": [
    {
      "id": "record_66ab4ea8b0b503f7f6a3c3c15c95e1a572795f9b3cf37cdc22cba8e4a17417eb",
      "instrument_id": "01M35Z782N1SXJ63Y8DQNP4NSE",
      "security_id": "01M35Z782N1SXJ63Y8DQNP4NSE",
      "symbol": "XNAS:NVDA",
      "exchange_mic": "XNAS",
      "execution_date": "2024-06-10",
      "split_from": "1",
      "split_to": "10",
      "adjustment_type": "forward_split",
      "historical_adjustment_factor": "0.1",
      "announced_at": null,
      "is_cancelled": false
    },
    {
      "id": "record_826cbcb41a57d80d5acf169e74683954ac5f58a3ae39068e3ecd63c202d8a831",
      "instrument_id": "01M35Z782N1SXJ63Y8DQNP4NSE",
      "security_id": "01M35Z782N1SXJ63Y8DQNP4NSE",
      "symbol": "XNAS:NVDA",
      "exchange_mic": "XNAS",
      "execution_date": "2021-07-20",
      "split_from": "1",
      "split_to": "4",
      "adjustment_type": "forward_split",
      "historical_adjustment_factor": "0.025",
      "announced_at": null,
      "is_cancelled": false
    }
  ],
  "meta": { "timezone": "UTC", "as_of": "2026-10-03T15:04:50Z", "next_cursor": null }
}

Prices delayed 15 minutes · Illustrative sample data

Questions, answered.

How do I get split-adjusted stock prices?

Add adjustment=split to /v1/eod or /v1/intraday. Every bar before a split is multiplied by the cumulative split factor, and volume is divided by it.

Does split adjustment change volume?

Yes. Adjusted volume is scaled inversely to price, so NVIDIA's 41.2 million shares on the session before its 10-for-1 split become 412.4 million on the adjusted series.

Are reverse splits included?

Yes. A reverse split has adjustment_type reverse_split and split_to below split_from, for example 10 to 1 for a 1-for-10.

Can I see upcoming splits?

Splits appear once the source reports them with an execution date. The source does not provide announcement times, so announced_at is null, and OHLC does not publish a forward-looking split calendar.

Is split data free?

The Free plan includes splits for AAPL, NVDA, JNJ, PEP, MSFT, SPY and QQQ with 5 years of history. Developer and higher cover every U.S. stock and ETF, and Pro and higher add Canada, the UK, France, the Netherlands and Australia.

A little JSON.
A lot of possibility.

Explore the API