Reverse-split calendar: every US reverse stock split, executed and UPCOMING,

Reverse-split calendar: every US reverse stock split, executed and UPCOMING, with pre-split price, market-cap tier, and dilution/shelf cross-links.

One row per (ticker, execution date), sourced daily from Polygon's reference splits feed. Because the feed carries future execution dates, upcoming=true is a genuine forward calendar (~40 scheduled splits at any moment); ~70-100 reverse splits execute per month, almost all sub-$1 microcaps curing a listing deficiency. first_seen_at records when the pull first observed the row (an announcement proxy; for rows backfilled before launch it is set to the execution date itself and is synthetic).

Requires an Alphanume Pro API key. There is no date clamp on this route: a Pro key sees full history and the forward calendar.

Research context, stated plainly: in the Alphanume anomaly sweep (2022-2026, matched-control event study), reverse-split names underperform controls by roughly -6%/-12%/-18%/-40% over the 21/63/126/252 sessions after execution (~60% of events negative; Kim-Klein-Rosenfeld 2008 found the same). That makes this a screening/avoidance signal -- e.g. exclude fresh reverse-splitters from long screens, or use the calendar to anticipate the event. It is NOT a tradeable short card: borrow on these names is scarce and expensive and is not modeled anywhere, the calendar-time short portfolio was statistically inconclusive net of costs, and the long-horizon numbers are survivor-conditioned (only ~47% of events still have a full price history 252 sessions out). No CAR columns are served; the feed is the product.

Enrichment semantics. sub_dollar_flag marks names whose unadjusted close the session before the split was under $1 (the raw price is an internal input and is not served). market_cap_before / market_cap_tier are populated from 2024-01-02 (NULL earlier -- the cap history starts there). ratio = split_to/split_from (<1 = reverse; a 1-for-10 is 0.1); is_deficiency_candidate flags ratio <= 0.5, separating real consolidations from ADR-fee-style near-1.0 adjustments, which are served raw. dilution_link_flag/shelf_link_flag mark an S-1 or S-3/F-3 filing by the same ticker in the trailing 365 days (dilution links meaningful from 2026, shelf links from 2025 -- the linked datasets' own history floors). Upcoming rows carry NULL sub_dollar_flag until execution; OTC names outside the coverage universe may keep it NULL along with cap fields. Open-end mutual fund share adjustments are excluded at ingest; ETFs and closed-end funds are included.

Pagination: results are capped at 50,000 rows per request; when the response has has_more=true, pass next_cursor's cursor_date and cursor_ticker back to fetch the next page.

get/v1/capital/reverse-splits

Request

  • Base URL: https://api.alphanume.com
  • URL: https://api.alphanume.com/v1/capital/reverse-splits
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

tickerstring

Ticker symbol filter, e.g. 'AAPL'. Case-insensitive.

datestring

Exact date, YYYY-MM-DD. Cannot be combined with the date range parameters.

date_gtestring

Start of date range, inclusive (YYYY-MM-DD).

date_ltestring

End of date range, inclusive (YYYY-MM-DD).

date_gtstring

Start of date range, exclusive (YYYY-MM-DD).

date_ltstring

End of date range, exclusive (YYYY-MM-DD).

upcomingstring

'true' = only splits with an execution date today or later (the forward calendar); 'false' = only already-executed splits. Omit for both.

ratio_gtenumber

Only rows with ratio >= this value, range (0, 1]. ratio = split_to/split_from, so 0.1 is a 1-for-10.

ratio_ltenumber

Only rows with ratio <= this value, range (0, 1]. ratio_lte=0.1 keeps 1-for-10 and larger consolidations.

cap_tier'nano' | 'micro' | 'small' | 'mid_plus'

Market-cap tier as of the session before the split (from the Alphanume cap history; populated from 2024-01-02).

deficiency_onlystring

'true' = only listing-deficiency-sized splits (ratio <= 0.5, i.e. 1-for-2 or larger). Filters out ADR-fee-style near-1.0 adjustments.

sub_dollarstring

'true' = only names whose unadjusted close before the split was under $1 (the classic deficiency-cure cohort); 'false' = $1 and above.

updated_sincestring

Only rows updated at or after this date/datetime (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS) -- for incremental syncs.

cursor_datestring

Pagination: the 'cursor_date' value from the previous response's next_cursor. Must be sent together with cursor_ticker.

cursor_tickerstring

Pagination: the 'cursor_ticker' value from the previous response's next_cursor. Must be sent together with cursor_date.

Response

Matching rows.

countinteger required
dataobject[] required
has_moreboolean required
next_cursorobject nullable required

Keyset cursor: pass its fields back as the cursor_* query parameters to fetch the next page.

Changes

No recorded changes to this operation across all 1 revision of this API.