Changelog
Every change to the schema, the REST and WebSocket APIs and the Python SDK, plus every data revision, newest first. API v1 and schema 0.9 are drafts until Phase 1, when the schema becomes 1.0.
Until 1.0, a draft may change in ways that break compatibility, and each such change is listed here. From 1.0, breaking schema changes are announced at least 90 days ahead and the old and new versions are served in parallel for at least 12 months. Pin a version with the FDC-Schema-Version header (see REST) or the SDK's minor version (see Python SDK). Corrections to published data appear as DATA REVISION entries; how revisions work is on Data quality. The reasoning behind the current draft is in Schema v0.9 draft, and comments are welcome at daniel@financedatacloud.com.
v0.9 draft, October update
Added
- WebSocket:
prev_seqon every market data message, so a client can detect a missed message without venue-specific sequence rules. - WebSocket:
ts_sendandregionon every message. - REST:
X-RateLimit-ConcurrentandX-RateLimit-Burstheaders. chain_flows:link_venue,link_symbolandlink_trade_id, joining a flow to the trade it was matched to.- SDK:
on_livecallback, andon_gapaccepting"raise","resync"or a callable.
Changed
- WebSocket replay buffer for
resume_fromraised from 6 to 24 hours on Desk and from 24 to 72 hours on Enterprise. - WebSocket: authentication failures now send an
errorframe before closing with 4401 or 4403 (previously the connection closed with no frame). Theauthframe must arrive within 5 seconds. - REST: maximum JSON page size raised from 5,000 to 10,000 rows.
cxl_fillwindow shortened from 60 s to 10 s, with the level-1 and top-5 variantsl1andl5.
Deprecated
- The
ts_recvalias forts_capture, kept since v0.3, will be removed in schema 1.0.
Data revision: book_l2, Hyperliquid
Revision 1 stays readable for 24 months as an S3 object version and through revision=1.
v0.9 draft
The draft we expect to become schema 1.0 with only small changes. Background and open questions are in the announcement post.
Added
regioncommon column (apne1,euw1, lateruse1), andsource = "fdc_derived"for rows we compute: candles, checkpoint snapshots and extended fields.revisionparameter on REST and in the SDK, and Parquet footer keysfdc.schema_version,fdc.dataset,fdc.revision,fdc.row_count,fdc.gap_count,fdc.seq_rangeandfdc.sha256.FDC-Schema-Versionrequest and response header.extended:emit,ts_availableandref_id, per-trade markout events, and custom profiles for Enterprise.funding:kind,interval_s,rate_1handrate_ann, plus an hourly grid (ts_grid,predicted_rate_1h,stale,age_s); the SDK and REST gainedgrid="1h".instruments:valid_from,valid_to,successor_id, and theas_ofandhistoryparameters.gaps:detected_byandrevision.- Multiplier contracts such as
1000PEPE-PERP(HyperliquidkPEPE), withmultiplierininstruments. GET /v1/usage.
Changed
extendedmoved to a long layout:field,variant,value,on_grid. The wide layout is still available withlayout=widein REST andwide=Truein the SDK.- OFI-ML variants are now
l1,l5,l10andnorm(previously five per-level columns). - Daily files are partitioned on the UTC day of
ts_captureand sorted byts_capture, thenseq. REST time filters default tots_capture. format=parquetresponses are no longer paginated and cover up to 31 days per request.- Book requests with
startbegin with a synthetic snapshot of the book atstart. - Error bodies standardized on
status,code,messageandrequest_id.
Deprecated
- The
depth="full"alias in the SDK. Usedepth="L2"withlevels=None.
v0.8
Added
mark_index.oracle_priceandbasis_bps.- S3 daily manifests with a SHA-256 per file.
fdc.download(), writing files in the S3 layout and returning their paths.- Hourly full-depth snapshots in every book file, with the 00:00 UTC snapshot opening the file.
Changed
- Inverse contracts carry
INVin the symbol:BTC-USD-INV-PERP(wasBTC-USD-PERP) andBTC-USD-INV-26MAR27, so the margin type is never implied. See Symbology. - Dated futures use
BTC-26MAR27(wasBTC-20270326), matching option symbols such asBTC-26MAR27-90000-C.
Deprecated
sidevaluesbands. Usebuyandsell. Removed in v0.9.
v0.7
Added
chain_entitiesandchain_flows(L4+), withcluster_method,link_type, calibratedconfidenceandmodel_version. See Chain intelligence.book_l4.entity_id, filled for accounts with chain intelligence and null otherwise.partparticipant fields inextended, on venues with L4.options_chain, with IV and greeks where the venue publishes them.- WebSocket draft:
subscribe,unsubscribe, server-side snapshots andresume_from.
Changed
chain_entitiesis versioned hourly withvalid_fromandvalid_to, so clusterings can be queried as of any past time.
v0.6
Added
extended:queue,cxl_fill,resilandmarkout.- Candles at
1sand5m.
Changed
- Markouts are now published on the grid row at which their horizon has elapsed. Earlier drafts stamped them at trade time, which placed future prices on past rows. Values are unchanged; their timestamps moved.
- S3 candle prefixes split by interval:
candles_1m,candles_1hand so on.
v0.5
Added
- The
extendedtable, withofi_ml,vpinandlambdaon a 100 ms grid. Retry-AfterandX-RateLimit-*headers.
Changed
- REST pagination moved from
offsetto opaque cursors, so page boundaries no longer shift when data is appended.
Deprecated
- The
offsetparameter. Removed in v0.7.
v0.4
Added
book_l4:book_l3plusparticipant_idand, on fills,counterparty_id.open_interest,liquidationsandmark_index.- The
gapstable andGET /v1/gaps.
Changed
book_l3.sizeis the remaining resting size after the event. The change is derived from the newprev_sizecolumn, and fills carryfill_size.
v0.3
Added
sourcecolumn on every table:fdc_captureorvenue_archive.venue_symbolon every table.
Changed
- Prices and sizes changed from float64 to
decimal128(38,18)in Parquet and to strings in JSON, so no precision is lost. ts_recvrenamed tots_capture. Both are int64 nanoseconds since the Unix epoch, UTC.
Deprecated
ts_recv, kept as an alias.
v0.2
Added
book_l3withadd,modify,cancelandfillevents.candlesat1m,1hand1d, andinstruments.
Changed
- Normalized symbology:
BTC-USDTfor spot, andBTC-PERPfor each venue's main linear perpetual (USDT-margined on Binance, Bybit, OKX and Bitget; USDC-margined on Hyperliquid and dYdX).
v0.1
Added
- First shared draft of the schema:
trades,quotes,book_l2andfunding. - Common columns
venue,symbol,ts_exchange,ts_recvandseq. - Daily Parquet layout
{dataset}/venue={venue}/date={YYYY-MM-DD}/{symbol}.parquet, unchanged since.