openapi: 3.2.0 info: title: FX Macrodata Press Releases API description: Official-source macroeconomic indicators, release calendars, central-bank policy rates, FX reference rates, COT positioning and commodities across 22 currencies. USD data is available without an API key; other currencies and datasets need an `X-API-Key` header. version: 1.0.0 servers: - url: https://api.fxmacrodata.com description: FXMacroData API security: - {} - APIKeyHeader: [] - HTTPBearer: [] tags: - name: press_releases description: Official central-bank press-release archive endpoints. paths: /v1/press-releases/{currency}: get: tags: - press_releases summary: Recent central bank press releases description: 'Returns recent press releases from official central bank websites for the requested currency. **Supported currencies:** AUD, BRL, CAD, CHF, CNY, DKK, EUR, GBP, ILS, JPY, KRW, NGN, NOK, NZD, PEN, SEK, THB, USD **Path Parameters:** - `currency`: 3-letter ISO currency code (e.g., USD, EUR, GBP). **Query Parameters:** - `limit`: Maximum number of press releases to return per page (1–50, default 20). - `offset`: Zero-based pagination offset (default: 0). **Authentication:** USD press releases are publicly available without an API key. All other currencies require a professional API key supplied via `?api_key=` or the `X-API-Key` header. **Data sources:** Official central bank RSS feeds and websites only.' operationId: get_press_releases_v1_press_releases__currency__get parameters: - name: currency in: path required: true schema: type: string title: Currency enum: - AUD - BRL - CAD - CHF - DKK - EUR - GBP - ILS - JPY - NGN - NOK - NZD - PEN - SEK - USD example: AUD description: 'Required path parameter. Allowed values: AUD, BRL, CAD, CHF, DKK, EUR, GBP, ILS, JPY, NGN, NOK, NZD, PEN, SEK, USD.' - name: limit in: query required: false schema: type: integer maximum: 50 minimum: 1 description: Maximum number of press releases to return examples: - 10 default: 20 title: Limit description: Optional query parameter. Maximum number of press releases to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Zero-based offset into the full press-release feed before pagination. default: 0 title: Offset description: Optional query parameter. Zero-based offset into the full press-release feed before pagination. - name: api_key in: query required: false schema: type: string description: Your Individual or Business API key title: Api Key description: 'Deprecated: legacy query-string API key. Still accepted so existing integrations keep working, but new integrations must send the key in the X-API-Key header (or Authorization: Bearer). A key is required for non-USD, paid-only, or full-history requests. Responses to requests authenticated this way carry a Deprecation header.' deprecated: true responses: '200': description: Recent press releases for the selected central bank. content: application/json: schema: $ref: '#/components/schemas/PressReleasesResponse' example: currency: USD source: Federal Reserve source_url: https://www.federalreserve.gov count: 2 data: - title: Federal Reserve issues FOMC statement url: https://www.federalreserve.gov/newsevents/pressreleases/monetary20260319a.htm date: '2026-03-19' summary: The Committee decided to maintain the target range for the federal funds rate... category: monetary_policy relevance: 0.95 ai_summary: FOMC held rates and stressed inflation persistence, signalling a longer plateau than markets had priced. ai_stance: hawkish ai_stance_score: 0.45 ai_next_meeting_action: hold ai_next_meeting_probability: 0.7 ai_rationale: Statement cited 'elevated' inflation and the need to keep policy 'sufficiently restrictive'. rate_path: score: 0.42 label: Moderately Hawkish bias_action: hike confidence: medium raw_score: 1.1 matches: - phrase: elevated inflation weight: 0.7 - phrase: restrictive stance weight: 0.7 '404': description: Currency not supported for press releases. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: currency: - AUD - BRL - CAD - CHF - DKK - EUR - GBP - ILS - JPY - NGN - NOK - NZD - PEN - SEK - USD components: schemas: PressRelease: properties: url: anyOf: - type: string - type: 'null' title: Url date: anyOf: - type: string - type: 'null' title: Date title: anyOf: - type: string - type: 'null' title: Title topics: anyOf: - items: type: string type: array - type: 'null' title: Topics summary: anyOf: - type: string - type: 'null' title: Summary category: anyOf: - type: string - type: 'null' title: Category rate_path: anyOf: - $ref: '#/components/schemas/PressReleaseRatePath' - type: 'null' relevance: anyOf: - type: number - type: 'null' title: Relevance sentiment: anyOf: - type: number - type: 'null' title: Sentiment ai_summary: anyOf: - type: string - type: 'null' title: Ai Summary description: Model-generated one-to-two sentence FX/macro takeaway. Not an official statement. ai_stance: anyOf: - type: string - type: 'null' title: Ai Stance description: 'Model-assessed stance: `hawkish`, `dovish` or `neutral`.' ai_stance_score: anyOf: - type: number - type: 'null' title: Ai Stance Score description: Model-assessed stance in [-1, 1]; positive is hawkish. ai_next_meeting_action: anyOf: - type: string - type: 'null' title: Ai Next Meeting Action description: 'Model-assessed next policy action: `hike`, `cut` or `hold`.' ai_next_meeting_probability: anyOf: - type: number - type: 'null' title: Ai Next Meeting Probability description: Model-assessed probability in [0, 1] of `ai_next_meeting_action` at the next meeting. ai_rationale: anyOf: - type: string - type: 'null' title: Ai Rationale description: Model-generated one-sentence justification for the stance. type: object title: PressRelease PaginationInfo: properties: limit: anyOf: - type: integer - type: 'null' title: Limit offset: type: integer title: Offset returned_count: type: integer title: Returned Count total_count: type: integer title: Total Count has_more: type: boolean title: Has More next_offset: anyOf: - type: integer - type: 'null' title: Next Offset page_includes_latest_available: anyOf: - type: boolean - type: 'null' title: Page Includes Latest Available type: object required: - offset - returned_count - total_count - has_more title: PaginationInfo description: Offset pagination state for a single page of results. PressReleaseRatePath: properties: label: anyOf: - type: string - type: 'null' title: Label score: anyOf: - type: number - type: 'null' title: Score matches: anyOf: - items: $ref: '#/components/schemas/RatePathMatch' type: array - type: 'null' title: Matches raw_score: anyOf: - type: number - type: 'null' title: Raw Score confidence: anyOf: - type: string - type: 'null' title: Confidence bias_action: anyOf: - type: string - type: 'null' title: Bias Action type: object title: PressReleaseRatePath description: Rate-path bias inferred from the release text. RatePathMatch: properties: phrase: anyOf: - type: string - type: 'null' title: Phrase weight: anyOf: - type: integer - type: number - type: 'null' title: Weight type: object title: RatePathMatch description: 'One scoring phrase found in the release and its weight. At most 20 per release. ``phrase`` is an entry from the hawkish/dovish scoring vocabulary, not an excerpt of the release; positive weights are hawkish, negative weights dovish.' PressReleasesResponse: properties: currency: anyOf: - type: string - type: 'null' title: Currency source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url limit: anyOf: - type: integer - type: 'null' title: Limit offset: anyOf: - type: integer - type: 'null' title: Offset count: anyOf: - type: integer - type: 'null' title: Count pagination: anyOf: - $ref: '#/components/schemas/PaginationInfo' - type: 'null' data: anyOf: - items: $ref: '#/components/schemas/PressRelease' type: array - type: 'null' title: Data type: object title: PressReleasesResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError securitySchemes: APIKeyHeader: type: apiKey in: header name: X-API-Key description: 'FXMacroData API key. Preferred transport for server-side clients: the key stays out of URLs and access logs.' HTTPBearer: type: http scheme: bearer description: 'FXMacroData API key or OAuth access token supplied as ``Authorization: Bearer ``.' APIKeyQuery: type: apiKey in: query name: api_key x-deprecated: true description: 'Deprecated. FXMacroData API key as a query parameter. Still accepted so existing integrations keep working, but new integrations must use the X-API-Key header (APIKeyHeader) or Authorization: Bearer. The only exception is browser EventSource clients of the live-delivery streams, which cannot set request headers.'