Skip to content

AI Macro Data

Official FX Macro Data for AI Agents

Connect AI assistants to FXMacroData when they need official-source macro releases, publication timestamps, source metadata, FX rates, COT positioning, commodities, and market-session context. USD answers without an API key, so an agent can prove the data is real before anyone subscribes.

Last updated

Agent Workflow

01 / Ask

Start with a macro question

A user asks ChatGPT, Claude, Cursor, Codex, or another agent for CPI, policy-rate, calendar, COT, FX, or release-risk context.

02 / Fetch

Call FXMacroData tools

The agent uses Custom GPT instructions, MCP tools, OpenAPI, or REST endpoints instead of relying on stale model memory.

03 / Verify

Check timing and provenance

Responses expose announcement_datetime, source and source_url, and flag any row whose publication time was derived rather than captured.

04 / Reuse

Move into code or dashboards

The same record can power notes, dashboards, notebooks, alerts, widgets, exports, and backtests.

Macro agent demo

Ask for a macro briefing and let the tools do the data work

A useful AI workflow should fetch data, verify timing, and return a source-linked research brief. FXMacroData exposes each step as a callable surface instead of relying on model memory.

Example request

Build a EUR/USD pre-CPI briefing with the latest USD inflation row, next release date, FX trend, and COT context.

Discover

Find valid fields

The assistant checks available currencies, indicators, and endpoint paths before choosing a data call.

Fetch

Use live tools

MCP or REST retrieves the relevant release row, calendar event, FX spot context, and supporting market data.

Verify

Preserve timing

The result keeps announcement_datetime, freshness metadata, and source context visible for review.

Reuse

Move into workflow

The same source-linked rows can power a note, dashboard, notebook, alert, or backtest.

Currencies served: 22

FXMacroData serves these 22 currencies in the production API. Each row names the central bank behind the policy series and the statistics office that publishes the consumer price index. Every announcement response repeats the publisher in source and links the release itself in source_url.

Code Currency Area Central bank CPI publisher
USD US Dollar United States Federal Reserve BLS
EUR Euro Eurozone European Central Bank Eurostat
GBP British Pound United Kingdom Bank of England ONS
JPY Japanese Yen Japan Bank of Japan Statistics Bureau
AUD Australian Dollar Australia Reserve Bank of Australia ABS
CAD Canadian Dollar Canada Bank of Canada Statistics Canada
CHF Swiss Franc Switzerland Swiss National Bank FSO
NZD New Zealand Dollar New Zealand Reserve Bank of New Zealand Stats NZ
BRL Brazilian Real Brazil Banco Central do Brasil IBGE
CNH Offshore Chinese Yuan China (Offshore) People's Bank of China NBS
CNY Chinese Yuan China People's Bank of China NBS
DKK Danish Krone Denmark Danmarks Nationalbank Statistics Denmark
HUF Hungarian Forint Hungary National Bank of Hungary
ILS Israeli New Shekel Israel Bank of Israel Bank of Israel / Central Bureau of Statistics
KRW South Korean Won South Korea Bank of Korea Statistics Korea
MYR Malaysian Ringgit Malaysia Bank Negara Malaysia DOSM
NGN Nigerian Naira Nigeria Central Bank of Nigeria CBN
NOK Norwegian Krone Norway Norges Bank Statistics Norway
PEN Peruvian Sol Peru Banco Central de Reserva del Perú INEI
SEK Swedish Krona Sweden Riksbank Statistics Sweden
THB Thai Baht Thailand Bank of Thailand IMF IFS
TWD New Taiwan Dollar Taiwan Central Bank of the Republic of China DGBAS

CNH is served as a read alias of CNY and shares China's publishers. An FX pair is served where both legs appear in this list; a pair with an unsupported leg returns 404.

Measured coverage by release family

Counts below are measured from the stored history, not from the catalogue: a market appears against a family only where that family has observations on record. "Markets" counts the production API currencies in the table above.

Release family Markets Earliest observation Series in this family
Inflation 12 of 22 1995-01-01 (31.7 years) CPI, Core CPI, CPI MoM, PPI, PPI MoM, PCE
Central bank policy 12 of 22 1999-06-30 (27.2 years) Policy rate, Risk-free rate, Central-bank assets, Snb Balance Sheet, Sight Deposits, Deposit Rates
Jobs and wages 12 of 22 1999-01-31 (27.6 years) Unemployment, Employment, Full Time Employment, Part Time Employment, Non-farm payrolls, Participation
Growth and activity 12 of 22 1985-01-31 (41.6 years) GDP, Retail Sales, Industrial Production, Durable Goods Orders, Business sentiment, Consumer sentiment
External trade 10 of 22 2000-01-05 (26.7 years) Trade Balance, Current account, Exports, Imports, Terms Of Trade, Commodity Prices
Money, credit, and reserves 9 of 22 1968-01-01 (58.7 years) M1, M2, M3, Foreign Reserves, Gold Reserves, Broad Money
Housing and property 5 of 22 1999-11-30 (26.8 years) Housing Starts, Building Permits, House Price Index, Building Approvals, Mortgage Rate, House Prices
Rates and bond yields 13 of 22 1974-09-24 (52.0 years) 1Y yield, 2Y yield, 3Y yield, 5Y yield, 7Y yield, 10Y yield

