get_aftermarket_data
Query STORED after-hours 15-minute bars (open/high/low/close/volume) for symbols.
Returns the extended-hours bars the backend has captured for `symbols` — one row per
symbol per 15-minute bar, 16:00-20:00 ET, ordered by symbol then bar time DESC (so the
first row per symbol is the latest bar). This is the recorded aftermarket tape, NOT a
live feed; it is polled every 15 minutes from 16:30 ET through the evening, so a bar
can lag the wall clock by up to ~15 minutes. For a live intraday read of the regular
session use `detect_intraday_outlier_jumps` instead.
Leave both datetimes off for "today's aftermarket tape". An empty `bars` list means no
bars were captured in the window (e.g. before 16:30 ET, or on a non-trading day) — not
an error.
Requires auth (your MCP client attaches the OAuth bearer automatically). Rate-limited
to 300/minute per user server-side.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Covered tickers, e.g. ["AAPL", "MSFT"]. | |
| end_datetime | No | Inclusive upper bound on bar time, ET wall-clock ISO-8601. Omit for 23:59:59 today ET. | |
| start_datetime | No | Inclusive lower bound on bar time, ET wall-clock ISO-8601 ("2026-06-24T16:00:00"). Omit for 00:00:00 today ET. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | One row per symbol per 15-min bar, 16:00-20:00 ET, ordered by symbol then time DESC (first row per symbol is the latest). Empty means no bars were captured in the window. |