# DataFirst Derivatives API 1.0.65 > Dealer gamma exposure, key levels, Greeks exposures, order flow, tape, sweeps and volatility for every listed US option root, live and for every finished session kept. Money is USD, GEX is USD per 1 % move in spot, ratios and volatilities are fractions, times are RFC 3339 UTC. - Base URL: https://api.datafirsttrading.com - Auth: `Authorization: Bearer ` on every call; `GET /v1/me` returns your limits as data. - Every answer is `{"data": ..., "meta": ...}`; every error is an RFC 9457 problem document with a stable `code`. - Retry 429, 503, 504 and network errors: wait `Retry-After` when sent, else back off exponentially with jitter for a few attempts; never an unchanged 4xx. - Time limits: every answer has one, streaming answers are bounded by progress (504 `timeout`: narrow the request). - Reference: /docs/ (interactive), /docs/api.md (Markdown), /v1/openapi.json; the MCP server `datafirst_mcp` exposes one tool per endpoint. ## Endpoints - [plans](/docs/endpoints/plans.md): `GET /v1/plans`. The plans and their prices (1.0.56): every plan on sale with its monthly, annual and lifetime price, whether it is open or waitlist, what it includes, Ask Marlon's questions a day, and the limits the API enforces for its keys; no key needed, never counted - [me](/docs/endpoints/me.md): `GET /v1/me`. Your key: tier, rate, history reach, the day quota, export, symbols, the account's platform add-ons, OPRA attestation status and grace; answered for any valid key that is not revoked, attested or not - [status](/docs/endpoints/status.md): `GET /v1/status`. Your plan, mode and usage in one free read (1.0.43): plan, plan_until (1.0.44), mode (live | finished | attest | ended) with its label, account, usage {api, rate, chat, stream}, reach, products; never counted against the key, never rate-limited by it; ETag and 304 for polling; answered for any valid key that is not revoked - [stream_ticket](/docs/endpoints/stream_ticket.md): `POST /v1/stream/ticket`. A one-use ticket, good for 60 s, that opens /v1/stream as this key (1.0.39; since 1.0.61 sent as the socket's token: wss://.../v1/stream?api=1&token=dft_tk_...&neg=...), so a browser never holds the key - [stream_negotiate](/docs/endpoints/stream_negotiate.md): `POST /v1/stream/negotiate`. Before every /v1/stream socket (1.0.61): the topics on offer (families, scopes, the REST route each body comes from), the socket's path, this key's limits and the neg token the socket requires (good for 300 s, reusable until then) - [symbols](/docs/endpoints/symbols.md): `GET /v1/symbols`. Symbols with listed options - [expirations](/docs/endpoints/expirations.md): `GET /v1/symbols/{symbol}/expirations`. Listed expirations and the term selection - [spot](/docs/endpoints/spot.md): `GET /v1/symbols/{symbol}/spot`. Spot price - [levels](/docs/endpoints/levels.md): `GET /v1/symbols/{symbol}/levels`. Key levels, walls, totals, flow summary - [strikes](/docs/endpoints/strikes.md): `GET /v1/symbols/{symbol}/strikes`. Per-strike GEX, exposures, Greeks, OI and volume (plus levels) - [contracts](/docs/endpoints/contracts.md): `GET /v1/symbols/{symbol}/contracts`. Per-contract quotes, IV, Greeks, GEX and flow classification - [heatmap](/docs/endpoints/heatmap.md): `GET /v1/symbols/{symbol}/heatmap`. Net GEX by strike and expiration around spot - [flow](/docs/endpoints/flow.md): `GET /v1/symbols/{symbol}/flow`. Signed order flow: totals, minute buckets, classification - [history_levels](/docs/endpoints/history_levels.md): `GET /v1/symbols/{symbol}/history/levels`. Intraday levels history: key levels through a session - [vol](/docs/endpoints/vol.md): `GET /v1/symbols/{symbol}/vol`. Volatility summary: constant-maturity tenors (1, 9, 30, 91, 182 days), term slope, expected moves (close, 1 day, week, opex, 30 days), 30-day skew, per-expiration ATM, 25-delta, risk reversal, butterfly and strip vol, the smiles - [intraday](/docs/endpoints/intraday.md): `GET /v1/symbols/{symbol}/intraday`. Spot bars for the session: 1-minute by default, sub-minute steps with resolution - [history_flow](/docs/endpoints/history_flow.md): `GET /v1/symbols/{symbol}/history/flow`. Net flow through a session (premium by side, signed premium and volume, spot) - [flow_leaders](/docs/endpoints/flow_leaders.md): `GET /v1/flow/leaders`. Leaders over a session or a week: underlyings or contracts ranked by premium, volume, trades, sweeps or direction (1.0.22) - [flow_sectors](/docs/endpoints/flow_sectors.md): `GET /v1/flow/sectors`. Flow by sector over a session against each sector's baseline (1.0.22) - [flow_breadth](/docs/endpoints/flow_breadth.md): `GET /v1/flow/breadth`. Market breadth by premium imbalance over a session (1.0.22) - [flow_unusual](/docs/endpoints/flow_unusual.md): `GET /v1/flow/unusual`. Contracts whose session volume is a multiple of their own trailing mean (1.0.22) - [flow_baseline](/docs/endpoints/flow_baseline.md): `GET /v1/symbols/{symbol}/flow/baseline`. A symbol's session against its trailing baseline, by day and by 5-minute slot (1.0.22) - [flow_history](/docs/endpoints/flow_history.md): `GET /v1/symbols/{symbol}/flow/history`. A symbol's flow totals per session over the trailing sessions (1.0.22) - [history_heatmap](/docs/endpoints/history_heatmap.md): `GET /v1/symbols/{symbol}/history/heatmap`. Exposure grid through a session: call, put and net GEX per strike at each interval - [history_replay](/docs/endpoints/history_replay.md): `GET /v1/symbols/{symbol}/history/replay`. A finished session's playback answers: per-minute key levels and strike profile (part=levels) or per-minute surfaces with the closing aggregate and metrics (part=surfaces) - [history_chain](/docs/endpoints/history_chain.md): `GET /v1/symbols/{symbol}/history/chain`. The chain every interval of a finished session, every contract with its Greeks: NDJSON, a manifest line then one snapshot per interval (gzip when accepted, immutable) - [history_iv](/docs/endpoints/history_iv.md): `GET /v1/symbols/{symbol}/history/iv`. Daily 30-day at-the-money implied volatility and 25-delta skew, one row per session - [history_oi](/docs/endpoints/history_oi.md): `GET /v1/symbols/{symbol}/history/oi`. Open interest per contract for one session (positions at the previous close), with the session's traded volume - [sessions](/docs/endpoints/sessions.md): `GET /v1/sessions`. The catalog of finished sessions: each with the names with levels and what it holds (levels, grids, flow, trades, playback, answers, closing) - [sessions_date](/docs/endpoints/sessions_date.md): `GET /v1/sessions/{date}`. The names one finished session holds, by product (1.0.29): levels (every name with recorded levels), playback (names with a built Replay), closing (names with a closing entry), with the catalog row's holds; trades are per session (holds.trades) - [reference](/docs/endpoints/reference.md): `GET /v1/reference`. Reference data: the rate curve, dividend yields, multiplier and expiry conventions, sectors - [symbol_reference](/docs/endpoints/symbol_reference.md): `GET /v1/symbols/{symbol}/reference`. One symbol's reference data: roots, adjusted flag, index flag, dividend yield, expiry convention, sector, industry; and its recorded sessions (first, last, count; 1.0.29) - [trades](/docs/endpoints/trades.md): `GET /v1/trades`. Every option print of a session (or orders: sweeps, splits, blocks), filtered, sorted, cursor-paged - [trades_stats](/docs/endpoints/trades_stats.md): `GET /v1/trades/stats`. Grouped totals over the same prints: premium, trades, volume, bullish/bearish, net premium and volume, first spot; OHLC per contract and bucket - [export](/docs/endpoints/export.md): `GET /v1/export`. Tier 3: sessions available for bulk export - [export_manifest](/docs/endpoints/export_manifest.md): `GET /v1/export/{date}`. Tier 3: a session's export manifest (datasets, rows, bytes, sha256, columns) - [export_file](/docs/endpoints/export_file.md): `GET /v1/export/{date}/{dataset}`. Tier 3: one dataset of a session as a Parquet file (levels, interval_map, netflow, trades, orders) - [tape](/docs/endpoints/tape.md): `GET /v1/tape`. Option prints: the last minutes live, or any kept session with date - [sweeps](/docs/endpoints/sweeps.md): `GET /v1/sweeps`. Multi-exchange sweeps: the last minutes live, or any kept session with date ## Documents - [The reference, every section](/docs/api.md) - [Agent skill file](/.well-known/skill.md)