GET/api/v1/series/{series_id}
Get series
One series the way the series page shows it: metadata, then either a day index or a page of events.
Public. Returns 404 if the series is unknown. live_n is markets still trading, counted from close time rather than the number stored when each window was first seen.
Try it
Query parameters
| Name | Notes |
|---|---|
day | YYYY-MM-DD UTC. On a day-cadence series, returns that day's markets instead of the day index. |
status | live, closed, or settled. Applied to markets and events, not to the day index. |
q | Ticker or title tokens, on a day or an event list |
from_ts / to_ts | Unix seconds. Days that miss the range are left out of the index. |
offset | Page through days, or through markets once day is set |
event_offset | Page through events on an event-cadence series |
limit | Default 80, max 200 |
Cadence
cadence: day is a repeating window (15-minute crypto). The response has days, each { "day", "markets_n" }. Pass day to get markets.
cadence: event is a list of occasions. The response has events. A series with exactly one event includes redirect_event, which is the event id the app opens directly.
curl
curl "https://kalshieye.com/api/v1/series/KXBTC15M?limit=2"Day index
{
"series": { "id": "KXBTC15M", "label": "Bitcoin 15 minutes", "cadence": "day", "live_n": 1 },
"cadence": "day",
"days": [{ "day": "2026-10-12", "markets_n": 96 }],
"markets": [],
"events": [],
"has_more": true,
"days_total": 90
}