Documentation
API Changelog
Material endpoint contract changes for the FXMacroData API: response schemas, endpoint lifecycle changes, authentication behavior, rate limits, and streaming payload changes.
- Changed Enterprise keys carry the same 1,000,000 requests per UTC calendar month as Individual, with no per-minute, per-hour, or concurrency caps. Earlier documentation described Enterprise as unmetered, which did not match the limits in force. Higher monthly allowances are available on request. See the rate-limit guide.
- Changed Plan pages now state that every paid plan includes the complete dataset and the same request allowance. Plans differ by licensed use, not by data access, and forecast availability depends on the indicator rather than the plan. See the forecast coverage matrix.
- Changed Trial and Individual keys now use a 1,000,000 request budget per UTC calendar month in place of the previous 100,000/day cap. The burst guards are unchanged at 300/minute, 5,000/hour, and 20 concurrent in-flight requests, and the hourly guard already bounds a key well below the old daily figure. Nothing that fitted inside the old limits is affected. See the rate-limit guide.
- Changed Commercial Redistribution no longer carries its own request allowance. The add-on is a display licence billed on audience; a redistribution key now draws on the monthly allowance of the Individual or Enterprise subscription underneath it. The previous 100,000 + 5,000-per-block schedule, capped at 500,000/month, is withdrawn — every current redistribution account gains allowance under this change.
- Changed Enterprise keys are documented as unlimited, subject to fair use, replacing “custom budget and allowlist terms”. Fair use is published in the rate-limit guide.
-
Changed
The
GET /v1/predictions/{currency}/{indicator}response now returns onedata[]group perannouncement_id. Forecast values live underdata[].predictions[], so clients that previously readdata[0].predicted_valueshould now readdata[0].predictions[0].predicted_valueor choose a specific entry byprediction_source. -
Added
Each prediction item can include
prediction_type,prediction_source,prediction_source_label,generated_at,confidence, andprediction_reason. This supports multiple forecast sources for the same scheduled announcement. -
Changed
Prediction groups use the same
announcement_idjoin key as announcement history, making it easier to connect forecast records with realised observations after release.
-
Changed
The public endpoint contract is now documented as three distinct surfaces:
GET /v1/calendar/{currency}for upcoming release schedules,GET /v1/announcements/{currency}/{indicator}for realised values and prior observations, andGET /v1/predictions/{currency}/{indicator}for forecast groups keyed byannouncement_id. - Changed Calendar rows should be treated as schedule rows. Forecast and consensus values belong on the predictions endpoint, not on calendar responses.
- Added Rate-limit budgets are now documented and enforced on API keys. Trial and Individual keys use 300/minute, 5,000/hour, and 100,000/day; Enterprise limits are governed by the customer agreement. See the full table in the rate-limit guide.
- Added A per-key in-flight concurrency cap limits accidental single-key request fanouts that could otherwise degrade latency for other users. Trial and Individual keys default to 20 concurrent requests; Enterprise limits are contract-specific.
-
Added
429 responses now include an
X-RateLimit-Windowheader identifying which budget tripped (minute,hour,day,endpoint, orconcurrency) so clients can self-throttle the right dimension. -
Changed
Concurrency caps are designed for accidental fanout protection, not normal production request patterns. ETag /
If-None-Matchresponses continue to avoid quota counting.
-
Added
Endpoint added:
GET /v1/press-releases/{currency}. Responses return a paginated press-release feed withcurrency,count, anddata[]records containing release titles, URLs, dates, summaries, and policy-context fields where available. -
Added
Endpoint added:
GET /v1/risk_sentiment. Responses return a daily risk-on/risk-off score withscore,regime, component metadata, data-quality metadata, and pagination fields.
-
Added
GDP announcement responses now include
pct_change_qoqandpct_change_yoyfields alongside the absolute output level. No client-side calculation needed.
- Added Per-key rate limiting is enforced on all endpoints. Rate limits vary by subscription tier and are documented in the rate limits guide.
- Added Enterprise tier introduced for high-volume and commercial use cases. Contact us for custom limits and SLA terms.
-
Added
Endpoint added:
GET /v1/stream/eventsfor Server-Sent Events delivery of announcement events. -
Added
SSE clients can filter events with
currenciesandindicators, and can reconnect withLast-Event-IDto replay buffered events. -
Added
Stream events include stable identifiers and routing fields such as
event_id,currency,indicator,records_written, andtimestamp.
-
Changed
GET /v1/cot/{currency}access now follows the same mixed-access pattern as announcements: USD requests are publicly accessible, while other currencies require a valid API key. -
Changed
GET /v1/commodities/{indicator}now requires a valid API key for every request. -
Added
Release-calendar rows can include additive routing metadata such as
domain,endpoint_family, andendpoint_path, while keepingannouncement_datetimeandreleasestable.
-
Added
MCP transport added at
https://mcp.fxmacrodata.comfor compatible clients. Authentication uses OAuth 2.0 + PKCE. - Added The MCP tool catalogue exposes announcement, release-calendar, data-catalogue, COT, commodities, and market-session query surfaces.
-
Added
GraphQL endpoint added at
POST /v1/graphql. Query indicator announcements, release calendars, and data catalogue entries using standard GraphQL syntax. Authenticate with a valid API key.
-
Changed
The indicator slug
interest_ratesis replaced bypolicy_rateacross all currencies. Update your API calls — the old slug no longer works.
- Added FXMacroData public REST API launched with stable endpoint families for announcements, release calendars, data catalogue discovery, COT positioning, and commodities.
-
Added
Release calendar endpoint launched:
GET /v1/calendar/{currency}— lists upcoming economic data releases with scheduled announcement times. -
Added
COT positioning endpoint launched:
GET /v1/cot/{currency}— weekly CFTC Commitment of Traders data for G8 futures contracts. -
Added
Commodities endpoint launched:
GET /v1/commodities/{indicator}— daily energy prices (WTI, Brent, Natural Gas) and precious metals. -
Added
Data catalogue endpoint launched:
GET /v1/data_catalogue/{currency}— discover which indicators are available for each currency, with metadata.