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
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.