Inflation covers 12 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL, DKK, NOK, SEK), with history from 1995-01-01. CPI, core inflation, trimmed means, PPI, PCE, and inflation-expectation releases where published.

Central bank policy covers 12 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL, DKK, NOK, SEK), with history from 1999-06-30. Policy rates, risk-free rates, deposit rates, liquidity settings, and official balance-sheet releases.

Jobs and wages covers 12 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL, DKK, NOK, SEK), with history from 1999-01-31. Unemployment, employment levels, payrolls, participation, job openings, and wage measures.

Growth and activity covers 12 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL, DKK, NOK, SEK), with history from 1985-01-31. GDP, retail sales, industrial production, durable goods, business confidence, consumer confidence, and other activity indicators.

External trade covers 10 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL, DKK), with history from 2000-01-05. Trade balances, current accounts, import/export data, terms of trade, and commodity-linked activity series.

Money, credit, and reserves covers 9 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, BRL), with history from 1968-01-01. Money supply, credit aggregates, central-bank reserves, FX reserves, and gold-reserve series.

Housing and property covers 5 of the 22 production currencies (USD, JPY, AUD, CAD, DKK), with history from 1999-11-30. Housing starts, permits, approvals, house-price indexes, and mortgage-rate series.

Rates and bond yields covers 13 of the 22 production currencies (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, CNH, CNY, DKK, NOK, SEK), with history from 1974-09-24. Government yield nodes, inflation-linked yields, breakevens, and curve-ready rates history.

Announcements response fields

The response envelope carries the series identity and its provenance; every element of the data array carries the released value and the timing metadata around it.

GET https://api.fxmacrodata.com/v1/announcements/{currency}/{indicator}

Response envelope

currency, indicator, name, value_name, source, source_url, source_series_id, source_series_name, source_local_name, seasonal_adjustment, price_basis, is_proxy, proxy_note, provenance, policy_role, policy_structure, comparison_compatible, policy_family, has_official_forecast, requested_start_date, requested_end_date, requested_window_has_data, page_includes_latest_available, start_date, end_date, earliest_available_date, latest_available_date, cb_target, remap, filters, selected_series_id, selected_series, supported_options, data_quality, replay, dataset_version, value_mode, value_metadata, pagination, freemium_window, no_data, data

Fields on every row of data[]

announcement_id, date, val, source, source_url, source_url_scope, previous_value, previous_date, previous_announcement_datetime, change, change_from_previous, pct_change_from_previous, original_val, original_unit, val_mom, observation_id, announcement_datetime, announcement_datetime_local, release_time_assumed, release_time_upper_bound, publication_time_status, publication_time_precision, vintage_status, is_first_release, observed_at_ns, observed_at_ns_string, collected_at_ns_string, publication_at_ns, publication_at_ns_string, announcement_source_url, source_artifact_sha256, capture_time_basis, geography, period_basis, methodology_id, source_period_label_conflict, source_methodology_status, selected_vintage_known_at_ns, replay_vintage_verified, official_planned_release_datetime, official_planned_release_datetime_local, official_actual_release_datetime, official_actual_release_datetime_local, collected_at_ns, collected_at_iso, ingestion_latency_ms, ingestion_latency_reference, pct_change, pct_change_yoy, pct_change_qoq, pct_change_mom, pct_change_12m, revisions, outside_requested_window, requested_start_date, requested_end_date, returned_reason, staleness_days, canonical_indicator, raw_indicator, remap_applied, remap_rule_id, remap_segment_id

release_time_assumed

Present and true when announcement_datetime was derived from the publication lag measured on this series' confirmed releases, because no official release calendar reaches the period. Omitted on rows whose publication time was captured from the release.

Field names are read from the published OpenAPI schema at api.fxmacrodata.com/openapi.json, so this list stays in step with the API contract. Optional fields are omitted from a row rather than returned as null.

What the release timestamps mean

  • announcement_datetime is Unix epoch seconds in UTC. Every row also carries announcement_datetime_local in the publisher's own timezone, and calendar rows add announcement_datetime_utc as an ISO-8601 string.
  • Where an official release calendar covers the period, the timestamp is the publication time captured from that release.
  • Where no official calendar reaches the period, which is common for history going back decades, the timestamp is derived from the median publication lag measured on that same series' confirmed releases and snapped to a valid announcement day. Those rows carry release_time_assumed: true and are counted in assumed_release_time_count.
  • data_quality.point_in_time_safe describes the window you requested, not the product: a single derived row anywhere in that window clears it for the whole response, so long histories commonly return false. Gate a point-in-time workflow on the per-row release_time_assumed flag and on assumed_release_time_count against row_count.
