Reading a split record
| Field | Meaning |
|---|---|
execution_date | The ex-date: the first trading date on the post-split basis |
split_from, split_to | Shares before and after. 4-for-1 is 1 to 4; a 1-for-10 reverse split is 10 to 1 |
adjustment_type | forward_split, reverse_split or stock_dividend |
historical_adjustment_factor | Product of split_from / split_to over this split and every later one |
id | Stable record ID that does not change when the split is revised |
is_cancelled | true 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.
| NVDA, 2024-06-07 (end of day) | Close | Volume |
|---|---|---|
adjustment=raw | 1208.88 | 41,238,578 |
adjustment=split | 120.888 | 412,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/snapshotand/v1/moverssplit-adjustprevious_close, so a split never shows up as a price move/v1/dividendsrestates each payment withsplit_adjusted_amount/v1/corporate-actionsreturns splits and dividends together, with their legs- Technical indicators accept
adjustment=splitso 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.
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
curl 'https://api.ohlc.io/v1/splits?symbols=XNAS:NVDA&order=desc&limit=2' \
-H "Authorization: Bearer $OHLC_API_KEY"{
"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