---
title: "Pre-market drop risk: model-estimated probability of an intraday decline in US microcaps, published each morning before"
method: GET
path: "/v1/premarket-drop-risk"
---

# Pre-market drop risk: model-estimated probability of an intraday decline in US microcaps, published each morning before

`GET /v1/premarket-drop-risk`

## Request

- Base URL: `https://api.alphanume.com`
- URL: `https://api.alphanume.com/v1/premarket-drop-risk`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Pre-market drop risk: model-estimated probability of an intraday decline in US microcaps, published each morning before the open.

Each trading morning, by ~09:25 ET and ahead of the 09:30 open, a
RandomForestClassifier scores every microcap that actually traded in the
pre-market session and this dataset serves the names ranked by modeled drop
risk. Features are cut at a fixed 09:00 ET pre-market cutoff. prob_drop is
P(intraday open->close return <= -5%); one row per (date, ticker), ordered by
rank_for_date (1 = the highest-probability name that day). It measures the
subset the model flags, not everything that moved overnight, and is built for
researchers and traders analyzing pre-market activity in US microcaps.

Requires an Alphanume Pro API key. There is no date clamp on this route: a Pro
key sees the whole history, whatever dates it asks for.

Sub-$1 names are featured, not filtered. Every row the model flags is
published, each carrying a sub_dollar flag: pass min_price=1 for the legacy
'$1 and up' screen, sub_dollar=1 (or max_price=1) to isolate the penny
cohort, max_rank=5 for the day's top five.

History before go-live (2026-08-31) is walk-forward simulated: generated
retrospectively by re-running the walk-forward loop (train on strictly-prior
rows only, then score that date). There is no look-ahead in the features or
the training window, but rows dated before go-live are not a real-time
publication record; rows from go-live onward are published live each morning
before the open.

Outcomes fill in late, never early. intraday_return_pct lands the same
evening; return_lead_1d / return_lead_5d / return_lead_30d only once 1 / 5 /
20 NYSE sessions have elapsed -- NULL means not yet mature, or no exchange
print existed at maturity (halts and delistings, which this microcap universe
produces regularly). Three documented quirks kept for continuity with the
training set: return_lead_30d is 20 trading sessions rather than 30 calendar
days; return_lag_1m uses the 21-session price change over the price 252
sessions back (a legacy denominator quirk, so it is not a clean 1-month
return); and the t_0..t_9 pre-market return grid is 0-filled, not NULL, when
no print exists at or before that clock mark.

Borrow and locate costs are NOT modeled. Shorting a sub-$1 microcap needs a
locate that may be expensive or simply unavailable, and no number served
here carries that cost. sub_dollar and min_price are the levers for filtering
toward borrowable names.

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

## Query parameters

- `ticker` string
- `date` string
- `date_gte` string
- `date_lte` string
- `date_gt` string
- `date_lt` string
- `min_prob` number
- `min_price` number
- `max_price` number
- `sub_dollar` string
- `max_rank` integer
- `cursor_date` string
- `cursor_rank` integer

## Response `200`

Matching rows.

- PaginatedEnvelope
  - `count` integer, required
  - `data` object[], required
  - `has_more` boolean, required
  - `next_cursor` object, nullable, required: Keyset cursor: pass its fields back as the cursor_* query parameters to fetch the next page.

## Other responses

- `400`: Invalid or conflicting query parameters.
- `401`: Missing or unrecognized API key.
- `403`: PRO_SUBSCRIPTION_REQUIRED: the key's plan does not include API access (every endpoint requires an active Pro subscription), or this Pro-only dataset is not covered by the key. No choice of dates makes the request succeed. The data is not missing.
- `429`: Rate limit exceeded (600/min); the body carries retry_after_seconds.

---

[API](https://skmtc.dev/alphanume/apis/alphanume-api.md) · [All operations](https://skmtc.dev/alphanume/apis/alphanume-api/llms.txt) · [OpenAPI document](https://skmtc.dev/alphanume/apis/alphanume-api/revisions/2cb83f10bba4?raw)
