Deprecations
What is deprecated, what replaces it, and when it may stop. Each deprecated route also says so on every response, in headers.
How a deprecation works
Advance notice first; nothing turns off on a timer.
A deprecated route keeps serving identical responses until its sunset date, and every response carries Deprecation (the date it was deprecated), Sunset (the earliest date it may stop) and Link (the successor, and this page). After the sunset date we check who still calls it, then switch it to a permanent 410 Gone that points at the successor. Nothing turns off on a timer. Each successor is a strict superset, so migrating is a URL change.
Sunsetting
On 2026-10-31: six legacy reads and one field.
| Deprecated route | Use instead | What changes |
|---|---|---|
GET / | / | Same data plus multi-ticker alignment, OHLCV columns, 1w/1q intervals, and transitions_only. |
GET / | / | One signal is one columns value on series — same values, and you can pull several signals in one call. |
GET / | / | The full timeline: adds analyst actions plus opt-in signal firings and news, queryable by payload. |
GET / | / | Same rows from the unified stream; firm and action are real filters there. |
GET / | / | Nothing — it was a second spelling of the as-of read, and the canonical URL returns the byte-identical response. |
GET / | / | The same rows as enter/exit point-events; merge_gap_seconds there merges runs the same way. An open run has no exit yet. |
Migration notes for the two history reads are on Ticker history and Signal history; for the as-of alias the migration is the one-line URL swap above.
One field on the same date: minute_tier on GET /v2/tickers/{ticker}/coverage is still returned unchanged until 2026-10-31, then removed. It named an internal roster; sub-hour bars are available for every active symbol regardless of it.
Retired
Routes that have reached their sunset.
None yet. The first sunset is 2026-10-31.