Market data API
Sessions, strikes, history, and option-chain snapshots.
Market-data endpoints expose trading sessions, strikes, index price history, and option-chain snapshots. Most work without authentication for the most recent and current sessions; the full archive and 1-second resolution require a free registered account — see access levels.
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET |
/market-data/sessions |
Available trading sessions |
GET |
/market-data/strikes/{date} |
Strikes for a date |
GET |
/market-data/historical/{date} |
Index series for a date |
GET |
/market-data/option-chain-snapshots/{timestamp} |
Chain at one moment |
GET |
/market-data/option-chain-snapshots/{startTime}/{endTime} |
Chain over a range |
GET |
/market-data/average-expected-move |
Average expected-move series |
For authenticated requests each endpoint also has a rate-limit cost; see rate limits for the per-endpoint figures.
Sessions
curl -s https://api.0dtespx.com/market-data/sessions -H "Authorization: $TOKEN"
Returns a map keyed by date:
{
"2025-01-15": {
"start-time": "2025-01-15T14:30:00Z",
"end-time": "2025-01-15T21:00:00Z",
"data-start-time": "2025-01-15T14:31:00Z",
"data-end-time": "2025-01-15T21:00:00Z",
"current": true
}
}
start-time/end-time are the trading-session bounds; data-start-time/data-end-time are the bounds of historical data (usually a minute narrower on the open). current: true marks today's in-progress session (always 1-second data for everyone). For unauthenticated callers, restricted: true marks every session except the most recent completed one; for authenticated users no session is restricted. Times are UTC; the trading day is 9:30 AM–4:00 PM ET.
Strikes
curl -s https://api.0dtespx.com/market-data/strikes/2025-01-15 -H "Authorization: $TOKEN"
# → [5800, 5805, 5810, …]
Index history
curl -s "https://api.0dtespx.com/market-data/historical/2025-01-15?series=spx,vix,spxExpectedMove" \
-H "Authorization: $TOKEN"
Selectable series: spx, vix, spxExpectedMove, spxOTMBids, spxExtrinsic (default spx,spxExpectedMove). Each point carries a datetime, a unix timestamp, and the requested values as decimal strings. Public (no auth) for the most recent and current sessions; sample rate is 1 second authenticated, 30 seconds unauthenticated.
Option-chain snapshots
A single-timestamp snapshot (timestamp path format YYYY-MM-DDTHH:MM:SS, UTC):
curl -s https://api.0dtespx.com/market-data/option-chain-snapshots/2025-01-15T09:35:00 \
-H "Authorization: $TOKEN"
{
"call_5950": { "bid": 4.20, "ask": 4.40, "delta": 0.523 },
"put_5950": { … }
}
Keys are call_<strike> and put_<strike>. Each quote carries bid, ask, and the unsigned delta (decimal 0..1). The range form returns up to 30 snapshots between two times at your access interval (1 s authenticated, 30 s unauthenticated).
Average expected move
GET /market-data/average-expected-move returns the average expected-move series ordered by second of session. Each point is { second_of_session, avg_pct_of_open }; values map to time by their own second_of_session. Public, and cached by the browser for 24 hours.
Rate limiting
Authenticated accounts meter market-data requests against a per-endpoint credit budget; unauthenticated traffic isn't rate-limited (it's confined to the most recent session instead). See rate limits for the leaky-bucket mechanism and each endpoint's cost.