Historical ETF API Reference
- Last updated: 2026-03-28
- Scope: ETF historical daily metrics dataset (
etf_daily_metrics)
Endpoint
POST /v1/historical/etf/daily_metrics
All requests require X-API-Key.
Request contract
mode: native | aligned_1s(defaultnative)start_date: YYYY-MM-DD | nullend_date: YYYY-MM-DD | nulln_latest_rows: int | nulln_random_rows: int | nullfields: string[] | nullfilters: object[] | null(eq|ne|gt|gte|lt|lte|in|not_in)strict: bool(defaultfalse)
Window selector rules:
- At most one selector mode is allowed:
- date-window (
start_dateand/orend_date) n_latest_rowsn_random_rows
- date-window (
- If no selector is provided, full available history is returned (
earliest -> now).
Date semantics:
start_dateis inclusive at00:00:00Z.end_dateis inclusive via next-day exclusive bound.- Invalid dates (for example
2022-02-30) return contract error.
Historical availability semantics
- ETF historical availability is issuer-specific and proof-gated.
etf_ishares_ibit_daily:- official historical source with date-parameter support
- can claim business-day history from
2024-01-11forward once the raw-artifact archive and canonical proof boundary cover that day - official market-closure days are excluded from required history only when Origo has archived the first-party no-data response for that
asOfDate - snapshot-only issuers with no valid archived artifacts have no historical range yet; Origo treats that as an explicit empty claim, not as silently completed history
- Snapshot-only ETF issuers:
etf_ark_arkb_dailyetf_bitwise_bitb_dailyetf_coinshares_brrr_dailyetf_fidelity_fbtc_dailyetf_franklin_ezbc_dailyetf_grayscale_gbtc_dailyetf_hashdex_defi_dailyetf_invesco_btco_dailyetf_vaneck_hodl_daily
- Snapshot-only issuer history begins at the first valid archived raw artifact day and does not extend backward from later canonical leftovers.
- No-selector ETF requests return the full currently proved history that satisfies those issuer-specific availability boundaries.
Response contract
Response fields:
modesourcesourcesrow_countschemawarningsrowsrights_staterights_provisional
Schema taxonomy
Native rows:
metric_idsource_idmetric_namemetric_unitmetric_value_stringmetric_value_intmetric_value_floatmetric_value_boolobserved_at_utcdimensions_jsonprovenance_jsoningested_at_utcdatetime
Aligned rows:
aligned_at_utcsource_idmetric_namemetric_unitmetric_value_stringmetric_value_intmetric_value_floatmetric_value_booldimensions_jsonprovenance_jsonlatest_ingested_at_utcrecords_in_bucketvalid_from_utcvalid_to_utc_exclusive
Warnings and strict behavior
Window warnings:
WINDOW_LATEST_ROWS_MUTABLEWINDOW_RANDOM_SAMPLE
ETF quality warnings:
ETF_DAILY_STALE_RECORDSETF_DAILY_MISSING_RECORDSETF_DAILY_INCOMPLETE_RECORDS
strict=true escalates warnings to 409 (STRICT_MODE_WARNING_FAILURE).
Errors
200: success404: no data in selected window409: contract/auth/strict-warning failures503: runtime/backend/warning-evaluation failures