Production API Reference
High-contrast API docs for macro, FX, and market-structure data.
Use this page like a normal reference manual: start with authentication and language examples, jump to an endpoint family, then open the per-endpoint parameter and payload details below. The public surface covers announcements, forecasts, calendars, FX, COT, commodities, event risk, and rates-and-curves analytics.
Auth model
Query parameter
?api_key=YOUR_API_KEY
Default format
JSON over HTTPS
Compression, ETag revalidation, and pagination supported.
Best first call
/api/v1/announcements/usd/inflation
Free USD endpoint for integration smoke tests.
Core product promise
FXMacroData is built around two things: exact announcement_datetime values for historical,
no-lookahead backtests, and real-time delivery for newly published macro announcements. The indicator coverage index and each
/api-data-docs/{currency}/{indicator} page now show the earliest currently published start date as well.
Start here
Use the docs in the right order
The previous page tried to do everything at once. This version separates first-call setup, language examples, and the endpoint reference so you can move from test request to production integration with less scanning.
Step 1
Authenticate
Use public endpoints without a key where available, or append ?api_key=YOUR_API_KEY for authenticated routes.
See auth and limitsStep 2
Choose an endpoint family
Use the path inventory and family sections below to find the exact route, supported parameters, request examples, and coverage notes.
Browse all pathsStep 3
Copy a language example
Start with cURL, Python, or JavaScript on this page, then jump to Pine Script, MetaTrader, NinjaTrader, or Chainlink guides when you need platform-specific implementation.
View language examplesBacktesting
Point-in-time by default
Announcement endpoints carry exact release timestamps, not just period labels. That lets you align macro signals to what the market actually knew at each decision point.
Coverage depth
Visible history starts
Use the indicator coverage index or any per-endpoint docs page to see when currently published history begins for that exact currency and announcement series.
First API call
Quick Request
Start with a live announcement endpoint. Authentication stays in the api_key query parameter for direct browser and script testing.
curl "https://fxmacrodata.com/api/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
Examples by language
Platform-specific implementation guides
The quick request block above is for immediate testing. These guides cover real integrations in common languages and trading platforms.
Access model
36
Always free
Health, discovery, forex, market-session, GraphQL, and most thematic endpoint families require no API key.
Access model
5
Pro (USD: free for last 365 days)
Announcements, predictions, press releases, and COT use mixed access: USD is public in the freemium window, while non-USD access or deeper history requires a Professional API key.
Access model
7
Pro key required
Rates/curves analytics and commodity price endpoints require a Professional API key for every request.
On This Page
Page Index
Jump to any section below. Use the sticky bar above to navigate while scrolling.
Quick Start Guide
How To Use FXMacroData Endpoints and Authentication
Start with one complete walkthrough covering authentication, endpoint families, real request examples, and the fastest way to move from testing USD endpoints to a production multi-currency integration.
What it covers
- Authentication with ?api_key=YOUR_API_KEY
- Announcements, predictions/forecasts, release calendar, COT, metals, forex, and sessions
- Request patterns for USD-free and pro-key endpoint usage
Performance & efficiency
Compression, caching, and pagination
Every public read endpoint supports response compression, conditional revalidation, and opt-in pagination. Using these features cuts bandwidth and request latency without changing the JSON response shape.
1 · Gzip compression
Always on for clients that ask for it.
Send Accept-Encoding: gzip on requests. JSON time-series payloads typically compress 8–12×. Browsers, curl, requests, and most HTTP clients negotiate this automatically.
--compressed \
https://fxmacrodata.com/api/v1/announcements/usd/inflation
2 · ETag & Cache-Control
Re-poll for free with conditional GETs.
Every cacheable response carries an ETag and a Cache-Control header. Re-send the ETag in If-None-Match on the next poll — if data hasn't changed, you get an empty 304 Not Modified with no body, no Firestore read, and no egress.
→ HTTP/1.1 304 Not Modified
3 · Pagination
Optional limit & offset.
On /v1/announcements/{ccy}/{ind} and /v1/predictions/{ccy}, pass limit (1–10000) and optional offset to slice data[]. Rows are most-recent-first; omit both for full-window results (default behaviour, unchanged).
/v1/predictions/eur?limit=20&offset=20
Cache-Control by endpoint family
| Family | Anonymous | Authenticated |
|---|---|---|
| /v1/announcements/* /v1/predictions/* | public, max-age=10, swr=60 | private, no-store |
| /v1/calendar/* /v1/cot/* /v1/forex/* | public, max-age=60, stale-while-revalidate=300 | |
| /v1/data_catalogue/* /v1/market_sessions | public, max-age=60, stale-while-revalidate=300 | |
Single-indicator announcements & predictions use a version-keyed ETag (W/"{ccy}-{ind}-v{N}") that bumps on every successful ingest, so revalidation is essentially free at the origin.
Practical request example (Python)
import requests
s = requests.Session()
s.headers["Accept-Encoding"] = "gzip"
# First call: full body, ETag in headers
r1 = s.get(
"https://fxmacrodata.com/api/v1/announcements/usd/inflation",
params={"limit": 50},
)
etag = r1.headers["ETag"]
# Next poll: conditional GET, returns 304 if unchanged
r2 = s.get(
"https://fxmacrodata.com/api/v1/announcements/usd/inflation",
params={"limit": 50},
headers={"If-None-Match": etag},
)
print(r2.status_code) # 304 when nothing has been re-ingested
Operational guardrails
Rate limits & fair use
Rate limits apply only to authenticated requests. Anonymous traffic (no API key) is not rate-limited — we don't throttle by IP, so shared-infrastructure callers (Googlebot, ChatGPT, residential CDNs, corporate proxies) won't hit 429s just because many end users share one address. Per-key tiered budgets keep one identified client from saturating a Cloud Run instance and degrading service for everyone else. Pro and Enterprise are sized so normal production workloads — including dashboards, scheduled jobs, and live trading systems — never trip them.
Tier limits
| Tier | Requests / minute | Requests / hour | Requests / day | Concurrent in-flight | Per-endpoint / second |
|---|---|---|---|---|---|
| Anonymous (no key) | no limit | no limit | no limit | no limit | no limit |
| Free | 30 | 300 | 2,000 | 5 | 1 |
| Pro / Startup | 300 | 5,000 | 100,000 | 20 | no cap |
| Enterprise | 3,000 | 50,000 | 500,000 | 100 | no cap |
Admin keys and explicit partner allowlists bypass all checks. Limits are global per API key — calls to /announcements, /calendar, /forex, etc. all draw from the same minute/hour/day pool. Anonymous traffic carries no X-RateLimit-* headers because no per-request budget is tracked.
429 response shape
HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Window: minute
{"detail": "Rate limit exceeded (minute). Maximum 30 requests per 60s. See https://fxmacrodata.com/documentation/#rate-limits"}
Response headers (every request)
X-RateLimit-Limit— budget for the binding window (orbypassed/unlimited).X-RateLimit-Remaining— remaining slots in that window. Throttle when this trends toward zero.X-RateLimit-Window— on 429, identifies which budget tripped:minute,hour,day,endpoint, orconcurrency.Retry-After— seconds until the offending window resets (429 only).
Best practices
- Use conditional requests. Send
If-None-Matchwith the lastETag—304responses don't count against your endpoint cap and use ~5% of the bandwidth of a fresh payload. - Avoid wide fanouts on a single key. If you need to poll many endpoints in parallel, stay well under the concurrency cap (the binding constraint for bots that hit dozens of routes at once).
- Use
?limit=. Most endpoints accept alimitquery parameter so you only pull the rows you actually need. - Use low-latency store-only endpoints when you only need the newest rows. The
/v1/latest/*and/v1/recent/*routes cut payload size and skip wider history windows. - Need higher headroom? Email [email protected] and we'll size an Enterprise plan to your workload.
Schema-derived inventory
Complete public REST path inventory
This inventory is derived from the production OpenAPI schema so the site-level reference stays aligned with the live public surface, including newer sovereign, trade, housing, low-latency, and infrastructure routes.
health
Health & Infrastructure
/api/v1/health
Free
Ping the API
No API key required.
Data source: Operational health endpoints report FXMacroData service state, not third-party market data.
/api/v1/ping
Free
Ping the API
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/sla/summary
Free
Dev-only API SLA summary
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
statistics_releases
Statistics Releases
/api/v1/announcements/{currency}/{indicator}
Mixed access
Get macroeconomic indicator data
USD is publicly accessible within the freemium window. Other currencies or deeper history require a Professional API key.
Data source: Macroeconomic announcement and catalogue rows are normalized from official central-bank, national statistics, treasury, or government publisher releases. Responses expose publisher metadata via source, source_url, and provenance fields where available.
/api/v1/credit_conditions/{currency}
Free
Bank lending standards and credit conditions
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/wage_settlements/{currency}
Free
Official wage settlement and labor-cost trackers
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
predictions
Predictions
/api/v1/predictions/{currency}
Mixed access
List predictions for a currency
USD is publicly accessible within the freemium window. Other currencies or deeper history require a Professional API key.
Data source: Forecast rows identify the originating forecast source through prediction_source and prediction_source_label; realized actuals join back to official announcement rows by announcement_id.
/api/v1/predictions/{currency}/{indicator}
Mixed access
List predictions for one indicator of a currency
USD is publicly accessible within the freemium window. Other currencies or deeper history require a Professional API key.
Data source: Forecast rows identify the originating forecast source through prediction_source and prediction_source_label; realized actuals join back to official announcement rows by announcement_id.
calendar
Release Calendar
/api/v1/calendar/{currency}
Free
Get upcoming economic data release dates
No API key required.
Data source: Release-calendar rows are derived from official publisher schedules and FXMacroData endpoint metadata, with endpoint_path routing back to the source data family.
data_catalogue
Data Catalogue
/api/v1/data_catalogue/{currency}
Free
Get Currently Available Macroeconomic Indicators
No API key required.
Data source: Macroeconomic announcement and catalogue rows are normalized from official central-bank, national statistics, treasury, or government publisher releases. Responses expose publisher metadata via source, source_url, and provenance fields where available.
fx_markets
FX Markets
/api/v1/cot/{currency}
Mixed access
Get CFTC Commitment of Traders (COT) data
USD is publicly accessible within the freemium window. Other currencies or deeper history require a Professional API key.
Data source: COT positioning is sourced from the CFTC Commitment of Traders public reporting API and served with CFTC source_url/provenance metadata.
/api/v1/curve_proxies/{currency}
Pro key required
Get curve slope proxies
A Professional API key is required for every request.
Data source: Rates and curve analytics are computed from stored official government bond, central-bank, and market reference-rate observations. Derived fields document their source support where available.
/api/v1/curves/{currency}
Pro key required
Get official curve node snapshot
A Professional API key is required for every request.
Data source: Rates and curve analytics are computed from stored official government bond, central-bank, and market reference-rate observations. Derived fields document their source support where available.
/api/v1/forex/{base}/{quote}
Free
Get FX spot rates
No API key required.
Data source: FX spot series are served from FXMacroData's official reference-rate store. Responses include source and provenance metadata for the underlying rate series.
/api/v1/forward_curves/{currency}
Pro key required
Get derived forward curve segments
A Professional API key is required for every request.
Data source: Rates and curve analytics are computed from stored official government bond, central-bank, and market reference-rate observations. Derived fields document their source support where available.
/api/v1/forward_differentials/{base}/{quote}
Pro key required
Get pair forward-rate differentials
A Professional API key is required for every request.
Data source: Rates and curve analytics are computed from stored official government bond, central-bank, and market reference-rate observations. Derived fields document their source support where available.
/api/v1/market_sessions
Free
FX market session timetable
No API key required.
Data source: Market-session status is calculated from exchange-session calendars and timezone rules rather than a third-party price feed.
/api/v1/rate_differentials/{base}/{quote}
Pro key required
Get pair rate differentials
A Professional API key is required for every request.
Data source: Rates and curve analytics are computed from stored official government bond, central-bank, and market reference-rate observations. Derived fields document their source support where available.
/api/v1/risk_sentiment
Free
Global risk-on / risk-off indicator
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
news
News
/api/v1/news/{currency}
Free
Official government and supranational organisation news
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
press_releases
Press Releases
/api/v1/press-releases/{currency}
Mixed access
Recent central bank press releases
USD is publicly accessible within the freemium window. Other currencies or deeper history require a Professional API key.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
graphql
GraphQL
/api/v1/graphql
Free
Handle Http Get
No API key required.
Data source: GraphQL exposes the same source-aware FXMacroData datasets as the REST endpoints; request source/provenance fields where the schema supports them.
monetary_policy
Monetary Policy
/api/v1/cb_liquidity/{currency}
Free
Central-bank liquidity operations and facility usage
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/cb_rules/{currency}
Free
Central bank FX intervention rules and exchange rate regime
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/central_bankers/{currency}
Free
Central bank officials — current and past
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/fx_intervention/{currency}
Free
Official FX intervention operations
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
domestic_supply_demand
Domestic Supply & Demand
/api/v1/electricity/{currency}
Free
Household electricity prices by currency
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
/api/v1/housing/{currency}
Free
Housing market indicators by currency
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
/api/v1/petrol_prices/{currency}
Free
At-the-pump retail petrol/gasoline prices by currency
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
fiscal_policy
Fiscal Policy
/api/v1/auction_metrics/{currency}
Free
Sovereign auction microstructure metrics
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/bond_issuances/{currency}
Free
Government bond auction and issuance results
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
/api/v1/esg/{currency}
Free
Sovereign ESG indicators by currency
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/expenses/{currency}
Free
Government expenditure breakdown by function
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/external_debt/{currency}
Free
External debt maturity profile
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/fiscal/{currency}
Free
National government debt, tax revenue, and budget balance
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
/api/v1/treasury_cash/{currency}
Free
Treasury cash position and short-term funding pressure
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
politics
Politics & Event Risk
/api/v1/economic_events
Free
Major international economic events relevant to FX
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/elections/{currency}
Free
Political elections and FX impact by currency
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/geopolitical_events
Free
FX-relevant world events from GDELT
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
international_trade
International Trade
/api/v1/bop/{currency}/{component}
Free
Detailed balance-of-payments component series
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/capital_flows/{currency}
Free
Cross-border portfolio flow tracker
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/iip/{currency}
Free
International investment position
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/services_trade/{currency}
Free
Services trade balance
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
/api/v1/shipping/{indicator}
Free
Global shipping and maritime indicators
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
/api/v1/tariffs/{currency}
Free
Trade tariff regimes and FX impact by currency
No API key required.
Data source: This endpoint family is backed by official publisher records such as central-bank, treasury, national statistics, trade, or policy-agency sources, normalized into FXMacroData's Firestore serving layer.
commodities
Commodities
/api/v1/commodities/latest
Pro key required
Get latest stored values for all commodity indicators
A Professional API key is required for every request.
Data source: Commodity series are sourced from official fixing or publisher datasets and served with source, source_url, and provenance metadata.
/api/v1/commodities/{indicator}
Pro key required
Get commodity indicator data
A Professional API key is required for every request.
Data source: Commodity series are sourced from official fixing or publisher datasets and served with source, source_url, and provenance metadata.
/api/v1/opec/{indicator}
Free
OPEC oil market indicators
No API key required.
Data source: Data is served from FXMacroData-controlled API or Firestore layers. Domain data endpoints document upstream publisher source/provenance fields where those fields are part of the response contract.
Endpoint family · 01 of 3
Macro data and discovery
Fetch normalized macroeconomic indicator series with announcement timestamps, browse upcoming release schedules, and discover available indicators per currency.
/api/v1/announcements/{currency}/{indicator}
Pro key · USD free
Historical macroeconomic indicator series with announcement timestamps.
USD is free without a key. All other currencies require a Professional API key.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code.
e.g. usd, eur, gbp, jpy, aud, cad, chf, nzd, sgd, sek, dkk, pln, brl, hkd, nok |
indicator |
string | required |
Indicator slug. Use /v1/data_catalogue/{currency} to list available slugs per currency.
e.g. gdp, inflation, core_inflation, policy_rate, unemployment |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_date |
string (YYYY-MM-DD) | optional |
Earliest observation date to include. Date filters are applied before pagination. Authenticated requests page through full stored history when omitted; anonymous USD requests are limited to the most recent 365 days.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
Latest observation date to include. Defaults to today.
e.g. 2026-03-01 |
limit |
integer | optional |
Maximum number of rows to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset; page=2 with limit=20 is equivalent to offset=20.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based row offset after date filtering. Use with pagination.next_offset to request the next page.
e.g. 0, 20, 40 |
api_key |
string | pro/free |
Professional API key. Required for non-USD currencies and for USD requests that need history older than 365 days.
e.g. YOUR_API_KEY |
Response fields
| Field | Type | Description |
|---|---|---|
currency |
string | 3-letter currency code. |
indicator |
string | Indicator slug as requested. |
has_official_forecast |
boolean | True if the central bank publishes an official forecast for this indicator. |
start_date |
string | Earliest date in the filtered result set (YYYY-MM-DD). |
end_date |
string | Latest date in the filtered result set (YYYY-MM-DD). |
earliest_available_date |
string | null | Earliest date available for this series before any date filter or pagination is applied. |
latest_available_date |
string | null | Latest date available for this series before pagination is applied. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of rows included in data[]. |
pagination.total_count |
integer | Total number of rows matching the path and date filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
cb_target |
object | null | Central bank target metadata (e.g. inflation target range), if applicable. |
data[].date |
string | Observation date (YYYY-MM-DD). |
data[].announcement_id |
string | Stable announcement identifier in the form `{currency}_{indicator}_{date}` — use it to join predictions from /v1/predictions/{currency} and revision history. |
data[].val |
number | null | Observed value in the indicator's native unit. |
data[].announcement_datetime |
integer | null | Unix timestamp (UTC) of the official data release. |
data[].pct_change |
number | null | Period-over-period percentage change. |
data[].pct_change_12m |
number | null | 12-month rolling percentage change. |
source |
string | Human-readable upstream publisher or source family for this response. |
source_url |
string | null | Official publisher URL or source landing page when available. |
provenance |
object | Structured provenance metadata including publisher, storage layer, served_by, timestamp field, and value field. |
source_series_name |
string | null | Publisher's source-series label when FXMacroData stores one. |
source_local_name |
string | null | Local-language or publisher-native series name when available. |
provenance.publisher |
string | Official upstream publisher for the requested currency/indicator series. |
provenance.storage |
string | FXMacroData serving storage layer, typically FXMacroData Firestore. |
Example request
Public USD endpoint — anonymous callers receive the most recent 365 days. Add `?api_key=YOUR_API_KEY` to page through full stored USD history or to access any other currency. Date filters are applied before pagination. The default page size is 20 rows and the maximum is 100. Use either `page` or `offset`; when both are provided, `page` takes precedence. Forecasts are served separately by /v1/predictions/{currency}; join via `announcement_id`.
Supported currencies (35)
/api/v1/predictions/{currency}
Pro key · USD free
Forecasts/predictions linked to announcements via announcement_id (market consensus, central-bank forecasts, IMF WEO, surveys).
USD is free without a key. All other currencies require a Professional API key.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code.
e.g. usd, eur, gbp, jpy, aud, cad, chf, nzd |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
indicator |
string | optional |
Optional indicator slug filter (e.g. inflation, policy_rate).
e.g. inflation, policy_rate, unemployment |
prediction_type |
string | optional |
Filter by forecast category: market_consensus, market_prediction, survey, central_bank_forecast, imf_weo.
e.g. market_consensus, central_bank_forecast, imf_weo |
prediction_source |
string | optional |
Filter by source identifier (e.g. philly_fed_spf, ecb_spf, imf_weo, rbnz_mps).
e.g. philly_fed_spf, ecb_spf, imf_weo |
start_date |
string (YYYY-MM-DD) | optional |
Earliest period date to include. Date filters are applied before pagination.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
Latest period date to include.
e.g. 2026-12-31 |
limit |
integer | optional |
Maximum number of announcement groups to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based announcement-group offset after filters are applied.
e.g. 0, 20, 40 |
api_key |
string | pro/free |
Professional API key. Required for non-USD currencies and for USD requests that need history older than 365 days.
e.g. YOUR_API_KEY |
Response fields
| Field | Type | Description |
|---|---|---|
currency |
string | Currency code as requested. |
indicator |
string | null | Indicator filter if provided, otherwise null. |
prediction_type |
string | null | Active prediction-type filter, if any. |
prediction_source |
string | null | Active prediction-source filter, if any. |
count |
integer | Number of announcement groups returned in data[]. |
prediction_count |
integer | Total number of per-source predictions across all announcement groups. |
earliest_available_date |
string | null | Earliest date available for the filtered forecast universe before pagination. |
latest_available_date |
string | null | Latest date available for the filtered forecast universe before pagination. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of announcement groups included in data[]. |
pagination.total_count |
integer | Total number of announcement groups matching the filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
data[].announcement_id |
string | Identifier of the announcement these forecasts target — matches data[].announcement_id on /v1/announcements/{currency}/{indicator}. |
data[].currency |
string | Currency of the forecasted indicator (lowercase). |
data[].indicator |
string | Indicator slug of the forecasted release. |
data[].date |
string | Reference period date of the forecast (YYYY-MM-DD). |
data[].announcement_datetime |
integer | null | Unix timestamp (UTC) of the forecasted announcement, when known. |
data[].predictions[].predicted_value |
number | Forecast value in the indicator's native unit. |
data[].predictions[].prediction_type |
string | null | Forecast category: market_consensus, market_prediction, survey, central_bank_forecast, imf_weo, fxmacrodata. |
data[].predictions[].prediction_source |
string | null | Stable identifier of the prediction data source. |
data[].predictions[].prediction_source_label |
string | null | Human-readable name for the prediction source. |
data[].predictions[].generated_at |
integer | null | Unix timestamp (UTC) when the prediction was generated, when available. |
Example request
Use the announcement_id to join each prediction with the realised observation returned by /v1/announcements/{currency}/{indicator}. Prediction endpoints paginate announcement groups, with a default page size of 20 and a maximum of 100.
Supported currencies (35)
/api/v1/predictions/{currency}/{indicator}
Pro key · USD free
All available forecasts for one currency/indicator pair, linked via announcement_id.
USD is free without a key. All other currencies require a Professional API key.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code.
e.g. usd, eur, gbp, jpy |
indicator |
string | required |
Indicator slug. Use /v1/data_catalogue/{currency} to discover available slugs.
e.g. inflation, unemployment, policy_rate |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
prediction_type |
string | optional |
Filter by forecast category: market_consensus, market_prediction, survey, central_bank_forecast, imf_weo.
e.g. imf_weo |
prediction_source |
string | optional |
Filter by source identifier.
e.g. philly_fed_spf |
start_date |
string (YYYY-MM-DD) | optional |
Earliest period date. Date filters are applied before pagination.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
Latest period date.
e.g. 2026-12-31 |
limit |
integer | optional |
Maximum number of announcement groups to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based announcement-group offset after filters are applied.
e.g. 0, 20, 40 |
api_key |
string | pro/free |
Professional API key. Required for non-USD currencies and for USD requests that need history older than 365 days.
e.g. YOUR_API_KEY |
Response fields
| Field | Type | Description |
|---|---|---|
earliest_available_date |
string | null | Earliest date available for the filtered forecast universe before pagination. |
latest_available_date |
string | null | Latest date available for the filtered forecast universe before pagination. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of announcement groups included in data[]. |
pagination.total_count |
integer | Total number of announcement groups matching the filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
data[].announcement_id |
string | Identifier matching data[].announcement_id on /v1/announcements/{currency}/{indicator}. |
data[].announcement_datetime |
integer | null | Unix timestamp (UTC) of the forecasted announcement. |
data[].predictions[].predicted_value |
number | Forecast value in the indicator's native unit. |
data[].predictions[].prediction_type |
string | null | Forecast category. |
data[].predictions[].prediction_source |
string | null | Stable source identifier. |
data[].predictions[].prediction_source_label |
string | null | Human-readable name for the prediction source. |
data[].predictions[].generated_at |
integer | null | Unix timestamp (UTC) when the prediction was generated. |
Example request
Join predictions to actuals via the announcement_id field shared with /v1/announcements/{currency}/{indicator}. Walk pages with `page`, `offset`, or `pagination.next_offset`.
Supported currencies (35)
/api/v1/calendar/{currency}
Free
Upcoming release dates for a currency and optional indicator filter.
Fully public — no API key required.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code or COMM for commodity release schedules.
e.g. usd, eur, gbp, jpy, aud, cad, chf, nzd, sgd, sek, dkk, pln, brl, hkd, nok, COMM |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
indicator |
string | optional |
Optional filter to a specific indicator slug (e.g. inflation, gdp).
e.g. inflation, gdp, unemployment |
Response fields
| Field | Type | Description |
|---|---|---|
currency |
string | Currency code as requested. |
indicator |
string | null | Indicator filter if provided, otherwise null. |
data[].announcement_datetime |
integer | Unix timestamp (UTC) of the upcoming release. |
data[].release |
string | Indicator slug for this release row (e.g. inflation, policy_rate). |
data[].domain |
string | Present on non-announcement rows (e.g. cot). Identifies the data domain. |
data[].endpoint_family |
string | Endpoint family identifier for non-announcement rows (e.g. cot). |
data[].endpoint_path |
string | Suggested API path to fetch the full release data. |
data[].requires_api_key |
boolean | Whether the linked endpoint requires a Professional API key. |
data[].title |
string | Human-readable title for the release (present on extended domain rows). |
Example request
Returns all upcoming USD macro release dates. Filter by indicator with ?indicator=inflation.
Supported currencies (47)
/api/v1/data_catalogue/{currency}
Free
Available indicator metadata for a currency.
Fully public — no API key required.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code.
e.g. usd, eur, gbp, jpy, aud, cad, chf, nzd |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
include_capabilities |
boolean | optional |
If true, adds route and authentication discovery metadata per indicator.
e.g. true |
include_coverage |
boolean | optional |
If true, adds a per-currency availability grid across all supported currencies.
e.g. true |
Response fields
| Field | Type | Description |
|---|---|---|
{indicator_slug} |
object | Top-level key is the indicator slug (e.g. gdp, inflation, policy_rate). |
{slug}.name |
string | Human-readable indicator name. |
{slug}.unit |
string | Unit of measurement (e.g. %YoY, %QoQ, %). |
{slug}.frequency |
string | Release frequency (Monthly, Quarterly, Meeting, Daily). |
{slug}.has_official_forecast |
boolean | Whether the central bank publishes an official forecast. |
{slug}.source |
string | null | Official publisher/source label for this currency and indicator. |
{slug}.source_url |
string | null | Official publisher/source URL for this currency and indicator, when available. |
coverage[].source |
string | null | Per-currency source label when include_coverage=true. |
coverage[].source_url |
string | null | Per-currency official source URL when include_coverage=true. |
Example request
Lists all indicators available for USD with name, unit, and frequency metadata.
Supported currencies (35)
Endpoint family · 02 of 3
FX market structure and sentiment
Query spot FX pairs and inspect the live global trading-session schedule for market-timing workflows.
/api/v1/forex/{base}/{quote}
Free
Daily FX spot-rate series for a currency pair, with optional technical indicators.
Fully public — no API key required.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
base |
string | required |
Base currency 3-letter code.
e.g. EUR, GBP, USD, AUD |
quote |
string | required |
Quote currency 3-letter code.
e.g. USD, JPY, CHF, CAD |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_date |
string (YYYY-MM-DD) | optional |
Earliest trading date to include. Date filters are applied before pagination. Defaults to 365 days ago.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
End of the date range. Defaults to today.
e.g. 2026-03-01 |
limit |
integer | optional |
Maximum number of trading days to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based row offset after date filtering.
e.g. 0, 20, 40 |
indicators |
string | optional |
Comma-separated technical indicator slugs to append to each row (e.g. sma_20,rsi_14).
e.g. sma_20,rsi_14 |
Response fields
| Field | Type | Description |
|---|---|---|
base |
string | Base currency code. |
quote |
string | Quote currency code. |
start_date |
string | Earliest date in the series (YYYY-MM-DD). |
end_date |
string | Latest date in the series (YYYY-MM-DD). |
earliest_available_date |
string | null | Earliest stored trading date for the pair before date filtering and pagination. |
latest_available_date |
string | null | Latest stored trading date for the pair before pagination. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of rows included in data[]. |
pagination.total_count |
integer | Total number of rows matching the pair and date filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
data[].date |
string | Trading date (YYYY-MM-DD). |
data[].val |
number | null | Spot rate for the pair on this date. |
indicators.{slug}.{date} |
number | null | Per-date value for the requested technical indicator (e.g. sma_20, rsi_14). Only present when indicators parameter is supplied. Multi-series indicators (macd, bollinger_bands) return nested dicts. |
source |
string | Human-readable upstream publisher or source family for this response. |
source_url |
string | null | Official publisher URL or source landing page when available. |
provenance |
object | Structured provenance metadata including publisher, storage layer, served_by, timestamp field, and value field. |
Example request
Returns daily EUR/USD spot rates. Daily market endpoints use the same pagination contract: default page size 20, maximum 100, one-based `page`, zero-based `offset`, and `pagination.next_offset` for traversal.
Supported currencies (35)
/api/v1/market_sessions
Free
Real-time FX market-session and overlap timetable.
Fully public — no API key required.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
at |
string (ISO-8601 UTC) | optional |
Optional reference timestamp for scheduling or back-testing. Defaults to current server time.
e.g. 2026-03-05T12:00:00Z |
Response fields
| Field | Type | Description |
|---|---|---|
now_utc |
string | Current server time in ISO-8601 UTC. |
now_unix |
integer | Current server time as Unix epoch. |
is_market_day |
boolean | False on weekends and major market holidays. |
sessions[].name |
string | Session name (Sydney, Tokyo, London, New York). |
sessions[].display_name |
string | Full descriptive name including region. |
sessions[].description |
string | Brief characterisation of the session. |
sessions[].currencies |
array | Currency codes most active during this session. |
sessions[].timezone |
string | IANA timezone for the session's home market. |
sessions[].open_utc |
string | Today's session open in ISO-8601 UTC. |
sessions[].close_utc |
string | Today's session close in ISO-8601 UTC. |
sessions[].is_open |
boolean | Whether the session is currently open. |
sessions[].seconds_to_open |
integer | null | Seconds until this session opens (null if already open or closed for the day). |
sessions[].seconds_to_close |
integer | null | Seconds until this session closes (null if not currently open). |
overlaps[].name |
string | Overlap window name (e.g. London / New York). |
overlaps[].sessions |
array | Session names that form this overlap. |
overlaps[].description |
string | Characterisation of liquidity during this overlap. |
overlaps[].priority |
string | Liquidity priority — high, medium, or low. |
overlaps[].notable_pairs |
array | Most actively traded pairs during this overlap. |
overlaps[].start_utc |
string | Overlap window start in ISO-8601 UTC. |
overlaps[].end_utc |
string | Overlap window end in ISO-8601 UTC. |
overlaps[].is_active |
boolean | Whether the overlap window is currently active. |
overlaps[].duration_hours |
number | Duration of the overlap in hours. |
Example request
Returns a real-time snapshot of all four sessions plus overlap windows. Use ?at=2026-03-05T08:00:00Z for a historical snapshot.
Endpoint family · 03 of 3
Market positioning and metals
CFTC Commitment of Traders positioning by currency and precious metals price series for cross-market analysis.
/api/v1/cot/{currency}
Pro key required
Weekly CFTC Commitment of Traders positioning by currency.
Always requires a Professional API key.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
currency |
string | required |
3-letter currency code. Maps to the corresponding CME FX futures contract.
e.g. USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_date |
string (YYYY-MM-DD) | optional |
Earliest as-of date to include. Date filters are applied before pagination. Defaults to 52 weeks ago.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
End of the date range. Defaults to today.
e.g. 2026-03-01 |
limit |
integer | optional |
Maximum number of weekly rows to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based row offset after date filtering.
e.g. 0, 20, 40 |
api_key |
string | required |
Professional API key.
e.g. YOUR_API_KEY |
Supported currencies
Response fields
| Field | Type | Description |
|---|---|---|
currency |
string | 3-letter currency code. |
instrument |
string | Full CFTC instrument name (e.g. JAPANESE YEN - CHICAGO MERCANTILE EXCHANGE). |
fx_overlay.pair |
string | Conventional spot pair label for chart overlays (e.g. USD/JPY, GBP/USD, DXY). |
start_date |
string | Start of the returned series (YYYY-MM-DD). |
end_date |
string | End of the returned series (YYYY-MM-DD). |
earliest_available_date |
string | null | Earliest stored COT date for this currency before date filtering and pagination. |
latest_available_date |
string | null | Latest stored COT date for this currency before pagination. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of rows included in data[]. |
pagination.total_count |
integer | Total number of rows matching the filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
data[].date |
string | Tuesday as-of date for the COT snapshot (YYYY-MM-DD). |
data[].announcement_datetime |
integer | Unix timestamp of the Friday 3:30 PM ET CFTC publication for this row. |
data[].open_interest |
integer | Total open interest across all participants. |
data[].noncommercial_long |
integer | Non-commercial (speculative) long positions. |
data[].noncommercial_short |
integer | Non-commercial (speculative) short positions. |
data[].noncommercial_net |
integer | Net speculative positioning (long minus short). |
data[].noncommercial_spread |
integer | Non-commercial spread positions. |
data[].commercial_long |
integer | Commercial (hedger) long positions. |
data[].commercial_short |
integer | Commercial (hedger) short positions. |
data[].commercial_net |
integer | Net commercial positioning (long minus short). |
data[].total_reportable_long |
integer | Total reportable long positions. |
data[].total_reportable_short |
integer | Total reportable short positions. |
data[].nonreportable_long |
integer | Non-reportable (small trader) long positions. |
data[].nonreportable_short |
integer | Non-reportable (small trader) short positions. |
source |
string | Human-readable upstream publisher or source family for this response. |
source_url |
string | null | Official publisher URL or source landing page when available. |
provenance |
object | Structured provenance metadata including publisher, storage layer, served_by, timestamp field, and value field. |
Example request
Returns USD COT history. All COT requests require a Professional API key. Data sourced from the CFTC Legacy Futures-Only report. Use `page`, `offset`, or `pagination.next_offset` to fetch additional weekly rows.
/api/v1/commodities/{indicator}
Pro key required
Precious metals price series for gold, silver, and platinum.
Always requires a Professional API key regardless of indicator.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
indicator |
string | required |
Commodity indicator slug.
e.g. gold, silver, platinum |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_date |
string (YYYY-MM-DD) | optional |
Earliest observation date to include. Date filters are applied before pagination. Defaults to 365 days ago.
e.g. 2025-01-01 |
end_date |
string (YYYY-MM-DD) | optional |
End of the date range. Defaults to today.
e.g. 2026-03-01 |
limit |
integer | optional |
Maximum number of daily rows to return per page. Defaults to 20; maximum 100.
e.g. 20 |
page |
integer | optional |
One-based page number. When supplied, page takes precedence over offset.
e.g. 1, 2, 3 |
offset |
integer | optional |
Zero-based row offset after date filtering.
e.g. 0, 20, 40 |
api_key |
string | required |
Professional API key.
e.g. YOUR_API_KEY |
Supported metals indicators (3)
| Slug | Name | Unit | Frequency |
|---|---|---|---|
gold |
Gold (LBMA PM Fix) | USD/troy oz | Daily |
silver |
Silver (LBMA Fix) | USD/troy oz | Daily |
platinum |
Platinum Spot | USD/troy oz | Daily |
Response fields
| Field | Type | Description |
|---|---|---|
currency |
string | Always COMM (commodity namespace). |
indicator |
string | Precious metals slug as requested (e.g. gold, silver, platinum). |
has_official_forecast |
boolean | Always false — precious metals have no official central bank forecast. |
start_date |
string | Earliest date in the returned series (YYYY-MM-DD). |
end_date |
string | Latest requested end date (YYYY-MM-DD). |
earliest_available_date |
string | null | Earliest stored date for the commodity series before date filtering and pagination. |
latest_available_date |
string | null | Latest stored date for the commodity series before pagination. |
pagination.limit |
integer | Page size used for this response. |
pagination.offset |
integer | Zero-based offset used for this response. |
pagination.returned_count |
integer | Number of rows included in data[]. |
pagination.total_count |
integer | Total number of rows matching the filters before pagination. |
pagination.has_more |
boolean | True when another page is available. |
pagination.next_offset |
integer | null | Offset to use for the next page, or null when there are no more rows. |
data[].date |
string | Observation date (YYYY-MM-DD). |
data[].val |
number | null | Price or index value in the indicator's native unit. |
data[].announcement_datetime |
integer | null | Unix timestamp of the official data publication (null for daily prices). |
data[].pct_change |
number | null | Period-over-period percentage change. |
data[].pct_change_12m |
number | null | 12-month rolling percentage change. |
source |
string | Human-readable upstream publisher or source family for this response. |
source_url |
string | null | Official publisher URL or source landing page when available. |
provenance |
object | Structured provenance metadata including publisher, storage layer, served_by, timestamp field, and value field. |
Example request
Returns gold LBMA PM Fix daily spot prices. Replace gold with silver or platinum for the other supported metals. Daily commodity endpoints use the same paginated contract as daily FX and bond-style series.
Indicator coverage
Announcement endpoint index
Per-currency detail pages for every announcement indicator. USD endpoints are free; all others require a Professional subscription.
Economy (28)
Balance on Goods
balance_on_goods
Balance of payments: trade in goods.
Balance on Services
balance_on_services
Balance of payments: trade in services.
Building Permits
building_permits
Number of new residential construction permits authorized, a leading indicator of future housing activity and...
Business Confidence
business_confidence
Survey-based measure of business executives' outlook on economic conditions, production, and investment plans.
Consumer Confidence
consumer_confidence
Survey-based measure of consumers' confidence in economic conditions, employment prospects, and personal finances.
Core Inflation
core_inflation
CPI excluding volatile items like food and energy.
Core Inflation MoM
core_inflation_mom
Month-over-month change in core consumer prices (excluding food and energy), tracking underlying inflation trends.
Current Account Balance
current_account_balance
Measures trade in goods and services and income flows.
Dairy Exports
dairy_exports
Monthly New Zealand dairy export value from official Stats NZ overseas merchandise trade HS10 export data.
Durable Goods Orders
durable_goods_orders
Measures new orders placed with domestic manufacturers for delivery of long-lasting goods.
Exports of Goods & Services
exports
Total exports reported by ABS (AUD millions), quarterly based on national accounts.
Gross Domestic Product (GDP) Growth
gdp
GDP growth: the quarterly change in the inflation-adjusted value of all goods and services produced in the economy.
Government Debt
government_debt
Total outstanding debt obligations of the central government, indicating fiscal sustainability and public sector...
House Price Index
house_price_index
Measures changes in residential property prices over time, reflecting housing market conditions and consumer wealth.
Housing Starts
housing_starts
Number of new residential construction projects that have begun in a given period, a key indicator of economic...
Imports of Goods & Services
imports
Total imports reported by ABS (AUD millions), quarterly based on national accounts.
Industrial Production
industrial_production
Measures the output of the industrial sector (manufacturing, mining, utilities).
Inflation Rate (CPI/HICP)
inflation
Headline inflation: the year-over-year percentage change in the Consumer Price Index (CPI), the standard measure...
Inflation MoM
inflation_mom
Month-over-month change in the consumer price index, measuring short-term inflationary momentum.
Services PMI (NMI)
nmi
Non-Manufacturing Index (NMI) or Services PMI, a leading indicator of economic activity in the services sector. A...
PCE Price Index
pce
The headline Personal Consumption Expenditures price index published by BEA.
PCE MoM
pce_mom
Month-over-month change in the Personal Consumption Expenditures price index.
Manufacturing PMI
pmi
Purchasing Managers' Index for the manufacturing sector, a leading indicator of economic activity based on surveys...
Producer Price Index (PPI)
ppi
Measures the average change over time in the selling prices received by domestic producers for their output.
Producer Price Index MoM (PPI)
ppi_mom
Month-over-month change in producer prices, an early indicator of inflationary pressure in the supply chain.
Retail Sales
retail_sales
Measures change in the total value of sales at the retail level.
Trade Balance
trade_balance
The difference between the value of a country's exports and imports.
Labor Market (11)
Average Hourly Earnings
average_hourly_earnings
Measures the change in the price businesses pay for labor.
Full-Time Employment
full_time_employment
Number of persons employed full-time.
Initial Jobless Claims
initial_jobless_claims
Weekly initial unemployment insurance claims.
Job Openings
job_openings
Total number of unfilled job positions, a key indicator of labor market demand and tightness.
NAIRU (Natural Rate of Unemployment)
nairu
Non-Accelerating Inflation Rate of Unemployment — the estimated unemployment rate consistent with stable inflation,...
Non-Farm Payrolls (NFP)
non_farm_payrolls
Number of workers in the U.S. excluding farm workers.
Part-Time Employment
part_time_employment
Number of persons employed part-time.
Labor Force Participation Rate
participation_rate
Ratio of the labor force to the working-age population.
Unemployment Rate
unemployment
Percentage of the labor force that is unemployed.
Money & Credit (11)
Broad Money (M3)
broad_money
Total money supply including cash, deposits and other liquid assets.
Credit Growth
credit_growth
Total credit growth from RBA series.
Total Domestic Credit
domestic_credit
Net credit to central government + private sector credit. RBNZ column C+D.
Narrow Money (M1)
m1
Currency in circulation + transaction deposits. RBNZ column A.
M2 Money Supply
m2
M1 + savings deposits (on-call). RBNZ derived: column A + B1.
Broad Money (M3)
m3
M1 + savings + term deposits. RBNZ column A+B (broadest aggregate).
Currency in Circulation
money_supply_currency
Currency held by the public. M1 sub-component A1.
Savings Deposits
money_supply_savings_deposits
On-call savings deposits. M2 incremental component B1.
Transaction Deposits
money_supply_transaction_deposits
Demand deposits. M1 sub-component A2.
Monetary Policy (5)
Central Bank Total Assets
cb_assets
Total assets on the central bank's balance sheet, reflecting the scale of monetary policy operations including...
Foreign Exchange Reserves
foreign_reserves
Assets held by the central bank in foreign currencies, used to support the exchange rate and manage monetary policy....
Gold Reserves
gold_reserves
Quantity of gold held by the central bank as part of its foreign exchange reserves, measured in value terms.
Central Bank Policy Rate
policy_rate
Primary interest rate set by the Central Bank.
Government Bond Yields (12)
1-Year Government Bond Yield
gov_bond_1y
40-Year Government Bond Yield
gov_bond_40y
4-Year Government Bond Yield
gov_bond_4y
Interest Rates (1)
SNB Indicators (2)
Additional Indicators (37)
BoC Business Outlook
boc_business_outlook
Indicator validated by integration tests.
Building Approvals
building_approvals
Indicator validated by integration tests.
Central Bank Reserves - Domestic Currency
cb_reserves_domestic_currency
Central Bank Reserves - Foreign Currency
cb_reserves_foreign_currency
Energy Commodities
commodity_price_energy
Indicator validated by integration tests.
Ex-Energy Commodities
commodity_price_ex_energy
Indicator validated by integration tests.
Commodity Price Index
commodity_price_index
Indicator validated by integration tests.
Consumer Expectations
consumer_expectations
Indicator validated by integration tests.
Core Inflation (Median)
core_inflation_median
Indicator validated by integration tests.
Core Inflation (Trim)
core_inflation_trim
Indicator validated by integration tests.
Core PCE (PCE ex Food & Energy)
core_pce
Excess Reserves (Local Currency)
excess_reserves
Household Credit
household_credit
Indicator validated by integration tests.
Inflation Expectations
inflation_expectations
Indicator validated by integration tests.
Inflation (YTD)
inflation_ytd
KOF Barometer
kof_barometer
Indicator validated by integration tests.
Local Currency Deposits Share
local_currency_deposits_pct
Local Currency Loans Share
local_currency_loans_pct
Monetary Base
monetary_base
Monetary Emission
monetary_emission
Monthly CPI
monthly_cpi
Indicator validated by integration tests.
Mortgage Rate
mortgage_rate
Indicator validated by integration tests.
Other Deposits
other_deposits
Marginal Lending Facility Rate
policy_rate_mlf
Main Refinancing Operations Rate
policy_rate_mro
Federal Funds Target Range Lower Bound
policy_rate_target_lower
Tankan Capex
tankan_capex
Indicator validated by integration tests.
Total Deposits
total_deposits
Trimmed Mean Inflation
trimmed_mean_inflation
Indicator validated by integration tests.
Wage Price Index
wage_price_index
Indicator validated by integration tests.
No indicators match your search.
API response structure
Representative payload snapshots
Example field values from the live production contract. Core timestamp semantics are consistent across families; each endpoint adds domain-specific fields on top.
Discovery
USD catalogue metadata
Indicator discovery is not limited to one headline series. The live USD catalogue currently includes growth, inflation, rates, labor, housing, liquidity, and reserve metrics.
/api/v1/data_catalogue/usd
Announcement Series
EUR inflation release data
Announcement series return a top-level envelope plus a data array of observations, each stamped with the exact publication timestamp used for event-driven research.
/api/v1/announcements/eur/inflation
COT Positioning
GBP speculative positioning
Weekly CFTC COT data tracks net speculative positioning by currency. Includes open interest, long/short splits for commercial, non-commercial, and non-reportable traders.
/api/v1/cot/gbp
Release Calendar
JPY upcoming releases
The calendar endpoint returns upcoming releases sorted by announcement timestamp. Non-announcement rows (e.g. COT) include routing metadata like endpoint_path.
/api/v1/calendar/jpy
Metals
Gold LBMA PM Fix prices
Precious metals series return daily price data from official sources with period-over-period and 12-month change enrichment.
/api/v1/commodities/gold
Market Sessions
Live FX session snapshot
The market sessions endpoint returns real-time open/close state for Sydney, Tokyo, London, and New York, plus overlap windows showing peak-liquidity periods.
/api/v1/market_sessions
Rates & Curves
EUR/USD rate differential
Pair rate differentials align both currency legs by intersection date and return spread values in percentage points and basis points.
/api/v1/rate_differentials/eur/usd
Forward Analytics
GBP derived forward curve
Forward-rate segments are derived from stored government spot tenor nodes and explicitly labeled as analytical outputs rather than raw stored series.
/api/v1/forward_curves/gbp
Schema and connectors
OpenAPI schema and MCP reference
The production OpenAPI schema is the authoritative path list. The MCP reference covers remote AI tooling and OAuth connector behavior.