point_in_time_safe

Whether the returned values have verified availability and vintage evidence; estimated release times do not qualify.

has_assumed_release_times

True when at least one row in the quality scope carries a publication timestamp derived from the publication lag measured on that series' own confirmed releases, because no official release calendar reaches the period.

assumed_release_time_count

Number of rows in the quality scope whose publication timestamp was derived rather than captured. Compare against row_count to size the derived portion of the requested window.

release_time_assumed

Present and true when announcement_datetime was derived from the publication lag measured on this series' confirmed releases, because no official release calendar reaches the period. Omitted on rows whose publication time was captured from the release.

Where consensus and forecast values come from

  • Forecasts live on /v1/predictions, not on the announcements endpoint, so an expected value is never mixed into a released one.
  • prediction_class names how the number was produced: compiled_consensus, forecaster_survey, market_implied, model_nowcast, central_bank_projection, institutional_projection, or fxmacrodata. Two of those seven are a genuine consensus of forecasters and the other five are not, so filtering on prediction_class is how you ask for the one you want.
  • prediction_source names the publication behind the number, for example philly_fed_spf, cleveland_fed_nowcast, fomc_sep, atlanta_fed_gdpnow, ny_fed_sme, ecb_spf, imf_weo or rbnz_mps, and prediction_source_label carries its display name.
  • Availability is set by the publisher, not by your plan. Many releases have no compiled consensus from any official source, and where none exists no subscription adds one.
  • A filtered request that matches nothing still returns HTTP 200. The availability block lists which classes have a publishing source for that currency and indicator at all, and why the class you asked for came back empty.

The full contract, including the availability reasons and the provenance block, is on the forecasts and consensus reference.

Pricing and access

Plan Price What it covers
Free, no API key $0 USD endpoints answer without an API key, up to 100 requests per day, returning the most recent 90 days on a 15-minute release delay. Health checks, catalogue discovery, release calendars, market-session status and risk sentiment need no key at all.
Individual $100 / month All 18 production currencies and full history, with a 14-day trial. Licensed for your own work.
Enterprise $1,000 / month The same data, licensed for use inside a business, with support and governance.
Commercial Redistribution add-on $10 / audience block / month Added to a paid plan when other people see the data through you. One block covers up to 100 measured users; one block minimum.

Paid plans differ by permitted use, not by which currencies or indicators they unlock. There is no Startup plan.

See plan details and start a trial

Use Cases

  • Give an AI agent official-source CPI, GDP, policy-rate, labor, trade, COT, commodities, FX spot, and release-calendar context.
  • Build release-aware research workflows where every answer can point back to a dashboard, API doc, MCP tool, or endpoint.
  • Move from a conversational prompt into reproducible REST, Python, dashboard, widget, or export workflows.

Why FXMacroData

  • Agents can enter through the Custom GPT, MCP server, OpenAPI schema, REST API, prompt library, or dashboard links.
  • Responses include metadata for freshness, provenance, coverage, pagination, and release timing.
  • The same release-aware records support AI answers, dashboard inspection, notebooks, alerts, exports, and backtests.

Frequently Asked Questions

What is the fastest FXMacroData entry point for ChatGPT users?

Use the Forex Macro Research FXMacroData Custom GPT for conversational macro research in ChatGPT, then follow links into the relevant endpoint, dashboard, or article.

Which integration path works best for developers?

Use the MCP server for live tool calls, the OpenAPI schema for generated clients or Actions-style integrations, and the REST API for production jobs and notebooks.

What can an agent read without an API key?

USD announcements and predictions within the most recent 90 days at up to 100 requests per day, delivered 15 minutes after publication, plus release calendars, catalogue discovery, market-session status and risk sentiment for any currency.

Which currencies are served?

Eighteen: AUD, BRL, CAD, CHF, CNH, CNY, DKK, EUR, GBP, ILS, JPY, NGN, NOK, NZD, PEN, SEK, THB and USD.

Why does release timing matter for AI macro research?

AI assistants can write plausible analysis from stale or future-looking context. Publication timestamps and source metadata tell the assistant when a value became market-visible and whether the row is suitable for a backtest or event study.

How should an agent handle a derived timestamp?

Read release_time_assumed on the row. A derived timestamp is period end plus the median publication lag measured on that same series' confirmed releases, snapped to a valid announcement day. It is calibrated rather than exact, so it belongs in exploratory work but not in a strict no-lookahead study.

Can an agent cite FXMacroData answers?

Yes. Credit the original official source, for example "Reserve Bank of Australia, via FXMacroData", and link the source_url the row carries.

What does agent access cost?

Individual is $100 per month with a 14-day trial and Enterprise is $1,000 per month. Free USD access needs no key and no card. There is no Startup plan.

Last updated

Share page X LinkedIn Email