openapi: 3.2.0 info: title: FX Macrodata Announcements 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: Announcements description: 'Primary product: macroeconomic announcement time series.' paths: /v1/research/panel: post: tags: - Announcements summary: Build a panel of values known at each decision time operationId: research_panel_v1_research_panel_post parameters: - 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 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ResearchPanelRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ResearchPanelResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/announcements/{currency}/latest: get: tags: - Announcements summary: Get latest values for all indicators in a currency operationId: get_currency_latest_indicator_values_v1_announcements__currency__latest_get parameters: - name: currency in: path required: true schema: type: string title: Currency enum: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD example: AUD description: 'Required path parameter. Allowed values: AUD, BRL, CAD, CHF, CNH, CNY, DKK, EUR, GBP, HUF, ILS, JPY, KRW, MYR, NGN, NOK, NZD, PEN, SEK, THB, TWD, USD.' - 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: Successful Response content: application/json: schema: $ref: '#/components/schemas/LatestAnnouncementsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: currency: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD indicator: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages indicator_by_currency: AUD: - balance_on_services - broad_money - building_approvals - capital_account_balance - cb_assets - commodity_prices - core_inflation - credit_growth - current_account_balance - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - gdp - gold_reserves - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - house_price_index - household_spending - imports - inflation - inflation_linked_bond - inflation_mom - international_assets - international_liabilities - m1 - m3 - net_foreign_asset_position - part_time_employment - participation_rate - policy_rate - ppi - primary_income_balance - risk_free_rate - secondary_income_balance - terms_of_trade - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages BRL: - foreign_reserves - gdp - inflation - inflation_mom - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment CAD: - building_permits - business_confidence - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - core_inflation - core_inflation_median - core_inflation_trim - current_account_balance - employment - full_time_employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - household_credit - inflation - inflation_linked_bond - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages CHF: - broad_money - business_confidence - cb_assets - consumer_confidence - core_inflation - current_account_balance - employment - exports - foreign_reserves - full_time_employment - fx_reserves - gdp - gold_reserves - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_4y - gov_bond_5y - imports - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - sight_deposits - snb_balance_sheet - trade_balance - trade_weighted_index - unemployment CNH: - business_confidence - cb_assets - core_inflation - current_account_balance - gdp - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - inflation - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment CNY: - business_confidence - cb_assets - core_inflation - current_account_balance - foreign_reserves - gdp - gold_reserves - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - inflation - m1 - m2 - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment DKK: - business_confidence - consumer_confidence - core_inflation - current_account_balance - gdp - gov_bond_10y - house_prices - industrial_production - inflation - inflation_mom - ppi - risk_free_rate - trade_balance - trade_weighted_index - unemployment EUR: - balance_on_goods - balance_on_services - breakeven_inflation_rate - business_confidence - consumer_confidence - core_inflation - core_inflation_mom - current_account_balance - employment - full_time_employment - gdp - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_4y - gov_bond_5y - gov_bond_7y - inflation - inflation_linked_bond - inflation_mom - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - policy_rate_mlf - policy_rate_mro - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages GBP: - broad_money - consumer_confidence - core_inflation - current_account_balance - employment - exports - full_time_employment - gdp - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_40y - gov_bond_4y - gov_bond_5y - gov_bond_7y - imports - inflation - inflation_linked_bond - inflation_mom - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages HUF: - inflation - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - wages ILS: - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - inflation - inflation_linked_bond - policy_rate - risk_free_rate - trade_weighted_index JPY: - business_confidence - consumer_confidence - core_inflation - current_account_balance - employment - foreign_reserves - full_time_employment - gdp - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_40y - gov_bond_4y - gov_bond_5y - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - housing_starts - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment KRW: - business_confidence - consumer_confidence - core_inflation - current_account_balance - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - house_price_index - household_credit - inflation - inflation_mom - m1 - m2 - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - unemployment MYR: - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - m1 - m2 - m3 - retail_sales NGN: - cb_assets - deposit_rates - foreign_reserves - policy_rate NOK: - business_confidence - core_inflation - current_account_balance - employment - exports - full_time_employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - gov_bond_7y - house_prices - imports - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages NZD: - core_inflation - current_account_balance - dairy_exports - deposit_rates - employment - foreign_reserves - gdp - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_5y - inflation - inflation_linked_bond - participation_rate - policy_rate - risk_free_rate - terms_of_trade - trade_balance - trade_weighted_index - unemployment - wages PEN: - foreign_reserves - gov_bond_10y - risk_free_rate - trade_weighted_index SEK: - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_5y - gov_bond_7y - inflation - participation_rate - policy_rate - risk_free_rate - trade_balance - trade_weighted_index - unemployment THB: - core_inflation - current_account_balance - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - inflation - m1 - m2 - participation_rate - policy_rate - ppi - trade_balance - unemployment TWD: - employment - foreign_reserves - participation_rate - risk_free_rate - trade_weighted_index - unemployment USD: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - bgcr - breakeven_inflation_rate - broad_dollar_index - building_permits - business_confidence - cb_assets - consumer_confidence - core_inflation - core_inflation_mom - core_pce - core_pce_mom - crude_oil_inventories - current_account_balance - durable_goods_orders - effr - eme_dollar_index - employment - foreign_reserves - full_time_employment - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_4m - gov_bond_5y - gov_bond_6m - gov_bond_7y - government_debt - house_price_index - housing_starts - import_prices - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - job_openings - m1 - m2 - nairu - natural_gas_storage - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_target_lower - ppi - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - tgcr - trade_balance - trade_weighted_index - unemployment - wages /v1/announcements/{currency}/{indicator}: get: tags: - Announcements summary: Get macroeconomic indicator data description: Fetches historical data for a given macroeconomic indicator of a currency. operationId: get_indicator_data_v1_announcements__currency___indicator__get parameters: - name: currency in: path required: true schema: type: string title: Currency enum: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD example: AUD description: 'Required path parameter. Allowed values: AUD, BRL, CAD, CHF, CNH, CNY, DKK, EUR, GBP, HUF, ILS, JPY, KRW, MYR, NGN, NOK, NZD, PEN, SEK, THB, TWD, USD.' - name: indicator in: path required: true schema: type: string title: Indicator enum: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages example: afe_dollar_index description: 'Required path parameter. Allowed values: afe_dollar_index, average_hourly_earnings, average_hourly_earnings_mom, balance_on_goods, balance_on_services, bgcr, breakeven_inflation_rate, broad_dollar_index, broad_money, building_approvals, building_permits, business_confidence, capital_account_balance, cb_assets, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, core_pce_mom, credit_growth, crude_oil_inventories, current_account_balance, dairy_exports, deposit_rates, durable_goods_orders, effr, eme_dollar_index, employment, exports, financial_account_balance, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_growth_q4_yoy, gold_reserves, gov_bond_10y, gov_bond_15y, gov_bond_1_5m, gov_bond_1m, gov_bond_1y, gov_bond_20y, gov_bond_25y, gov_bond_2m, gov_bond_2y, gov_bond_30y, gov_bond_3m, gov_bond_3y, gov_bond_40y, gov_bond_4m, gov_bond_4y, gov_bond_5y, gov_bond_6m, gov_bond_6y, gov_bond_7y, gov_bond_8y, gov_bond_9y, government_debt, house_price_index, house_prices, household_credit, household_spending, housing_starts, import_prices, imports, industrial_production, inflation, inflation_linked_bond, inflation_mom, initial_jobless_claims, international_assets, international_liabilities, job_openings, m1, m2, m3, nairu, natural_gas_storage, net_foreign_asset_position, non_farm_payrolls, non_farm_payrolls_change, obfr, part_time_employment, participation_rate, pce, pce_mom, policy_rate, policy_rate_midpoint, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, primary_income_balance, productivity, real_yield_20y, real_yield_30y, real_yield_5y, real_yield_7y, retail_sales, retail_sales_control_group, retail_sales_ex_autos, retail_sales_ex_autos_and_gas, risk_free_rate, secondary_income_balance, sight_deposits, snb_balance_sheet, sofr_average_180d, sofr_average_30d, sofr_average_90d, sofr_index, terms_of_trade, tgcr, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.' - name: start_date in: query required: false schema: type: string description: Start date YYYY-MM-DD examples: - '2025-01-01' title: Start Date description: Optional query parameter. Start date YYYY-MM-DD - name: end_date in: query required: false schema: type: string description: End date YYYY-MM-DD examples: - '2026-03-01' title: End Date description: Optional query parameter. End date YYYY-MM-DD - name: series_mode in: query required: false schema: type: string pattern: ^(raw|canonical)$ description: Optional series rendering mode. `canonical` applies configured remap rules (for continuity across methodology transitions). `raw` returns the direct indicator series without remapping. examples: - raw default: raw title: Series Mode description: Optional query parameter. Optional series rendering mode. `canonical` applies configured remap rules (for continuity across methodology transitions). `raw` returns the direct indicator series without remapping. - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum number of rows to return in `data[]`. Rows are ordered most-recent-first, so `limit=10` returns the 10 most recent observations within the requested window. Use together with `offset` to page through long histories. Defaults to 20. Maximum 100. examples: - 20 default: 20 title: Limit description: Optional query parameter. Maximum number of rows to return in `data[]`. Rows are ordered most-recent-first, so `limit=10` returns the 10 most recent observations within the requested window. Use together with `offset` to page through long histories. Defaults to 20. Maximum 100. - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of rows to skip from the start of `data[]` (after most-recent-first ordering). Use with `limit` for pagination. Defaults to 0. examples: - 0 default: 0 title: Offset description: Optional query parameter. Number of rows to skip from the start of `data[]` (after most-recent-first ordering). Use with `limit` for pagination. Defaults to 0. - name: page in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: One-based page number for callers that prefer page-based pagination. When supplied, `offset` is derived as `(page - 1) * limit`. examples: - 1 title: Page description: Optional query parameter. One-based page number for callers that prefer page-based pagination. When supplied, `offset` is derived as `(page - 1) * limit`. - name: seasonality in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional seasonal adjustment selector. Supported public values are `sa` and `nsa`; check `supported_options.seasonality` in the response/catalogue for values available on this endpoint. examples: - sa title: Seasonality enum: - sa - nsa example: sa description: 'Optional query parameter. Optional seasonal adjustment selector. Supported public values are `sa` and `nsa`; check `supported_options.seasonality` in the response/catalogue for values available on this endpoint. Allowed values: sa, nsa.' - name: frequency in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional returned change basis. Supported public values are `level`, `yoy`, `qoq`, and `mom`; check `supported_options.frequency` for values available on this endpoint. examples: - yoy title: Frequency enum: - level - yoy - qoq - mom example: level description: 'Optional query parameter. Optional returned change basis. Supported public values are `level`, `yoy`, `qoq`, and `mom`; check `supported_options.frequency` for values available on this endpoint. Allowed values: level, yoy, qoq, mom.' - name: annualization in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional annualization selector. Supported public values are `not_annualized` and `saar`; check `supported_options.annualization` for values available on this endpoint. examples: - saar title: Annualization enum: - not_annualized - saar example: not_annualized description: 'Optional query parameter. Optional annualization selector. Supported public values are `not_annualized` and `saar`; check `supported_options.annualization` for values available on this endpoint. Allowed values: not_annualized, saar.' - name: period_aggregation in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional period-aggregation selector. Supported public values are `monthly` and `quarterly_average`; check `supported_options.period_aggregation` for values available on this endpoint. examples: - quarterly_average title: Period Aggregation enum: - monthly - quarterly_average example: monthly description: 'Optional query parameter. Optional period-aggregation selector. Supported public values are `monthly` and `quarterly_average`; check `supported_options.period_aggregation` for values available on this endpoint. Allowed values: monthly, quarterly_average.' - name: revisions in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional revision view. Supported public values are `latest`, `first`, `final`, and `all`; unsupported views return `unsupported_series_option` with supported values. examples: - latest default: latest title: Revisions enum: - latest - first - final - all example: latest description: 'Optional query parameter. Optional revision view. Supported public values are `latest`, `first`, `final`, and `all`; unsupported views return `unsupported_series_option` with supported values. Allowed values: latest, first, final, all.' - name: basis in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional real/nominal selector. Supported public values are `real` and `nominal`; only endpoints with known basis metadata accept it. examples: - real title: Basis enum: - real - nominal example: real description: 'Optional query parameter. Optional real/nominal selector. Supported public values are `real` and `nominal`; only endpoints with known basis metadata accept it. Allowed values: real, nominal.' - name: official_only in: query required: false schema: type: boolean description: When true, return only official-source rows and remove explicit fallback observations. Prohibited private aggregator rows are always removed regardless of this setting. examples: - true default: true title: Official Only description: Optional query parameter. When true, return only official-source rows and remove explicit fallback observations. Prohibited private aggregator rows are always removed regardless of this setting. - name: fields in: query required: false schema: anyOf: - type: string pattern: ^(full|compact)$ - type: 'null' description: Row field set. Omitted or `full` returns every documented row field. `compact` returns only `date`, `val`, `previous_value`, `change_from_previous`, `announcement_datetime`, `announcement_datetime_local` and `publication_time_status` per row, with the revision ledger folded into `revisions_summary` (`count`, `first`, `latest`, `revised`). The envelope, pagination and `dataset_version` are unchanged. examples: - compact title: Fields description: Optional query parameter. Row field set. Omitted or `full` returns every documented row field. `compact` returns only `date`, `val`, `previous_value`, `change_from_previous`, `announcement_datetime`, `announcement_datetime_local` and `publication_time_status` per row, with the revision ledger folded into `revisions_summary` (`count`, `first`, `latest`, `revised`). The envelope, pagination and `dataset_version` are unchanged. - name: as_of in: query required: false schema: anyOf: - type: string - type: 'null' title: As Of description: Optional query parameter. - name: availability in: query required: false schema: enum: - public - captured type: string default: public title: Availability description: Optional query parameter. - name: dataset_version in: query required: false schema: anyOf: - type: string - type: 'null' title: Dataset Version description: Optional query parameter. - name: value_mode in: query required: false schema: enum: - normalized - source type: string default: normalized title: Value Mode description: Optional query parameter. - 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: Normalized macro series for one currency and indicator. content: application/json: schema: $ref: '#/components/schemas/AnnouncementResponse' example: currency: USD indicator: inflation name: Inflation (CPI) source: BLS source_url: https://www.bls.gov/ source_series_id: BLS:CUUR0000SA0 source_series_name: 'Consumer Price Index for All Urban Consumers: All Items' seasonal_adjustment: NSA is_proxy: false provenance: storage: FXMacroData is_proxy: false publisher: BLS served_by: /v1/announcements/{currency}/{indicator} publisher_url: https://www.bls.gov/ value_field: val timestamp_field: announcement_datetime source_series_id: BLS:CUUR0000SA0 source_series_name: 'Consumer Price Index for All Urban Consumers: All Items' seasonal_adjustment: NSA has_official_forecast: true requested_start_date: '2026-07-08' requested_end_date: '2026-10-06' requested_window_has_data: true page_includes_latest_available: true start_date: '2026-07-31' end_date: '2026-10-06' earliest_available_date: '2026-07-31' latest_available_date: '2026-08-31' cb_target: description: Federal Reserve inflation objective (2% goal is defined on PCE, not CPI) source: Federal Reserve Statement on Longer-Run Goals and Monetary Policy Strategy current: effective_from: '2020-08-27' target: 2.0 notes: Flexible Average Inflation Targeting (FAIT) adopted; 2% remains the long-run goal (defined on PCE) history: - effective_from: '2012-01-25' target: 2.0 notes: First explicit 2% inflation goal announced by FOMC (defined on the PCE price index) - effective_from: '2020-08-27' target: 2.0 notes: Flexible Average Inflation Targeting (FAIT) adopted; 2% remains the long-run goal (defined on PCE) remap: applied: false transform: raw canonical_indicator: inflation filters: revisions: latest selected_series_id: usd_inflation_canonical_yoy_nsa_not_annualized_monthly selected_series: label: Inflation, YOY, NSA frequency: yoy revisions: latest series_id: usd_inflation_canonical_yoy_nsa_not_annualized_monthly seasonality: nsa annualization: not_annualized source_series_id: BLS:CUUR0000SA0 period_aggregation: monthly supported_options: basis: [] frequency: - yoy - mom - qoq revisions: - latest - first - final - all seasonality: - nsa - sa annualization: - not_annualized - saar period_aggregation: - monthly - quarterly_average data_quality: is_official: true is_proxy: false is_fallback: false is_stale: false has_announcement_datetime: true point_in_time_safe: false unverified_vintage_count: 2 unknown_publication_time_count: 0 latest_available_date: '2026-08-31' data_lag_days: 36 source_name: BLS source_type: official is_derived: false row_count: 2 announcement_datetime_count: 2 missing_announcement_datetime_count: 0 has_assumed_release_times: false assumed_release_time_count: 0 bounded_release_time_count: 0 unbounded_release_time_count: 0 quality_scope: full_result stale_after_days: 95 requested_window_has_data: true page_includes_latest_available: true dataset_version: 4eccfe260008f21cb8efd8b3a5ad3c6f6226e8eb5fb5fa1a145cdee132066503 value_mode: normalized value_metadata: source_unit: '%YoY' normalization_applied: true pagination: limit: 1 offset: 0 returned_count: 1 total_count: 2 has_more: true next_offset: 1 page_includes_latest_available: true data: - announcement_id: usd_inflation_2026-08-31 date: '2026-08-31' val: 3.4 source: BLS source_url: https://www.bls.gov/news.release/archives/cpi_09112026.htm source_url_scope: release previous_value: 3.4 previous_date: '2026-07-31' previous_announcement_datetime: 1786537800 change_from_previous: 0.0 pct_change_from_previous: 0.0 val_mom: 0.4 observation_id: usd_inflation_canonical_yoy_nsa_not_annualized_monthly_2026-08-31 announcement_datetime: 1789129800 announcement_datetime_local: '2026-09-11T08:30:00-04:00' publication_time_status: unverified publication_time_precision: unknown publication_time_basis: official_schedule vintage_status: captured_snapshot observed_at_ns: 1789129806674741407 observed_at_ns_string: '1789129806674741407' capture_time_basis: fetch_completed official_planned_release_datetime: 1789129800 official_planned_release_datetime_local: '2026-09-11T08:30:00-04:00' collected_at_ns: 1789129806674741407 collected_at_ns_string: '1789129806674741407' collected_at_iso: '2026-09-11T12:30:06.674742Z' release_timing: scheduled_at: '2026-09-11T12:30:00Z' collected_at: '2026-09-11T12:30:06.674742Z' revisions: - epoch: 1789129800 val: 3.4 observed_at_ns: 1789129806674741407 observed_at_ns_string: '1789129806674741407' capture_time_basis: first_fresh_fetch_completed vintage_status: captured_snapshot is_first_release: false freemium_window: applied: true max_days: 90 cutoff_date: '2026-07-08' message: Anonymous access returns the most recent 90 days. Supply an API key for the full history. freemium_delay: applied: true delay_seconds: 900 delay_minutes: 15 cutoff: 1791277200 cutoff_iso: '2026-10-06T09:00:00Z' withheld_count: 0 message: Free access is delayed by 15 minutes. Releases published in the last 15 minutes are withheld. An Individual or Business API key returns them in real time. subscribe_url: https://fxmacrodata.com/subscribe?utm_source=api&utm_medium=referral&utm_campaign=freemium_delay '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: currency: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD indicator: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages indicator_by_currency: AUD: - balance_on_services - broad_money - building_approvals - capital_account_balance - cb_assets - commodity_prices - core_inflation - credit_growth - current_account_balance - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - gdp - gold_reserves - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - house_price_index - household_spending - imports - inflation - inflation_linked_bond - inflation_mom - international_assets - international_liabilities - m1 - m3 - net_foreign_asset_position - part_time_employment - participation_rate - policy_rate - ppi - primary_income_balance - risk_free_rate - secondary_income_balance - terms_of_trade - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages BRL: - foreign_reserves - gdp - inflation - inflation_mom - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment CAD: - building_permits - business_confidence - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - core_inflation - core_inflation_median - core_inflation_trim - current_account_balance - employment - full_time_employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - household_credit - inflation - inflation_linked_bond - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages CHF: - broad_money - business_confidence - cb_assets - consumer_confidence - core_inflation - current_account_balance - employment - exports - foreign_reserves - full_time_employment - fx_reserves - gdp - gold_reserves - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_4y - gov_bond_5y - imports - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - sight_deposits - snb_balance_sheet - trade_balance - trade_weighted_index - unemployment CNH: - business_confidence - cb_assets - core_inflation - current_account_balance - gdp - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - inflation - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment CNY: - business_confidence - cb_assets - core_inflation - current_account_balance - foreign_reserves - gdp - gold_reserves - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_5y - gov_bond_7y - inflation - m1 - m2 - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - unemployment DKK: - business_confidence - consumer_confidence - core_inflation - current_account_balance - gdp - gov_bond_10y - house_prices - industrial_production - inflation - inflation_mom - ppi - risk_free_rate - trade_balance - trade_weighted_index - unemployment EUR: - balance_on_goods - balance_on_services - breakeven_inflation_rate - business_confidence - consumer_confidence - core_inflation - core_inflation_mom - current_account_balance - employment - full_time_employment - gdp - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_4y - gov_bond_5y - gov_bond_7y - inflation - inflation_linked_bond - inflation_mom - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - policy_rate_mlf - policy_rate_mro - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages GBP: - broad_money - consumer_confidence - core_inflation - current_account_balance - employment - exports - full_time_employment - gdp - gov_bond_10y - gov_bond_1y - gov_bond_20y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_40y - gov_bond_4y - gov_bond_5y - gov_bond_7y - imports - inflation - inflation_linked_bond - inflation_mom - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages HUF: - inflation - policy_rate - ppi - retail_sales - risk_free_rate - trade_weighted_index - wages ILS: - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - inflation - inflation_linked_bond - policy_rate - risk_free_rate - trade_weighted_index JPY: - business_confidence - consumer_confidence - core_inflation - current_account_balance - employment - foreign_reserves - full_time_employment - gdp - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2y - gov_bond_30y - gov_bond_3y - gov_bond_40y - gov_bond_4y - gov_bond_5y - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - housing_starts - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment KRW: - business_confidence - consumer_confidence - core_inflation - current_account_balance - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - house_price_index - household_credit - inflation - inflation_mom - m1 - m2 - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - unemployment MYR: - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - m1 - m2 - m3 - retail_sales NGN: - cb_assets - deposit_rates - foreign_reserves - policy_rate NOK: - business_confidence - core_inflation - current_account_balance - employment - exports - full_time_employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - gov_bond_7y - house_prices - imports - inflation - m1 - m2 - m3 - part_time_employment - participation_rate - policy_rate - ppi - retail_sales - risk_free_rate - trade_balance - trade_weighted_index - unemployment - wages NZD: - core_inflation - current_account_balance - dairy_exports - deposit_rates - employment - foreign_reserves - gdp - gov_bond_10y - gov_bond_1y - gov_bond_2y - gov_bond_5y - inflation - inflation_linked_bond - participation_rate - policy_rate - risk_free_rate - terms_of_trade - trade_balance - trade_weighted_index - unemployment - wages PEN: - foreign_reserves - gov_bond_10y - risk_free_rate - trade_weighted_index SEK: - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_5y - gov_bond_7y - inflation - participation_rate - policy_rate - risk_free_rate - trade_balance - trade_weighted_index - unemployment THB: - core_inflation - current_account_balance - employment - gdp - gov_bond_10y - gov_bond_2y - gov_bond_3y - gov_bond_5y - inflation - m1 - m2 - participation_rate - policy_rate - ppi - trade_balance - unemployment TWD: - employment - foreign_reserves - participation_rate - risk_free_rate - trade_weighted_index - unemployment USD: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - bgcr - breakeven_inflation_rate - broad_dollar_index - building_permits - business_confidence - cb_assets - consumer_confidence - core_inflation - core_inflation_mom - core_pce - core_pce_mom - crude_oil_inventories - current_account_balance - durable_goods_orders - effr - eme_dollar_index - employment - foreign_reserves - full_time_employment - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_4m - gov_bond_5y - gov_bond_6m - gov_bond_7y - government_debt - house_price_index - housing_starts - import_prices - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - job_openings - m1 - m2 - nairu - natural_gas_storage - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_target_lower - ppi - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - tgcr - trade_balance - trade_weighted_index - unemployment - wages seasonality: - sa - nsa frequency: - level - yoy - qoq - mom annualization: - not_annualized - saar period_aggregation: - monthly - quarterly_average revisions: - latest - first - final - all basis: - real - nominal /v1/announcements/changes: get: tags: - Announcements summary: Poll recent live announcement release changes description: 'Returns recent live announcement release events from the same durable fanout used by the real-time SSE stream. Use `next_cursor` as the `since` value on the next poll. This endpoint is intended for serverless clients that cannot hold a persistent SSE connection. **Authentication:** USD events are available without an API key. Non-USD currencies require a paid API key supplied via `api_key` or `X-API-Key`. **Free access is delayed.** Without an API key this feed is held back by 15 minutes: an event is delivered once it is 15 minutes old, and `next_cursor` stops at the delay cutoff so nothing is skipped. The response carries a `freemium_delay` object naming the cutoff, how many events are being withheld, and when the next one becomes available. An Individual or Business API key removes the delay; `/v1/stream/events` pushes the same events in real time. **Retention:** Events are retained for the configured fanout window, currently exposed in `retention_seconds`. If a client is offline longer than that window, re-bootstrap from `/v1/announcements/{currency}/latest` and continue polling changes.' operationId: get_announcement_changes_v1_announcements_changes_get parameters: - name: currencies in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated currency codes, `g10`, or `all`. Without a paid API key the result is restricted to USD. examples: - g10 title: Currencies description: Optional query parameter. Comma-separated currency codes, `g10`, or `all`. Without a paid API key the result is restricted to USD. - name: indicators in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional comma-separated announcement indicator slugs. examples: - inflation,unemployment title: Indicators enum: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages example: afe_dollar_index description: 'Optional query parameter. Optional comma-separated announcement indicator slugs. Allowed values: afe_dollar_index, average_hourly_earnings, average_hourly_earnings_mom, balance_on_goods, balance_on_services, bgcr, breakeven_inflation_rate, broad_dollar_index, broad_money, building_approvals, building_permits, business_confidence, capital_account_balance, cb_assets, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, core_pce_mom, credit_growth, crude_oil_inventories, current_account_balance, dairy_exports, deposit_rates, durable_goods_orders, effr, eme_dollar_index, employment, exports, financial_account_balance, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_growth_q4_yoy, gold_reserves, gov_bond_10y, gov_bond_15y, gov_bond_1_5m, gov_bond_1m, gov_bond_1y, gov_bond_20y, gov_bond_25y, gov_bond_2m, gov_bond_2y, gov_bond_30y, gov_bond_3m, gov_bond_3y, gov_bond_40y, gov_bond_4m, gov_bond_4y, gov_bond_5y, gov_bond_6m, gov_bond_6y, gov_bond_7y, gov_bond_8y, gov_bond_9y, government_debt, house_price_index, house_prices, household_credit, household_spending, housing_starts, import_prices, imports, industrial_production, inflation, inflation_linked_bond, inflation_mom, initial_jobless_claims, international_assets, international_liabilities, job_openings, m1, m2, m3, nairu, natural_gas_storage, net_foreign_asset_position, non_farm_payrolls, non_farm_payrolls_change, obfr, part_time_employment, participation_rate, pce, pce_mom, policy_rate, policy_rate_midpoint, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, primary_income_balance, productivity, real_yield_20y, real_yield_30y, real_yield_5y, real_yield_7y, retail_sales, retail_sales_control_group, retail_sales_ex_autos, retail_sales_ex_autos_and_gas, risk_free_rate, secondary_income_balance, sight_deposits, snb_balance_sheet, sofr_average_180d, sofr_average_30d, sofr_average_90d, sofr_index, terms_of_trade, tgcr, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.' - name: since in: query required: false schema: anyOf: - type: string - type: 'null' description: Cursor returned as `next_cursor` by the previous response. ISO 8601 timestamps and Unix epoch seconds are also accepted. title: Since description: Optional query parameter. Cursor returned as `next_cursor` by the previous response. ISO 8601 timestamps and Unix epoch seconds are also accepted. - name: limit in: query required: false schema: type: integer maximum: 500 minimum: 1 description: Maximum number of matching change events to return. default: 100 title: Limit description: Optional query parameter. Maximum number of matching change events to return. - name: payload in: query required: false schema: anyOf: - type: string - type: 'null' description: Use `compact` for trigger payloads or `full` for row fields. default: compact title: Payload enum: - compact - full example: compact description: 'Optional query parameter. Use `compact` for trigger payloads or `full` for row fields. Allowed values: compact, full.' - name: api_key in: query required: false schema: anyOf: - type: string - type: 'null' title: Api Key deprecated: true 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.' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AnnouncementChangesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: currency: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD indicator: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages payload: - compact - full /v1/stream/events: get: tags: - Announcements summary: Subscribe to real-time announcement events (SSE) description: 'Opens a long-lived Server-Sent Events (SSE) stream. A new event is pushed to all connected clients whenever FXMacroData captures a new economic data release. The stream payload contains event metadata and a single `latest_announcement` datapoint (`date`, `val`, `announcement_datetime`) when available. It does not include the full time-series; fetch complete history from the matching announcements endpoint after receiving an event. **Authentication:** Live SSE delivery requires an active FXMacroData trial or subscription API key supplied via the ``api_key`` query parameter or the ``X-API-Key`` header. **Reconnection:** Pass the ``Last-Event-ID`` header (the ``event_id`` of the last received event) to replay buffered events on reconnect. **Filtering:** Use ``currencies`` and ``indicators`` to narrow the stream. Omit either parameter to receive all live events included in your subscription. **Payloads:** ``payload=compact`` is the default. ``payload=full`` adds the latest announcement row fields directly to each event.' operationId: stream_events_v1_stream_events_get parameters: - name: currencies in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated currency codes to subscribe to, e.g. ``usd,eur``. Omit to receive all live events included in your subscription. title: Currencies description: Optional query parameter. Comma-separated currency codes to subscribe to, e.g. ``usd,eur``. Omit to receive all live events included in your subscription. - name: indicators in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated indicator slugs, e.g. ``inflation,gdp``. Omit to receive all indicators. title: Indicators enum: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages example: afe_dollar_index description: 'Optional query parameter. Comma-separated indicator slugs, e.g. ``inflation,gdp``. Omit to receive all indicators. Allowed values: afe_dollar_index, average_hourly_earnings, average_hourly_earnings_mom, balance_on_goods, balance_on_services, bgcr, breakeven_inflation_rate, broad_dollar_index, broad_money, building_approvals, building_permits, business_confidence, capital_account_balance, cb_assets, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, core_pce_mom, credit_growth, crude_oil_inventories, current_account_balance, dairy_exports, deposit_rates, durable_goods_orders, effr, eme_dollar_index, employment, exports, financial_account_balance, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_growth_q4_yoy, gold_reserves, gov_bond_10y, gov_bond_15y, gov_bond_1_5m, gov_bond_1m, gov_bond_1y, gov_bond_20y, gov_bond_25y, gov_bond_2m, gov_bond_2y, gov_bond_30y, gov_bond_3m, gov_bond_3y, gov_bond_40y, gov_bond_4m, gov_bond_4y, gov_bond_5y, gov_bond_6m, gov_bond_6y, gov_bond_7y, gov_bond_8y, gov_bond_9y, government_debt, house_price_index, house_prices, household_credit, household_spending, housing_starts, import_prices, imports, industrial_production, inflation, inflation_linked_bond, inflation_mom, initial_jobless_claims, international_assets, international_liabilities, job_openings, m1, m2, m3, nairu, natural_gas_storage, net_foreign_asset_position, non_farm_payrolls, non_farm_payrolls_change, obfr, part_time_employment, participation_rate, pce, pce_mom, policy_rate, policy_rate_midpoint, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, primary_income_balance, productivity, real_yield_20y, real_yield_30y, real_yield_5y, real_yield_7y, retail_sales, retail_sales_control_group, retail_sales_ex_autos, retail_sales_ex_autos_and_gas, risk_free_rate, secondary_income_balance, sight_deposits, snb_balance_sheet, sofr_average_180d, sofr_average_30d, sofr_average_90d, sofr_index, terms_of_trade, tgcr, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.' - name: api_key in: query required: false schema: anyOf: - type: string - type: 'null' description: Your active FXMacroData trial or subscription API key. title: Api Key description: Active FXMacroData trial or subscription API key required for live delivery. Use the query parameter for browser or EventSource clients; server-side clients may use the X-API-Key header. - name: payload in: query required: false schema: anyOf: - type: string - type: 'null' description: Event payload shape. Use `compact` for the stable trigger payload or `full` to flatten the latest announcement row into each event. default: compact title: Payload enum: - compact - full example: compact description: 'Optional query parameter. Event payload shape. Use `compact` for the stable trigger payload or `full` to flatten the latest announcement row into each event. Allowed values: compact, full.' - name: live_only in: query required: false schema: type: boolean default: false title: Live Only description: Optional query parameter. - name: max_age_ms in: query required: false schema: anyOf: - type: integer - type: 'null' title: Max Age Ms description: Optional query parameter. - name: Last-Event-ID in: header required: false schema: anyOf: - type: string - type: 'null' title: Last-Event-Id responses: '200': description: Streaming SSE response. Each `data:` line is one JSON release-delivery event; see `/v1/announcements/changes` for the field-by-field contract. content: text/event-stream: schema: type: string description: W3C EventSource frames. Each frame carries `id`, `event` and a `data` line holding one JSON release-delivery event. That event has the same shape as a `data[]` item of `/v1/announcements/changes`, which documents every field. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: currency: - AUD - BRL - CAD - CHF - CNH - CNY - DKK - EUR - GBP - HUF - ILS - JPY - KRW - MYR - NGN - NOK - NZD - PEN - SEK - THB - TWD - USD indicator: - afe_dollar_index - average_hourly_earnings - average_hourly_earnings_mom - balance_on_goods - balance_on_services - bgcr - breakeven_inflation_rate - broad_dollar_index - broad_money - building_approvals - building_permits - business_confidence - capital_account_balance - cb_assets - commodity_price_energy - commodity_price_ex_energy - commodity_price_index - commodity_prices - consumer_confidence - core_inflation - core_inflation_median - core_inflation_mom - core_inflation_trim - core_pce - core_pce_mom - credit_growth - crude_oil_inventories - current_account_balance - dairy_exports - deposit_rates - durable_goods_orders - effr - eme_dollar_index - employment - exports - financial_account_balance - foreign_reserves - full_time_employment - fx_reserves - gdp - gdp_growth_q4_yoy - gold_reserves - gov_bond_10y - gov_bond_15y - gov_bond_1_5m - gov_bond_1m - gov_bond_1y - gov_bond_20y - gov_bond_25y - gov_bond_2m - gov_bond_2y - gov_bond_30y - gov_bond_3m - gov_bond_3y - gov_bond_40y - gov_bond_4m - gov_bond_4y - gov_bond_5y - gov_bond_6m - gov_bond_6y - gov_bond_7y - gov_bond_8y - gov_bond_9y - government_debt - house_price_index - house_prices - household_credit - household_spending - housing_starts - import_prices - imports - industrial_production - inflation - inflation_linked_bond - inflation_mom - initial_jobless_claims - international_assets - international_liabilities - job_openings - m1 - m2 - m3 - nairu - natural_gas_storage - net_foreign_asset_position - non_farm_payrolls - non_farm_payrolls_change - obfr - part_time_employment - participation_rate - pce - pce_mom - policy_rate - policy_rate_midpoint - policy_rate_mlf - policy_rate_mro - policy_rate_target_lower - ppi - primary_income_balance - productivity - real_yield_20y - real_yield_30y - real_yield_5y - real_yield_7y - retail_sales - retail_sales_control_group - retail_sales_ex_autos - retail_sales_ex_autos_and_gas - risk_free_rate - secondary_income_balance - sight_deposits - snb_balance_sheet - sofr_average_180d - sofr_average_30d - sofr_average_90d - sofr_index - terms_of_trade - tgcr - trade_balance - trade_weighted_index - trimmed_mean_inflation - unemployment - wage_price_index - wages payload: - compact - full components: schemas: CommodityMissingWeekdayRange: properties: start_date: type: string title: Start Date end_date: type: string title: End Date weekday_count: type: integer title: Weekday Count type: object required: - start_date - end_date - weekday_count title: CommodityMissingWeekdayRange CBTargetInfo: properties: description: type: string title: Description source: type: string title: Source current: $ref: '#/components/schemas/CBTargetEntry' history: items: $ref: '#/components/schemas/CBTargetEntry' type: array title: History type: object required: - description - source - current - history title: CBTargetInfo description: 'Central-bank target metadata for an indicator. ``current`` is the entry effective as of the response ``end_date``. ``history`` contains every known target regime in ascending date order.' DataQuality: properties: source_freshness: anyOf: - type: string - type: 'null' title: Source Freshness source_monitoring_complete: anyOf: - type: boolean - type: 'null' title: Source Monitoring Complete known_source_gap: anyOf: - type: boolean - type: 'null' title: Known Source Gap source_checked_at: anyOf: - type: integer - type: 'null' title: Source Checked At source_check_expires_at: anyOf: - type: integer - type: 'null' title: Source Check Expires At latest_published_period: anyOf: - type: string - type: 'null' title: Latest Published Period source_permission_status: anyOf: - type: string - type: 'null' title: Source Permission Status commodity_coverage: anyOf: - $ref: '#/components/schemas/CommodityCoverage' - type: 'null' stored_history_coverage: anyOf: - $ref: '#/components/schemas/CommodityCoverage' - type: 'null' point_in_time_basis: anyOf: - type: string - type: 'null' title: Point In Time Basis is_official: type: boolean title: Is Official is_proxy: type: boolean title: Is Proxy is_fallback: type: boolean title: Is Fallback is_stale: type: boolean title: Is Stale has_announcement_datetime: type: boolean title: Has Announcement Datetime point_in_time_safe: type: boolean title: Point In Time Safe description: Whether the returned values have verified availability and vintage evidence; estimated release times do not qualify. unverified_vintage_count: type: integer title: Unverified Vintage Count default: 0 unknown_publication_time_count: type: integer title: Unknown Publication Time Count default: 0 latest_available_date: anyOf: - type: string - type: 'null' title: Latest Available Date last_updated: anyOf: - type: string - type: 'null' title: Last Updated data_lag_days: anyOf: - type: integer - type: 'null' title: Data Lag Days source_name: anyOf: - type: string - type: 'null' title: Source Name source_type: type: string enum: - official - public - fallback - derived title: Source Type is_derived: type: boolean title: Is Derived default: false row_count: type: integer title: Row Count default: 0 announcement_datetime_count: type: integer title: Announcement Datetime Count default: 0 missing_announcement_datetime_count: type: integer title: Missing Announcement Datetime Count default: 0 has_assumed_release_times: type: boolean title: Has Assumed Release Times description: 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. default: false assumed_release_time_count: type: integer title: Assumed Release Time Count description: 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. default: 0 bounded_release_time_count: type: integer title: Bounded Release Time Count description: Legacy rows carrying an upper-bound estimate flag; this does not certify replay safety. default: 0 unbounded_release_time_count: type: integer title: Unbounded Release Time Count description: Assumed timestamps without proven availability bounds. default: 0 quality_scope: type: string title: Quality Scope default: full_result stale_after_days: anyOf: - type: integer - type: 'null' title: Stale After Days requested_window_has_data: anyOf: - type: boolean - type: 'null' title: Requested Window Has Data requested_window_latest_date: anyOf: - type: string - type: 'null' title: Requested Window Latest Date requested_window_includes_latest_available: anyOf: - type: boolean - type: 'null' title: Requested Window Includes Latest Available page_includes_latest_available: anyOf: - type: boolean - type: 'null' title: Page Includes Latest Available returned_latest_available_before_window: anyOf: - type: boolean - type: 'null' title: Returned Latest Available Before Window staleness_days: anyOf: - type: integer - type: 'null' title: Staleness Days reason: anyOf: - type: string - type: 'null' title: Reason datetime_field: anyOf: - type: string - type: 'null' title: Datetime Field datetime_precision: anyOf: - type: string - type: 'null' title: Datetime Precision datetime_semantics: anyOf: - type: string - type: 'null' title: Datetime Semantics source_legs: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Source Legs historical_point_in_time: anyOf: - $ref: '#/components/schemas/PointInTimeCompleteness' - type: 'null' type: object required: - is_official - is_proxy - is_fallback - is_stale - has_announcement_datetime - point_in_time_safe - source_type title: DataQuality CBTargetEntry: properties: effective_from: type: string title: Effective From target: anyOf: - type: number - type: 'null' title: Target lower: anyOf: - type: number - type: 'null' title: Lower upper: anyOf: - type: number - type: 'null' title: Upper notes: anyOf: - type: string - type: 'null' title: Notes type: object required: - effective_from title: CBTargetEntry description: A single central-bank target entry valid from ``effective_from``. LatestAnnouncementProvenance: properties: publisher: anyOf: - type: string - type: 'null' title: Publisher publisher_url: anyOf: - type: string - type: 'null' title: Publisher Url source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id source_series_name: anyOf: - type: string - type: 'null' title: Source Series Name source_local_name: anyOf: - type: string - type: 'null' title: Source Local Name seasonal_adjustment: anyOf: - type: string - type: 'null' title: Seasonal Adjustment price_basis: anyOf: - type: string - type: 'null' title: Price Basis storage: anyOf: - type: string - type: 'null' title: Storage served_by: anyOf: - type: string - type: 'null' title: Served By timestamp_field: anyOf: - type: string - type: 'null' title: Timestamp Field value_field: anyOf: - type: string - type: 'null' title: Value Field is_proxy: anyOf: - type: boolean - type: 'null' title: Is Proxy proxy_note: anyOf: - type: string - type: 'null' title: Proxy Note type: object title: LatestAnnouncementProvenance RevisionsSummary: properties: count: type: integer title: Count description: Number of retained value groups; repeated consecutive captures may be grouped. Not a count of verified publisher revisions. first: anyOf: - type: number - type: 'null' title: First description: Earliest retained value in this view; not proof of the publisher's first release. latest: anyOf: - type: number - type: 'null' title: Latest description: Latest retained value in this view; not proof of publisher finality. revised: type: boolean title: Revised description: True when a later retained value differs from the earliest retained value. type: object required: - count - revised title: RevisionsSummary description: Revision ledger summary served by ``fields=compact``. ResearchSeries: properties: currency: type: string pattern: ^[A-Za-z]{3}$ title: Currency indicator: type: string pattern: ^[a-z][a-z0-9_]*$ title: Indicator max_age_days: anyOf: - type: integer maximum: 36500.0 minimum: 0.0 - type: 'null' title: Max Age Days additionalProperties: false type: object required: - currency - indicator title: ResearchSeries 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 RevisionEntry: properties: epoch: anyOf: - type: integer - type: 'null' title: Epoch val: anyOf: - type: number - type: 'null' title: Val observed_at_ns: anyOf: - type: integer - type: 'null' title: Observed At Ns observed_at_ns_string: anyOf: - type: string - type: 'null' title: Observed At Ns String publication_at_ns: anyOf: - type: integer - type: 'null' title: Publication At Ns description: Publisher-sourced publication instant, Unix epoch nanoseconds (UTC). Present only when the source states one; omitted otherwise. publication_at_ns_string: anyOf: - type: string - type: 'null' title: Publication At Ns String description: '`publication_at_ns` as a decimal string; present only alongside it.' announcement_source_url: anyOf: - type: string - type: 'null' title: Announcement Source Url capture_time_basis: anyOf: - type: string - type: 'null' title: Capture Time Basis publication_time_status: anyOf: - type: string - type: 'null' title: Publication Time Status publication_time_precision: anyOf: - type: string - type: 'null' title: Publication Time Precision vintage_status: anyOf: - type: string - type: 'null' title: Vintage Status is_first_release: anyOf: - type: boolean - type: 'null' title: Is First Release source_url: anyOf: - type: string - type: 'null' title: Source Url source_artifact_sha256: anyOf: - type: string - type: 'null' title: Source Artifact Sha256 change: anyOf: - type: number - type: 'null' title: Change source_validity_status: anyOf: - type: string - type: 'null' title: Source Validity Status description: '`invalid_source_capture` marks a proven source/parser mistake retained only in the raw source/all audit view. It is excluded from economic revision selection and point-in-time replay. Absence is not source verification.' source_correction: anyOf: - additionalProperties: true type: object - type: 'null' title: Source Correction description: Audit evidence for an incorrect source capture, including the observed and expected series identities and any official correction citation. Original values and capture clocks remain unchanged. type: object title: RevisionEntry description: 'A value vintage or source capture for a period, identified by its clocks. Source/all audit views also retain explicitly marked incorrect captures. ``val`` is ``Optional`` because some upstream sources publish placeholder revisions (e.g. NZ DMO inflation-linked bond yields on non-trading days) where the value is NaN; those are returned as ``null``.' ResearchPanelRequest: properties: series: items: $ref: '#/components/schemas/ResearchSeries' type: array maxItems: 6 minItems: 1 title: Series decision_times: items: type: string type: array maxItems: 10000 minItems: 1 title: Decision Times start_date: type: string format: date title: Start Date end_date: type: string format: date title: End Date availability: type: string enum: - public - captured title: Availability default: public dataset_version: anyOf: - type: string pattern: ^[0-9a-f]{64}$ - type: 'null' title: Dataset Version additionalProperties: false type: object required: - series - decision_times - start_date - end_date title: ResearchPanelRequest FreemiumDelayNotice: properties: applied: type: boolean title: Applied delay_seconds: type: integer title: Delay Seconds delay_minutes: type: integer title: Delay Minutes cutoff: type: integer title: Cutoff cutoff_iso: anyOf: - type: string - type: 'null' title: Cutoff Iso withheld_count: type: integer title: Withheld Count message: type: string title: Message subscribe_url: type: string title: Subscribe Url next_available_at: anyOf: - type: integer - type: 'null' title: Next Available At next_available_at_iso: anyOf: - type: string - type: 'null' title: Next Available At Iso type: object required: - applied - delay_seconds - delay_minutes - cutoff - withheld_count - message - subscribe_url title: FreemiumDelayNotice description: 'How far behind real time a free-tier response is, and what that costs. Present only for callers without a paid key, and present whether or not anything was actually withheld: a delayed response must never be mistakable for a current one. ``withheld_count`` is how many releases were held back from *this* response; ``next_available_at`` is when the oldest of them becomes readable.' CommodityCoverageSegment: properties: start_date: anyOf: - type: string - type: 'null' title: Start Date end_date: anyOf: - type: string - type: 'null' title: End Date row_count: type: integer title: Row Count type: object required: - row_count title: CommodityCoverageSegment AnnouncementResponse: properties: currency: type: string title: Currency indicator: type: string title: Indicator name: anyOf: - type: string - type: 'null' title: Name unit: anyOf: - type: string - type: 'null' title: Unit description: 'Unit of `data[].val` in this response, from the series catalogue: the normalized unit by default, the percent unit of a derived `frequency` view (`%YoY`, `%QoQ`, `%MoM`), or `value_metadata.source_unit` when `value_mode=source`. Omitted when the catalogue declares no unit.' examples: - Persons value_name: anyOf: - type: string - type: 'null' title: Value Name source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id source_series_name: anyOf: - type: string - type: 'null' title: Source Series Name source_local_name: anyOf: - type: string - type: 'null' title: Source Local Name seasonal_adjustment: anyOf: - type: string - type: 'null' title: Seasonal Adjustment price_basis: anyOf: - type: string - type: 'null' title: Price Basis is_proxy: type: boolean title: Is Proxy default: false proxy_note: anyOf: - type: string - type: 'null' title: Proxy Note provenance: properties: publisher: anyOf: - type: string - type: 'null' title: Publisher publisher_url: anyOf: - type: string - type: 'null' title: Publisher Url source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id source_series_name: anyOf: - type: string - type: 'null' title: Source Series Name source_local_name: anyOf: - type: string - type: 'null' title: Source Local Name seasonal_adjustment: anyOf: - type: string - type: 'null' title: Seasonal Adjustment price_basis: anyOf: - type: string - type: 'null' title: Price Basis storage: anyOf: - type: string - type: 'null' title: Storage description: Data provider label for the served series. Always `FXMacroData`. served_by: anyOf: - type: string - type: 'null' title: Served By description: FXMacroData endpoint that serves this series. timestamp_field: anyOf: - type: string - type: 'null' title: Timestamp Field value_field: anyOf: - type: string - type: 'null' title: Value Field is_proxy: anyOf: - type: boolean - type: 'null' title: Is Proxy proxy_note: anyOf: - type: string - type: 'null' title: Proxy Note type: object title: AnnouncementProvenance description: Publisher and source lineage for the served series. policy_role: anyOf: - type: string - type: 'null' title: Policy Role policy_structure: anyOf: - type: string - type: 'null' title: Policy Structure comparison_compatible: anyOf: - type: boolean - type: 'null' title: Comparison Compatible policy_family: anyOf: - items: $ref: '#/components/schemas/PolicyFamilyEntry' type: array - type: 'null' title: Policy Family has_official_forecast: type: boolean title: Has Official Forecast requested_start_date: anyOf: - type: string - type: 'null' title: Requested Start Date requested_end_date: anyOf: - type: string - type: 'null' title: Requested End Date requested_window_has_data: anyOf: - type: boolean - type: 'null' title: Requested Window Has Data page_includes_latest_available: anyOf: - type: boolean - type: 'null' title: Page Includes Latest Available start_date: type: string title: Start Date end_date: type: string title: End Date earliest_available_date: anyOf: - type: string - type: 'null' title: Earliest Available Date latest_available_date: anyOf: - type: string - type: 'null' title: Latest Available Date cb_target: anyOf: - $ref: '#/components/schemas/CBTargetInfo' - type: 'null' remap: properties: applied: anyOf: - type: boolean - type: 'null' title: Applied canonical_indicator: anyOf: - type: string - type: 'null' title: Canonical Indicator rule_id: anyOf: - type: string - type: 'null' title: Rule Id transform: anyOf: - type: string - type: 'null' title: Transform type: object title: AnnouncementRemap description: Set when the requested indicator resolved to a canonical series. filters: properties: seasonality: anyOf: - type: string - type: 'null' title: Seasonality basis: anyOf: - type: string - type: 'null' title: Basis annualization: anyOf: - type: string - type: 'null' title: Annualization period_aggregation: anyOf: - type: string - type: 'null' title: Period Aggregation frequency: anyOf: - type: string - type: 'null' title: Frequency revisions: anyOf: - type: string - type: 'null' title: Revisions type: object title: SeriesFilters description: 'The series-variant filters this request was resolved with. A null means the caller did not constrain that dimension.' selected_series_id: anyOf: - type: string - type: 'null' title: Selected Series Id selected_series: properties: series_id: anyOf: - type: string - type: 'null' title: Series Id label: anyOf: - type: string - type: 'null' title: Label source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id seasonality: anyOf: - type: string - type: 'null' title: Seasonality basis: anyOf: - type: string - type: 'null' title: Basis annualization: anyOf: - type: string - type: 'null' title: Annualization period_aggregation: anyOf: - type: string - type: 'null' title: Period Aggregation frequency: anyOf: - type: string - type: 'null' title: Frequency revisions: anyOf: - type: string - type: 'null' title: Revisions type: object title: SelectedSeries description: The concrete series variant chosen for this response. supported_options: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Supported Options data_quality: $ref: '#/components/schemas/DataQuality' replay: anyOf: - additionalProperties: true type: object - type: 'null' title: Replay dataset_version: anyOf: - type: string - type: 'null' title: Dataset Version value_mode: type: string enum: - normalized - source title: Value Mode default: normalized value_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Value Metadata pagination: $ref: '#/components/schemas/PaginationInfo' freemium_window: anyOf: - $ref: '#/components/schemas/FreemiumWindow' - type: 'null' freemium_delay: anyOf: - $ref: '#/components/schemas/FreemiumDelayNotice' - type: 'null' no_data: anyOf: - additionalProperties: true type: object - type: 'null' title: No Data data: items: $ref: '#/components/schemas/AnnouncementDataPoint' type: array title: Data type: object required: - currency - indicator - has_official_forecast - start_date - end_date - data_quality - pagination - data title: AnnouncementResponse LatestAnnouncementValue: properties: date: anyOf: - type: string - type: 'null' title: Date val: anyOf: - type: number - type: 'null' title: Val announcement_datetime: anyOf: - type: integer - type: 'null' title: Announcement Datetime publication_time_status: anyOf: - type: string - type: 'null' title: Publication Time Status description: 'What `announcement_datetime` is: `confirmed`, `unverified`, `assumed_historical` or `unknown`. Same values as on `/v1/announcements/{currency}/{indicator}` rows; only `confirmed` is evidence of when the value became public.' publication_time_precision: anyOf: - type: string - type: 'null' title: Publication Time Precision source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_url_scope: anyOf: - type: string - type: 'null' title: Source Url Scope original_val: anyOf: - type: number - type: 'null' title: Original Val original_unit: anyOf: - type: string - type: 'null' title: Original Unit type: object title: LatestAnnouncementValue description: One observation, used for both ``latest`` and ``previous``. 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. ResearchPanelResponse: properties: status: type: string title: Status dataset_version: type: string title: Dataset Version complete: type: boolean title: Complete availability: type: string title: Availability value_mode: type: string const: source title: Value Mode value_metadata: additionalProperties: true type: object title: Value Metadata series: items: additionalProperties: true type: object type: array title: Series data: items: additionalProperties: true type: object type: array title: Data quality: additionalProperties: true type: object title: Quality limits: additionalProperties: type: integer type: object title: Limits type: object required: - status - dataset_version - complete - availability - value_mode - value_metadata - series - data - quality - limits title: ResearchPanelResponse HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError PointInTimeCompleteness: properties: row_count: type: integer title: Row Count announcement_datetime_count: type: integer title: Announcement Datetime Count missing_announcement_datetime_count: type: integer title: Missing Announcement Datetime Count assumed_release_time_count: type: integer title: Assumed Release Time Count default: 0 bounded_release_time_count: type: integer title: Bounded Release Time Count default: 0 unbounded_release_time_count: type: integer title: Unbounded Release Time Count default: 0 unverified_vintage_count: type: integer title: Unverified Vintage Count default: 0 unknown_publication_time_count: type: integer title: Unknown Publication Time Count default: 0 point_in_time_safe: type: boolean title: Point In Time Safe type: object required: - row_count - announcement_datetime_count - missing_announcement_datetime_count - point_in_time_safe title: PointInTimeCompleteness description: Coverage of source-confirmed publication timestamps for a dataset. AnnouncementDataPoint: properties: source_validity_status: anyOf: - type: string - type: 'null' title: Source Validity Status description: '`invalid_source_capture` marks a proven source/parser mistake retained only in the raw source/all audit view. It is excluded from economic revision selection and point-in-time replay. Absence is not source verification.' source_correction: anyOf: - additionalProperties: true type: object - type: 'null' title: Source Correction description: Audit evidence for an incorrect source capture, including the observed and expected series identities and any official correction citation. Original values and capture clocks remain unchanged. announcement_id: anyOf: - type: string - type: 'null' title: Announcement Id date: type: string title: Date val: anyOf: - type: number - type: 'null' title: Val source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_url_scope: anyOf: - type: string enum: - release - dataset - series - type: 'null' title: Source Url Scope previous_value: anyOf: - type: number - type: 'null' title: Previous Value previous_date: anyOf: - type: string - type: 'null' title: Previous Date previous_announcement_datetime: anyOf: - type: integer - type: 'null' title: Previous Announcement Datetime change: anyOf: - type: number - type: 'null' title: Change change_from_previous: anyOf: - type: number - type: 'null' title: Change From Previous pct_change_from_previous: anyOf: - type: number - type: 'null' title: Pct Change From Previous original_val: anyOf: - type: number - type: 'null' title: Original Val original_unit: anyOf: - type: string - type: 'null' title: Original Unit val_mom: anyOf: - type: number - type: 'null' title: Val Mom observation_id: anyOf: - type: string - type: 'null' title: Observation Id announcement_datetime: anyOf: - type: integer - type: 'null' title: Announcement Datetime announcement_datetime_local: anyOf: - type: string - type: 'null' title: Announcement Datetime Local release_time_assumed: anyOf: - type: boolean - type: 'null' title: Release Time Assumed description: 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. release_time_upper_bound: anyOf: - type: boolean - type: 'null' title: Release Time Upper Bound description: Legacy estimate flag; does not establish point-in-time safety. publication_time_status: anyOf: - type: string - type: 'null' title: Publication Time Status description: 'What `announcement_datetime` on this row actually is. Present on every row that carries a value. - `confirmed`: read from the publisher''s own release - an embargo instant printed on the document, or a publication timestamp the source served with the data. - `unverified`: a real timestamp that this row does not evidence the origin of. Most historical rows are in this state. It is not an estimate, and it is not proof. - `assumed_historical`: derived by this service from the lag its own confirmed releases show. Only permitted where both the period and the estimated publication precede 2025-11-06; see `release_time_assumed`. - `unknown`: no publication time. `announcement_datetime` is null and the observation is served on its period date alone. Only `confirmed` is evidence of when the value became public. Gate point-in-time work on this field per row, never on a series-level claim.' examples: - confirmed publication_time_precision: anyOf: - type: string - type: 'null' title: Publication Time Precision description: 'Resolution of `announcement_datetime`: `minute` when the publisher gave a clock time, `day` when only the release date was sourced, `unknown` otherwise.' examples: - minute publication_time_basis: anyOf: - type: string - type: 'null' title: Publication Time Basis description: 'Where an `unverified` time came from: `official_schedule` means the publisher''s own release calendar listed this release at this time (a planned time, equal to `official_planned_release_datetime`). Absent for `confirmed` rows, which carry the publisher''s own timestamp for the release.' examples: - official_schedule vintage_status: anyOf: - type: string - type: 'null' title: Vintage Status is_first_release: anyOf: - type: boolean - type: 'null' title: Is First Release observed_at_ns: anyOf: - type: integer - type: 'null' title: Observed At Ns observed_at_ns_string: anyOf: - type: string - type: 'null' title: Observed At Ns String collected_at_ns_string: anyOf: - type: string - type: 'null' title: Collected At Ns String publication_at_ns: anyOf: - type: integer - type: 'null' title: Publication At Ns description: Publisher-sourced publication instant, Unix epoch nanoseconds (UTC). Present only when the source states one; omitted otherwise. publication_at_ns_string: anyOf: - type: string - type: 'null' title: Publication At Ns String description: '`publication_at_ns` as a decimal string; present only alongside it.' announcement_source_url: anyOf: - type: string - type: 'null' title: Announcement Source Url description: The specific release this value was read from - for USD CPI, the BLS archive page for that month's news release. Present only when a release-scoped citation is available; a dataset or landing-page URL is reported as `source_url` instead and is never promoted to this field. examples: - https://www.bls.gov/news.release/archives/cpi_08122026.htm source_artifact_sha256: anyOf: - type: string - type: 'null' title: Source Artifact Sha256 capture_time_basis: anyOf: - type: string - type: 'null' title: Capture Time Basis geography: anyOf: - type: string - type: 'null' title: Geography period_basis: anyOf: - type: string - type: 'null' title: Period Basis methodology_id: anyOf: - type: string - type: 'null' title: Methodology Id source_period_label_conflict: anyOf: - type: boolean - type: 'null' title: Source Period Label Conflict source_methodology_status: anyOf: - type: string - type: 'null' title: Source Methodology Status selected_vintage_known_at_ns: anyOf: - type: string - type: 'null' title: Selected Vintage Known At Ns replay_vintage_verified: anyOf: - type: boolean - type: 'null' title: Replay Vintage Verified official_planned_release_datetime: anyOf: - type: integer - type: 'null' title: Official Planned Release Datetime official_planned_release_datetime_local: anyOf: - type: string - type: 'null' title: Official Planned Release Datetime Local official_actual_release_datetime: anyOf: - type: integer - type: 'null' title: Official Actual Release Datetime official_actual_release_datetime_local: anyOf: - type: string - type: 'null' title: Official Actual Release Datetime Local collected_at_ns: anyOf: - type: integer - type: 'null' title: Collected At Ns collected_at_iso: anyOf: - type: string - type: 'null' title: Collected At Iso ingestion_latency_ms: anyOf: - type: number - type: 'null' title: Ingestion Latency Ms description: Legacy stored nonnegative collection-minus-reference diagnostic in milliseconds, rounded to three decimals. Interpret only with `ingestion_latency_reference`; a planned reference measures from the schedule, not actual publication. Early captures clamp to zero. Use `release_timing` for separately evidenced publication/pickup bounds. Missing historical measurements are not synthesized. deprecated: true ingestion_latency_reference: anyOf: - type: string - type: 'null' title: Ingestion Latency Reference description: 'Original clock for `ingestion_latency_ms`: `official_planned_release_datetime`, or `official_actual_release_datetime` when confirmed. Retained with the stored diagnostic; not reinterpreted as source-pickup or customer-delivery latency.' deprecated: true release_timing: properties: scheduled_at: anyOf: - type: string - type: 'null' title: Scheduled At description: Official scheduled release time (ISO 8601, UTC), or null when no exact time was scheduled. Latency is never measured from this time. published_at: anyOf: - type: string - type: 'null' title: Published At description: The first observed read showing this period (ISO 8601, UTC, microsecond precision). This is an upper bound on publication, not an exact publisher timestamp. Same instant as `published_by`. Null when the capture did not record it. available_at: anyOf: - type: string - type: 'null' title: Available At description: When this value was committed to the FXMacroData API data store (ISO 8601, UTC, microsecond precision). This clock does not measure client receipt. Null when the commit time was not recorded. latency_ms: anyOf: - type: number - type: 'null' title: Latency Ms description: Milliseconds from publication to `available_at`, measured from `published_after` (the last read still showing the previous period), so it is the longest the gap can have been. Never measured from the scheduled time. Null when publication was not bounded or `available_at` is missing. latency_reference: anyOf: - type: string - type: 'null' title: Latency Reference description: 'Reference for `latency_ms`: `publication_to_store_commit_upper_bound`. This legacy metric ends at the store commit; source capture is measured separately by `source_pickup_latency_min_ms` and `source_pickup_latency_max_ms`.' publication_delay_ms: anyOf: - type: number - type: 'null' title: Publication Delay Ms description: Milliseconds from `scheduled_at` to the observed upper publication bound `published_by`. This is a schedule diagnostic, not the actual publisher delay or pickup latency. Null when either timestamp is missing. published_after: anyOf: - type: string - type: 'null' title: Published After description: The official source still showed the previous period after this instant (ISO 8601, UTC), or its `Last-Modified` header placed the update after it. Null when no such read was made. published_by: anyOf: - type: string - type: 'null' title: Published By description: The first read of the official source that showed this period completed at this instant (ISO 8601, UTC), so the release was public by then. Null when the window could not be bounded. publication_window_basis: anyOf: - type: string - type: 'null' title: Publication Window Basis description: 'How the window was bounded: `poll_bracket` (a read showing the previous period, then a read showing this one), `last_modified` (the source''s `Last-Modified` header sets the lower bound), or `first_new_period_read_only` (only the upper bound is known).' collected_at: anyOf: - type: string - type: 'null' title: Collected At description: When FXMacroData first captured this value from the official source (ISO 8601, UTC). Same instant as `collected_at_iso`. pickup_ms_min: anyOf: - type: number - type: 'null' title: Pickup Ms Min description: 'Milliseconds from `published_by` to `available_at`: the shortest time the value can have taken to reach store commit after publication, not edge availability or client receipt. Null when either time is missing or `available_at` precedes `published_by`.' pickup_ms_max: anyOf: - type: number - type: 'null' title: Pickup Ms Max description: 'Milliseconds from `published_after` to `available_at`: the value reached store commit within this long of publication (same figure as `latency_ms`), not edge availability or client receipt. Null when no read showed the previous period still in place, or when `available_at` is missing.' picked_up_at: anyOf: - type: string - type: 'null' title: Picked Up At description: When FXMacroData accepted this value from the official source (ISO 8601, UTC, microsecond precision). This is separate from the store commit and from a source observation that could not be accepted. Null when the capture clock is unavailable. source_pickup_latency_min_ms: anyOf: - type: number - type: 'null' title: Source Pickup Latency Min Ms description: 'Minimum milliseconds from actual source publication to accepted pickup: `picked_up_at` minus `published_by`. Null when the required observation clocks are unavailable or inconsistent.' source_pickup_latency_max_ms: anyOf: - type: number - type: 'null' title: Source Pickup Latency Max Ms description: 'Maximum milliseconds from actual source publication to accepted pickup: `picked_up_at` minus the proven lower publication bound. Null when that bound or a valid pickup clock is unavailable.' source_pickup_latency_ms: anyOf: - type: number - type: 'null' title: Source Pickup Latency Ms description: Exact milliseconds from actual publication to accepted pickup. Null for observed publication windows because their bounds do not establish an exact publisher availability timestamp. source_pickup_outcome: anyOf: - type: string - type: 'null' title: Source Pickup Outcome description: '`met` when the upper latency bound is below `source_pickup_slo_ms`; `breached` when the lower bound is at or above it; `unverified` when the evidence cannot decide; `not_observed` when no accepted pickup clock is recorded.' source_pickup_reference: anyOf: - type: string - type: 'null' title: Source Pickup Reference description: 'Evidence for pickup latency: `observed_publication_bracket`, `first_new_period_response_only`, `unverified_publication_clock`, or `source_pickup_not_observed`. A scheduled time is never used as the publication reference.' source_pickup_slo_ms: anyOf: - type: number - type: 'null' title: Source Pickup Slo Ms description: The strict latency threshold, in milliseconds, used to classify source pickup. The default is 1000 milliseconds. type: object title: ReleaseTiming description: 'Scheduled, observed publication, capture and commit times for a release. Present on rows captured at release time from the official source. The publication window is bounded by FXMacroData''s own reads of the official source; it is not a timestamp supplied by the publisher. Bounds that could not be established are null. Source pickup stops at accepted capture; legacy `latency_ms` and `pickup_ms_*` stop at the store commit. A null measurement does not establish whether a release was late.' pct_change: anyOf: - type: number - type: 'null' title: Pct Change pct_change_yoy: anyOf: - type: number - type: 'null' title: Pct Change Yoy pct_change_qoq: anyOf: - type: number - type: 'null' title: Pct Change Qoq pct_change_mom: anyOf: - type: number - type: 'null' title: Pct Change Mom pct_change_12m: anyOf: - type: number - type: 'null' title: Pct Change 12M revisions: anyOf: - items: $ref: '#/components/schemas/RevisionEntry' type: array - type: 'null' title: Revisions revisions_summary: anyOf: - $ref: '#/components/schemas/RevisionsSummary' - type: 'null' description: 'Compact view only (`fields=compact`): retained value groups with their earliest and latest values. Does not certify first release or publisher revision count. Replaces the full `revisions[]` ledger.' outside_requested_window: anyOf: - type: boolean - type: 'null' title: Outside Requested Window requested_start_date: anyOf: - type: string - type: 'null' title: Requested Start Date requested_end_date: anyOf: - type: string - type: 'null' title: Requested End Date returned_reason: anyOf: - type: string - type: 'null' title: Returned Reason staleness_days: anyOf: - type: integer - type: 'null' title: Staleness Days canonical_indicator: anyOf: - type: string - type: 'null' title: Canonical Indicator raw_indicator: anyOf: - type: string - type: 'null' title: Raw Indicator remap_applied: anyOf: - type: boolean - type: 'null' title: Remap Applied remap_rule_id: anyOf: - type: string - type: 'null' title: Remap Rule Id remap_segment_id: anyOf: - type: string - type: 'null' title: Remap Segment Id type: object required: - date title: AnnouncementDataPoint ReleaseDeliveryAnnouncement: properties: date: anyOf: - type: string - type: 'null' title: Date original_val: anyOf: - type: integer - type: number - type: 'null' title: Original Val original_unit: anyOf: - type: string - type: 'null' title: Original Unit val: anyOf: - type: integer - type: number - type: 'null' title: Val announcement_datetime: anyOf: - type: integer - type: number - type: 'null' title: Announcement Datetime source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_url_scope: anyOf: - type: string - type: 'null' title: Source Url Scope source_release: anyOf: - type: string - type: 'null' title: Source Release release_url: anyOf: - type: string - type: 'null' title: Release Url dataset_url: anyOf: - type: string - type: 'null' title: Dataset Url series_url: anyOf: - type: string - type: 'null' title: Series Url additionalProperties: true type: object title: ReleaseDeliveryAnnouncement description: 'The announcement row carried by a release event. Additional fields may appear as the announcement data model grows; clients should ignore fields they do not recognise.' LatestAnnouncementItem: properties: indicator: anyOf: - type: string - type: 'null' title: Indicator name: anyOf: - type: string - type: 'null' title: Name source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id source_series_name: anyOf: - type: string - type: 'null' title: Source Series Name source_local_name: anyOf: - type: string - type: 'null' title: Source Local Name seasonal_adjustment: anyOf: - type: string - type: 'null' title: Seasonal Adjustment price_basis: anyOf: - type: string - type: 'null' title: Price Basis is_proxy: anyOf: - type: boolean - type: 'null' title: Is Proxy proxy_note: anyOf: - type: string - type: 'null' title: Proxy Note provenance: anyOf: - $ref: '#/components/schemas/LatestAnnouncementProvenance' - type: 'null' unit: anyOf: - type: string - type: 'null' title: Unit frequency: anyOf: - type: string - type: 'null' title: Frequency has_official_forecast: anyOf: - type: boolean - type: 'null' title: Has Official Forecast latest: anyOf: - $ref: '#/components/schemas/LatestAnnouncementValue' - type: 'null' previous: anyOf: - $ref: '#/components/schemas/LatestAnnouncementValue' - type: 'null' pct_diff_prev: anyOf: - type: number - type: 'null' title: Pct Diff Prev pct_change_yoy: anyOf: - type: number - type: 'null' title: Pct Change Yoy pct_change_qoq: anyOf: - type: number - type: 'null' title: Pct Change Qoq pct_change_mom: anyOf: - type: number - type: 'null' title: Pct Change Mom type: object title: LatestAnnouncementItem PolicyFamilyEntry: properties: indicator: type: string title: Indicator value_name: type: string title: Value Name role: type: string title: Role type: object required: - indicator - value_name - role title: PolicyFamilyEntry AnnouncementChangesScope: properties: currencies: anyOf: - items: type: string type: array - type: 'null' title: Currencies indicators: anyOf: - items: type: string type: array - type: 'null' title: Indicators payload: anyOf: - type: string - type: 'null' title: Payload type: object title: AnnouncementChangesScope description: 'The filter set the response was produced under. ``currencies`` and ``indicators`` are null when no filter was applied.' LatestAnnouncementsProvenance: properties: publisher: anyOf: - type: string - type: 'null' title: Publisher storage: anyOf: - type: string - type: 'null' title: Storage served_by: anyOf: - type: string - type: 'null' title: Served By timestamp_field: anyOf: - type: string - type: 'null' title: Timestamp Field value_field: anyOf: - type: string - type: 'null' title: Value Field type: object title: LatestAnnouncementsProvenance AnnouncementChangesResponse: properties: data: items: $ref: '#/components/schemas/AnnouncementChangeEvent' type: array title: Data count: type: integer title: Count next_cursor: type: string title: Next Cursor has_more: type: boolean title: Has More retention_seconds: type: integer title: Retention Seconds scope: $ref: '#/components/schemas/AnnouncementChangesScope' freemium_delay: anyOf: - $ref: '#/components/schemas/FreemiumDelayNotice' - type: 'null' type: object required: - data - count - next_cursor - has_more - retention_seconds - scope title: AnnouncementChangesResponse AnnouncementChangeEvent: properties: event_id: type: string title: Event Id currency: type: string title: Currency indicator: type: string title: Indicator records_written: anyOf: - type: integer - type: 'null' title: Records Written timestamp: anyOf: - type: integer - type: number - type: 'null' title: Timestamp release_timestamp: anyOf: - type: integer - type: number - type: 'null' title: Release Timestamp latest_announcement: anyOf: - $ref: '#/components/schemas/ReleaseDeliveryAnnouncement' - type: 'null' delivery_mode: anyOf: - type: string - type: 'null' title: Delivery Mode origin_delivery_mode: anyOf: - type: string - type: 'null' title: Origin Delivery Mode source_fresh_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Source Fresh At Ns stream_ready_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Stream Ready At Ns server_sent_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Server Sent At Ns description: Time FXMacroData sent this event, as Unix epoch nanoseconds (UTC). acknowledgement_endpoint: anyOf: - type: string - type: 'null' title: Acknowledgement Endpoint description: Endpoint for acknowledging receipt of a streamed event. Present only on `/v1/stream/events` deliveries; never set on `/v1/announcements/changes`. age_ms: anyOf: - type: integer - type: number - type: 'null' title: Age Ms description: Event age in milliseconds when it was sent. Present only on `/v1/stream/events` deliveries; never set on `/v1/announcements/changes`. stale_after_ms: anyOf: - type: integer - type: number - type: 'null' title: Stale After Ms description: Age in milliseconds after which a streamed event is considered stale. Present only on `/v1/stream/events` deliveries; never set on `/v1/announcements/changes`. stale: anyOf: - type: boolean - type: 'null' title: Stale description: True when the event was older than `stale_after_ms` when sent. Present only on `/v1/stream/events` deliveries; never set on `/v1/announcements/changes`. late_delivery: anyOf: - type: boolean - type: 'null' title: Late Delivery description: True when the event was sent after its staleness threshold. Present only on `/v1/stream/events` deliveries; never set on `/v1/announcements/changes`. late_events_are_delivered: anyOf: - type: boolean - type: 'null' title: Late Events Are Delivered scheduled_release_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Scheduled Release At Ns scheduled_to_server_send_ms: anyOf: - type: integer - type: number - type: 'null' title: Scheduled To Server Send Ms description: Milliseconds from the scheduled release time to the time FXMacroData sent this event. source_late: anyOf: - type: boolean - type: 'null' title: Source Late source_late_by_ms: anyOf: - type: integer - type: number - type: 'null' title: Source Late By Ms source_delay_proven: anyOf: - type: boolean - type: 'null' title: Source Delay Proven platform_delivery_after_source_ms: anyOf: - type: integer - type: number - type: 'null' title: Platform Delivery After Source Ms polling_started_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Polling Started At Ns polling_started_lag_ms: anyOf: - type: integer - type: number - type: 'null' title: Polling Started Lag Ms polling_started_before_scheduled_release: anyOf: - type: boolean - type: 'null' title: Polling Started Before Scheduled Release pre_fresh_stale_poll_count: anyOf: - type: integer - type: number - type: 'null' title: Pre Fresh Stale Poll Count last_stale_fetch_completed_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Last Stale Fetch Completed At Ns first_fresh_response_completed_at_ns: anyOf: - type: integer - type: number - type: 'null' title: First Fresh Response Completed At Ns official_source_stale_after_scheduled_release: anyOf: - type: boolean - type: 'null' title: Official Source Stale After Scheduled Release scheduled_to_first_fresh_response_ms: anyOf: - type: integer - type: number - type: 'null' title: Scheduled To First Fresh Response Ms source_freshness_observation_window_start_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Source Freshness Observation Window Start At Ns source_freshness_observation_window_end_at_ns: anyOf: - type: integer - type: number - type: 'null' title: Source Freshness Observation Window End At Ns source_freshness_observation_window_ms: anyOf: - type: integer - type: number - type: 'null' title: Source Freshness Observation Window Ms source_freshness_observation_basis: anyOf: - type: string - type: 'null' title: Source Freshness Observation Basis source_delay_attribution: anyOf: - type: string - type: 'null' title: Source Delay Attribution fxmd_delivery_attribution: anyOf: - type: string - type: 'null' title: Fxmd Delivery Attribution fxmd_after_source_ms: anyOf: - type: integer - type: number - type: 'null' title: Fxmd After Source Ms fxmd_after_source_slo_met: anyOf: - type: boolean - type: 'null' title: Fxmd After Source Slo Met catchup_source: anyOf: - type: string - type: 'null' title: Catchup Source catchup_delay_ms: anyOf: - type: integer - type: number - type: 'null' title: Catchup Delay Ms recovery_class: anyOf: - type: string - type: 'null' title: Recovery Class subsecond_status: anyOf: - type: string - type: 'null' title: Subsecond Status subsecond_operational_status: anyOf: - type: string - type: 'null' title: Subsecond Operational Status subsecond_guarantee_active: anyOf: - type: boolean - type: 'null' title: Subsecond Guarantee Active subsecond_contract_outcome: anyOf: - type: string - type: 'null' title: Subsecond Contract Outcome subsecond_contract_breached: anyOf: - type: boolean - type: 'null' title: Subsecond Contract Breached additionalProperties: true type: object required: - event_id - currency - indicator title: AnnouncementChangeEvent description: 'A release event returned by ``/v1/announcements/changes``. Events share the shape emitted by ``/v1/stream/events``. Fields that do not apply to an event are omitted rather than returned as null.' FreemiumWindow: properties: applied: type: boolean title: Applied max_days: type: integer title: Max Days cutoff_date: anyOf: - type: string - type: 'null' title: Cutoff Date message: anyOf: - type: string - type: 'null' title: Message type: object required: - applied - max_days title: FreemiumWindow description: 'Present only when the freemium window shortened the response. Without it, ``pagination.total_count`` counts the clamped series and a truncated history is indistinguishable from a genuinely short one.' LatestAnnouncementsResponse: properties: currency: anyOf: - type: string - type: 'null' title: Currency source: anyOf: - type: string - type: 'null' title: Source provenance: anyOf: - $ref: '#/components/schemas/LatestAnnouncementsProvenance' - type: 'null' as_of: anyOf: - type: string - type: 'null' title: As Of count: anyOf: - type: integer - type: 'null' title: Count data: anyOf: - items: $ref: '#/components/schemas/LatestAnnouncementItem' type: array - type: 'null' title: Data freemium_delay: anyOf: - $ref: '#/components/schemas/FreemiumDelayNotice' - type: 'null' type: object title: LatestAnnouncementsResponse CommodityCoverage: properties: scope: type: string title: Scope requested_start: anyOf: - type: string - type: 'null' title: Requested Start requested_end: anyOf: - type: string - type: 'null' title: Requested End available_start: anyOf: - type: string - type: 'null' title: Available Start available_end: anyOf: - type: string - type: 'null' title: Available End input_row_count: type: integer title: Input Row Count row_count: type: integer title: Row Count distinct_date_count: type: integer title: Distinct Date Count duplicate_date_row_count: type: integer title: Duplicate Date Row Count excluded_weekend_row_count: type: integer title: Excluded Weekend Row Count invalid_date_row_count: type: integer title: Invalid Date Row Count expected_weekday_label_count: type: integer title: Expected Weekday Label Count missing_weekday_label_count: type: integer title: Missing Weekday Label Count largest_missing_weekday_run: type: integer title: Largest Missing Weekday Run largest_calendar_gap_days: type: integer title: Largest Calendar Gap Days missing_weekday_ranges: items: $ref: '#/components/schemas/CommodityMissingWeekdayRange' type: array title: Missing Weekday Ranges longest_continuous_weekday_segment: $ref: '#/components/schemas/CommodityCoverageSegment' latest_continuous_weekday_segment: $ref: '#/components/schemas/CommodityCoverageSegment' sparse_history: type: boolean title: Sparse History coverage_basis: type: string title: Coverage Basis continuous_coverage_verified: type: boolean title: Continuous Coverage Verified default: false reference_only: type: boolean title: Reference Only default: true executable_quotes: type: boolean title: Executable Quotes default: false provenance_version: type: integer title: Provenance Version repaired_excluded_weekend_row_count: type: integer title: Repaired Excluded Weekend Row Count default: 0 repaired_invalid_date_row_count: type: integer title: Repaired Invalid Date Row Count default: 0 type: object required: - scope - input_row_count - row_count - distinct_date_count - duplicate_date_row_count - excluded_weekend_row_count - invalid_date_row_count - expected_weekday_label_count - missing_weekday_label_count - largest_missing_weekday_run - largest_calendar_gap_days - missing_weekday_ranges - longest_continuous_weekday_segment - latest_continuous_weekday_segment - sparse_history - coverage_basis - provenance_version title: CommodityCoverage 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.'