Loading QuantGist...
Loading QuantGist...
Official-source, revision-aware macro and market events. v2 is a separate namespace mounted at /v2/ so existing v1 integrations are unaffected. Customers opt in when they are ready.
Every actual value carries a source URL and retrieval timestamp. Aggregator rows cannot override official data.
Pass ?as_of=2024-06-15 to get the value as published on that date, the first print, not the latest revision.
Every published revision is captured and queryable. Conflicting sources are quarantined until reconciled.
/v2/health endpoint returns "preview": true. Current coverage spans major macro releases: rate decisions, inflation, GDP, and employment. Additional series are added continuously.v2 is revision-aware and point-in-time. Every value carries a vintage; query any date with as_of=YYYY-MM-DD to see what was known at that moment, not the latest revision. Use this for honest backtests.
# Get US CPI YoY exactly as it was first published on 2024-06-15
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/events?canonical_id=US_CPI_YOY&as_of=2024-06-15"https://api.quantgist.com/v2Authentication is the same as v1: pass your API key in the X-API-Key header. The v2 OpenAPI schema is at https://api.quantgist.com/v2/openapi.json.
Returns status: "ok" with namespace and preview flag. No authentication required. Use this for uptime probes.
curl https://api.quantgist.com/v2/health{
"status": "ok",
"namespace": "v2",
"preview": true,
"timestamp": "2026-05-22T17:05:54.428472+00:00"
}The canonical registry maps stable upper-snake-case IDs (e.g. US_CPI_YOY, US_FOMC_RATE_DECISION) to consistent release definitions. Use these IDs in ?canonical_id= filters to query any release without title fuzzy-matching.
curl https://api.quantgist.com/v2/canonical-events?country=US \
-H "X-API-Key: YOUR_KEY"{
"data": [
{
"canonical_id": "US_CPI_YOY",
"title": "US Consumer Price Index (Year-over-Year)",
"country": "US",
"currency": "USD",
"impact": "high",
"updated_at": "2026-05-22T17:01:10.926714+00:00"
},
{
"canonical_id": "US_FOMC_RATE_DECISION",
"title": "US FOMC Rate Decision",
"country": "US",
"currency": "USD",
"impact": "high",
"updated_at": "2026-05-22T17:01:11.012345+00:00"
}
],
"total": 18
}curl https://api.quantgist.com/v2/canonical-events/US_FOMC_RATE_DECISION \
-H "X-API-Key: YOUR_KEY"The v2 events endpoint extends v1 with canonical_id, verification_status, conflict_status, and the ?as_of= query parameter. The default filter is verification_status=verified, which hides conflicting and unverified rows.
| Param | Type | Description |
|---|---|---|
canonical_id | string | Filter by stable cross-source ID (e.g. US_CPI_YOY) |
as_of | ISO 8601 | Return the actual value published on or before this date |
verification_status | "verified" | "any" | Default: verified. Use any to include unverified rows |
source_rank_max | integer 1–9 | 1 = official, 5 = aggregator. Default 9 (all) |
from_date | ISO 8601 | release_time ≥ this date |
to_date | ISO 8601 | release_time ≤ this date |
country | ISO 3166-2 | e.g. US, EU, GB |
currency | ISO 4217 | e.g. USD, EUR, GBP |
per_page | integer | 1–500, default 50 |
Ask what the CPI was as of a specific date. Rows without a vintage at or before the cutoff are excluded entirely, you can never accidentally leak a later revision into a historical model.
# US CPI on 2025-01-15, first-print value, not the latest revision
curl "https://api.quantgist.com/v2/events?canonical_id=US_CPI_YOY&as_of=2025-01-15" \
-H "X-API-Key: YOUR_KEY"Response: the actual as published on or before 2025-01-15
{
"data": [
{
"id": "c7a1b234-...",
"event_type": "economic_release",
"release_time": "2025-01-15T13:30:00+00:00",
"country": "US",
"currency": "USD",
"title": "Consumer Price Index, YoY",
"canonical_id": "US_CPI_YOY",
"actual": "2.9",
"forecast": "2.9",
"previous": "2.7",
"verification_status": "verified",
"impact": "high"
}
],
"total": 1,
"as_of": "2025-01-15T00:00:00+00:00",
"verification_status": "verified"
}Pass ?include_vintages=true to embed the full revision history under the vintages key. Pass ?as_of=YYYY-MM-DD to get the value as of a cutoff date.
curl "https://api.quantgist.com/v2/events/c7a1b234-abcd-1234-efgh-5678ijklmnop?include_vintages=true" \
-H "X-API-Key: YOUR_KEY"Response with embedded vintage history
{
"id": "c7a1b234-...",
"canonical_id": "US_CPI_YOY",
"actual": "2.9",
"verification_status": "verified",
"vintages": [
{
"id": "v001-...",
"vintage_date": "2025-01-15T13:30:00+00:00",
"actual": "2.9",
"revision_seq": 0,
"retrieved_at": "2025-01-15T14:02:11+00:00"
},
{
"id": "v002-...",
"vintage_date": "2025-02-12T13:30:00+00:00",
"actual": "3.0",
"revision_seq": 1,
"retrieved_at": "2025-02-12T14:01:55+00:00"
}
]
}Raw revision history for one event. Returns all vintages ordered by revision_seq: seq 0 is the first print, seq 1+ are subsequent revisions in publication order.
curl "https://api.quantgist.com/v2/events/c7a1b234-.../vintages" \
-H "X-API-Key: YOUR_KEY"v2 supports point-in-time queries via as_of and first-print queries via first_print_only. The /v2/backtest shortcut applies all four safety filters at once: released_only=true, actual_required=true, official_only=true, and first_print_only=true, plus the default verification_status=verified. So you cannot accidentally leak unreleased rows, aggregator values, or later revisions into a historical model. It also defaults to strict=true, which fails closed when a requested canonical ID does not pass coverage gates.
backtest_mode: true at the top level so downstream pipelines can assert the response is point-in-time safe.The plain events endpoint becomes a point-in-time query as soon as you pass as_of: rows without a vintage at or before the cutoff are dropped entirely.
# First-print US CPI YoY as published on or before 2024-06-15
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/events?canonical_id=US_CPI_YOY&as_of=2024-06-15"A convenience wrapper around /v2/events that enforces every backtest filter. Use this when you want the public macro backtesting contract. Use strict=false only for exploratory research after inspecting coverage warnings.
# Readiness check: fails tell you what is missing before you allocate compute
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest/coverage?canonical_id=US_CPI_YOY"
# Backtest-safe: official-source, released, non-null actual, first-print only
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_CPI_YOY&per_page=10"
# Common advertised macro series
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_NFP&from_date=2022-01-01"
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_FOMC_RATE_DECISION&from_date=2022-01-01"
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_GDP_QOQ_ADVANCE&from_date=2022-01-01"
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_PCE_YOY&from_date=2022-01-01"
curl -H "X-API-Key: $QUANTGIST_API_KEY" \
"https://api.quantgist.com/v2/backtest?canonical_id=US_CORE_PCE_YOY&from_date=2022-01-01"422 canonical_id_not_backtest_grade. Strict /v2/backtest fails closed: if a canonical has not yet passed every coverage hard gate (first-print vintage, official release timing, semantic fields, value-consistent vintages, enough rows), the request returns 422 with the unmet missing_requirements rather than serving incomplete or revised data. This is intended: call /v2/backtest/coverage first and only backtest canonicals with backtest_grade=true. Pass strict=false only for exploratory research.Coverage reports whether a canonical ID is backtest-grade, plus machine-readable missing requirements. Hard gates include first-print vintage coverage, official release timing, semantic fields, enough rows for the release frequency, consistent units, and no future release times. Forecast and previous coverage are informational; surprise backtests require enough forecast coverage and should check this endpoint first.
US CPI / Core CPI
liveUS PPI (Final Demand)
liveUS Non-Farm Payrolls
liveUS Unemployment Rate
liveUS PCE / Core PCE
liveUS GDP (Advance)
liveFOMC Rate Decisions
liveECB / Euro Area HICP
soonUK CPI / GDP
soonExtended vintage history
plannedThe v2 OpenAPI document is separate from v1 so SDK generators produce a clean typed client with no v1 noise.
# v2 schema (separate from v1)
curl https://api.quantgist.com/v2/openapi.json | jq '.info'
# v1 schema still available at the root
curl https://api.quantgist.com/openapi.json | jq '.info'Ready to try v2?
v2 endpoints are live and gated by the same API key as v1. Start with /v2/health, no auth required.