QL Datasets · the bulk-data door

Bulk market data, over a curl. Every version hash-stamped.

The incumbents will not sell you an API without a five-figure seat. QuantLogix hands developers bulk datasets with stable schemas — the signal rankings, the ETF rankings, the private-company roster, the secondary tape, the SEC-filed mark tape and the fund books behind it — in JSON, JSONL, or CSV, versioned daily. Every version is frozen by the QL Rewind archive: SHA-256-stamped the night it was captured and welded into a public hash chain, so you can prove the file you downloaded is the dataset everyone else saw that day — and that no version was ever quietly rewritten. Catalog, manifests, hashes, and samples are public. Full rows take a ql_ key (Pro+).

Loading the catalog…

⛓ The Chain — every sealed day, verifiable

Each glyph is derived from that day's manifest SHA-256 — the seal, made visible. Click a day to time-travel the explorer below to that sealed version; the newest day is selected by default.

Loading…

Explore the data

Loading…

Every chart is computed server-side from the selected hash-stamped version — aggregate distributions and censuses. Institutional datasets chart as distributions only; identities stay behind the key. Hover any bar for exact values; pick a day on the chain to view history.

Three requests to production curl the catalog, pull a CSV, verify a hash
# 1 · Browse the catalog — public, no key
curl -s https://quantlogix.ai/api/v1/datasets | jq '.datasets[] | {dataset, version, rows, sha256}'

# 2 · Pull a full dataset as CSV (ql_ key, Pro+ — create one at /api-docs)
curl -s -H "X-API-Key: ql_your_key" \
  "https://quantlogix.ai/api/v1/datasets?dataset=private-roster&data=1&format=csv" -o roster.csv

# 3 · Pin an exact version and verify its hash against the public chain
curl -s "https://quantlogix.ai/api/v1/datasets?dataset=private-roster&version=2026-08-19" | jq '.manifest.sha256'
curl -s "https://quantlogix.ai/api/rewind?verify=1" | jq '.intact'   # → true

Version resolution matches the archive: version=YYYY-MM-DD answers with the newest capture on or before that date, and a date before the archive began is a 404, never a fabricated file. Data responses carry X-QL-Dataset-Version and X-QL-Dataset-SHA256 headers.

Why the hash matters how a version is frozen and chained
Every night at 23:10 UTC, QL Rewind freezes each dataset and hashes it — sha256(stableStringify(payload)), key-order independent, deterministic.
Each day's manifest chains to the previous day's — rewriting any historical version breaks every link after it, publicly, at /api/rewind?verify=1.
Your pipeline can verify locally: recompute the hash over the payload you downloaded and compare it to the manifest. If they match, you hold exactly what was frozen that night.
Schemas are pinned in CI — the column set on this page is asserted against the engine's output in the test suite, so a schema change is a deliberate, versioned act, never drift.
Coverage & honesty what these slices are, and what they are not

These are the ranked/curated slices the platform itself publishes daily — top-150 signals, top-100 ETFs, top-200 roster valuations, the widest-spread secondaries, the full mark tape and the funds carrying it — with schemas built for diffing, not the deepest raw dumps. "Latest" always means the most recent captured day, honestly labelled with its capture timestamp; nothing here is recomputed at request time. The mark-tape and fund-exposure datasets follow their source product's tier: Institutional. Secondary marks carry only names with a live print — an unquoted company is absent, never carried forward at its last round price. Per-entity depth beyond these slices lives on the per-surface APIs documented at /api-docs.