Corporate actions
Corporate actions are the surgery that distorts naive price-and-volume series. A 4-for-1 stock split overnight quarters every historical close. A special dividend creates an artificial drop. A reverse-split inflates the price by an order of magnitude. Without normalization, technical indicators lie and total returns are wrong.
This page documents how oneapi.finance handles each event type.
Splits
Returned by GET /v1/splits as a list of:
{ "date": "2020-08-31", "ratio_from": 1.0, "ratio_to": 4.0}Convention: ratio_from : ratio_to. The Apple August 2020 entry above is a
forward 4-for-1 split — every 1 share became 4 shares, and every $1 of
historical price became $0.25.
Reverse splits use the inverse: ratio_from = 10.0, ratio_to = 1.0 for a
1-for-10 reverse split.
How splits affect the time-series endpoint
GET /v1/time_series returns split-adjusted OHLCV. Volumes are adjusted
inversely. Concretely, a value of close = 25.0, volume = 4_000_000 for AAPL
on 2020-08-30 (one day before the 4-for-1 split) is what we return today, even
though the actual closing price on that day was $100.0.
If you need raw, unadjusted prices (rare; usually for replication of a paper
that uses unadjusted data), pass adjust=false on the time-series request.
Splits in /v1/splits are returned regardless.
Dividends
Returned by GET /v1/dividends per symbol:
{ "ex_date": "2026-02-09", "amount": 0.24, "currency": "USD", "declaration_date": "2026-02-01", "payment_date": "2026-02-16", "record_date": "2026-02-10"}ex_dateis the trade date on which a buyer does not receive the dividend. This is the most-used field; it is the date the price drops.record_dateis when the issuer’s books are pulled to identify holders.payment_dateis when cash actually moves.declaration_dateis when the board announced. Often missing for non-US issuers.amountis incurrencyand is gross of withholding tax. It is the amount declared by the issuer; what you actually receive depends on your domicile.
Special dividends and one-time distributions are interspersed with regular dividends in the same array. We do not currently flag them; the magnitude relative to recent regulars is the practical signal.
How dividends affect time-series
By default, GET /v1/time_series returns split-adjusted but not
dividend-adjusted prices. This matches the convention of most charting
libraries and brokerages.
To get total-return adjusted series (i.e. dividends reinvested), pass
adjust=total_return. The close field then reflects what a buy-and-hold
investor with reinvested dividends would have, normalized to the most recent
close.
Spinoffs, mergers, and tender offers
These are recorded internally in the corporate_actions table but are not yet
surfaced in a public endpoint. Spinoff-aware total-return calculations require
holding period assumptions and we have not designed the surface yet. If you
need this, file a feature request with your use case.
Currency redenominations
Rare but real (Israel re-denominated 1985, Turkey 2005). When an issuer’s
trading currency changes, our currency field changes for the same
(symbol, exchange) pair from the redenomination date forward. Historical
prices are not retroactively converted; they remain in the original
currency. Your application is responsible for tracking the change.
What’s next
- Splits endpoint reference
- Dividends endpoint reference
- Time-series endpoint reference — for
adjustparameter.