openapi: 3.2.0 info: title: FX Macrodata Commodities 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: Commodities description: Commodity and energy datasets, including OPEC and planned commodity price endpoints. paths: /v1/commodities/latest: get: tags: - Commodities summary: Get latest values for all commodity indicators operationId: get_all_commodity_latest_values_v1_commodities_latest_get 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 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CommoditiesLatestResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/commodities/{indicator}: get: tags: - Commodities summary: Get commodity indicator data description: 'Returns commodity and energy price observations with source provenance. **Supported indicators:** `crude_oil_inventories`, `gold`, `natural_gas`, `natural_gas_storage`, `oil_brent`, `oil_wti`, `platinum`, `silver`. The supported-indicator list above is the complete list of indicators this endpoint serves. **Precious metals** — official central-bank publications, USD/troy oz. - **Gold**, **silver**, **platinum** (and **palladium** where listed above): National Bank of Ukraine official accounting prices of banking metals (https://bank.gov.ua/en/markets/exchangerates), converted to USD with the NBU official UAH/USD rate for the same official rate date. `date` is the official rate date and `announcement_date` is the Kyiv business day the NBU set it; no publication clock is asserted. Source: National Bank of Ukraine (https://bank.gov.ua/en/open-data). - Gold comparisons use the Narodowy Bank Polski calculated gold price (PLN per gram, converted with the same-date NBP USD mid rate). Cross-checks are best effort over the most recent 93 calendar days; where a comparison is available, rows carry `cross_check_divergence_pct`. NBP rows (`source_series_id` starting `NBP:`) are served only for dates the NBU did not supply. - These are official reference prices, not executable quotes or LBMA auction prices. Weekday-label coverage is included. **Energy** — sourced from the U.S. Energy Information Administration (https://api.eia.gov/v2/). - **WTI crude oil** (`oil_wti`): Cushing, OK spot price, USD/barrel. - **Brent crude oil** (`oil_brent`): Europe spot price, USD/barrel. - **Natural gas** (`natural_gas`): Henry Hub spot price, USD/MMBtu. **Query Parameters:** - `start_date`: Earliest date to include (YYYY-MM-DD). Defaults to 365 days ago. - `end_date`: Latest date to include (YYYY-MM-DD). Defaults to today. **Authentication:** A professional API key is required. Supply it via `?api_key=` or the `X-API-Key` header.' operationId: get_commodity_indicator_data_v1_commodities__indicator__get parameters: - name: indicator in: path required: true schema: type: string description: Commodity indicator slug examples: - oil_wti title: Indicator enum: - crude_oil_inventories - gold - natural_gas - natural_gas_storage - oil_brent - oil_wti - platinum - silver example: crude_oil_inventories description: 'Required path parameter. Commodity indicator slug Allowed values: crude_oil_inventories, gold, natural_gas, natural_gas_storage, oil_brent, oil_wti, platinum, silver.' - 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: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum rows to return. Defaults to 20. Maximum 100. examples: - 20 default: 20 title: Limit description: Optional query parameter. Maximum rows to return. Defaults to 20. Maximum 100. - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of rows to skip after most-recent-first ordering. examples: - 0 default: 0 title: Offset description: Optional query parameter. Number of rows to skip after most-recent-first ordering. - name: page in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: One-based page number. When supplied, it takes precedence over offset. examples: - 1 title: Page description: Optional query parameter. One-based page number. When supplied, it takes precedence over offset. - 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: Time-series data for the requested commodity indicator. content: application/json: schema: $ref: '#/components/schemas/CommodityResponse' example: currency: COMM indicator: gold source: National Bank of Ukraine source_url: https://bank.gov.ua/en/markets/exchangerates has_official_forecast: false start_date: '2026-10-01' end_date: '2026-10-05' data: - date: '2026-10-05' val: 4182.862 announcement_date: '2026-10-02' announcement_timezone: Europe/Kyiv time_announced: false publication_time_status: unknown source_series_id: NBU:XAU:UAH/USD source_value: 188168.98 source_unit: UAH per troy ounce conversion_rate: 44.9857 conversion_unit: UAH per USD cross_check_val: 4158.925 cross_check_divergence_pct: 0.576 cross_check_divergent: false '404': description: Unsupported commodity indicator. content: application/json: example: detail: Unsupported commodity indicator (xyz) '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-parameter-availability: indicator: - crude_oil_inventories - gold - natural_gas - natural_gas_storage - oil_brent - oil_wti - platinum - silver components: schemas: 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 CommoditiesLatestResponse: properties: currency: anyOf: - type: string - type: 'null' title: Currency source: anyOf: - type: string - type: 'null' title: Source as_of: anyOf: - type: string - type: 'null' title: As Of description: Newest observation date across available indicators; this does not certify that every indicator is current. is_stale: anyOf: - type: boolean - type: 'null' title: Is Stale stale_indicators: anyOf: - items: type: string type: array - type: 'null' title: Stale Indicators freshness: anyOf: - $ref: '#/components/schemas/CommodityLatestFreshness' - type: 'null' count: anyOf: - type: integer - type: 'null' title: Count data: anyOf: - items: $ref: '#/components/schemas/CommodityLatestItem' type: array - type: 'null' title: Data type: object title: CommoditiesLatestResponse 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. 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 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 CommodityLatestFreshness: properties: status: anyOf: - type: string - type: 'null' title: Status description: 'Aggregate freshness: current, partial, or failed. Inspect each indicator''s date and quality for its own freshness.' configured_count: anyOf: - type: integer - type: 'null' title: Configured Count available_count: anyOf: - type: integer - type: 'null' title: Available Count oldest_available_date: anyOf: - type: string - type: 'null' title: Oldest Available Date newest_available_date: anyOf: - type: string - type: 'null' title: Newest Available Date stale_indicators: anyOf: - items: type: string type: array - type: 'null' title: Stale Indicators unavailable_indicators: anyOf: - items: type: string type: array - type: 'null' title: Unavailable Indicators source_failure_indicators: anyOf: - items: type: string type: array - type: 'null' title: Source Failure Indicators unknown_freshness_indicators: anyOf: - items: type: string type: array - type: 'null' title: Unknown Freshness Indicators type: object title: CommodityLatestFreshness CommodityIngestStatus: properties: state: anyOf: - type: string - type: 'null' title: State last_attempt_at: anyOf: - type: string - type: 'null' title: Last Attempt At last_success_at: anyOf: - type: string - type: 'null' title: Last Success At latest_available_date: anyOf: - type: string - type: 'null' title: Latest Available Date data_lag_days: anyOf: - type: integer - type: 'null' title: Data Lag Days is_stale: anyOf: - type: boolean - type: 'null' title: Is Stale error_code: anyOf: - type: string - type: 'null' title: Error Code type: object title: CommodityIngestStatus CommodityObservation: properties: source_permission_status: anyOf: - type: string - type: 'null' title: Source Permission Status 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 source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_type: anyOf: - type: string - type: 'null' title: Source Type source_chart_timestamp: anyOf: - type: integer - type: 'null' title: Source Chart Timestamp source_chart_timestamp_ms: anyOf: - type: integer - type: 'null' title: Source Chart Timestamp Ms source_chart_period: anyOf: - type: string - type: 'null' title: Source Chart Period quote_time_status: anyOf: - type: string - type: 'null' title: Quote Time Status sampling_method: anyOf: - type: string - type: 'null' title: Sampling Method publication_time_status: anyOf: - type: string - type: 'null' title: Publication Time Status point_in_time_safe: anyOf: - type: boolean - type: 'null' title: Point In Time Safe provenance_version: anyOf: - type: integer - type: 'null' title: Provenance Version is_official: anyOf: - type: boolean - type: 'null' title: Is Official source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id announcement_date: anyOf: - type: string - type: 'null' title: Announcement Date announcement_timezone: anyOf: - type: string - type: 'null' title: Announcement Timezone time_announced: anyOf: - type: boolean - type: 'null' title: Time Announced release_time_status: anyOf: - type: string - type: 'null' title: Release Time Status release_date_status: anyOf: - type: string - type: 'null' title: Release Date Status source_value: anyOf: - type: number - type: 'null' title: Source Value source_unit: anyOf: - type: string - type: 'null' title: Source Unit conversion_rate: anyOf: - type: number - type: 'null' title: Conversion Rate conversion_unit: anyOf: - type: string - type: 'null' title: Conversion Unit conversion_source: anyOf: - type: string - type: 'null' title: Conversion Source fallback_for_source: anyOf: - type: string - type: 'null' title: Fallback For Source cross_check_source: anyOf: - type: string - type: 'null' title: Cross Check Source cross_check_series_id: anyOf: - type: string - type: 'null' title: Cross Check Series Id cross_check_val: anyOf: - type: number - type: 'null' title: Cross Check Val cross_check_divergence_pct: anyOf: - type: number - type: 'null' title: Cross Check Divergence Pct cross_check_divergent: anyOf: - type: boolean - type: 'null' title: Cross Check Divergent type: object title: CommodityObservation CommodityDataPoint: properties: source_permission_status: anyOf: - type: string - type: 'null' title: Source Permission Status date: type: string title: Date val: anyOf: - type: number - type: 'null' title: Val announcement_datetime: anyOf: - type: integer - type: 'null' title: Announcement Datetime source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url source_type: anyOf: - type: string - type: 'null' title: Source Type source_chart_timestamp: anyOf: - type: integer - type: 'null' title: Source Chart Timestamp source_chart_timestamp_ms: anyOf: - type: integer - type: 'null' title: Source Chart Timestamp Ms source_chart_period: anyOf: - type: string - type: 'null' title: Source Chart Period quote_time_status: anyOf: - type: string - type: 'null' title: Quote Time Status sampling_method: anyOf: - type: string - type: 'null' title: Sampling Method publication_time_status: anyOf: - type: string - type: 'null' title: Publication Time Status point_in_time_safe: anyOf: - type: boolean - type: 'null' title: Point In Time Safe provenance_version: anyOf: - type: integer - type: 'null' title: Provenance Version is_official: anyOf: - type: boolean - type: 'null' title: Is Official source_series_id: anyOf: - type: string - type: 'null' title: Source Series Id announcement_date: anyOf: - type: string - type: 'null' title: Announcement Date announcement_timezone: anyOf: - type: string - type: 'null' title: Announcement Timezone time_announced: anyOf: - type: boolean - type: 'null' title: Time Announced release_time_status: anyOf: - type: string - type: 'null' title: Release Time Status release_date_status: anyOf: - type: string - type: 'null' title: Release Date Status source_value: anyOf: - type: number - type: 'null' title: Source Value source_unit: anyOf: - type: string - type: 'null' title: Source Unit conversion_rate: anyOf: - type: number - type: 'null' title: Conversion Rate conversion_unit: anyOf: - type: string - type: 'null' title: Conversion Unit conversion_source: anyOf: - type: string - type: 'null' title: Conversion Source fallback_for_source: anyOf: - type: string - type: 'null' title: Fallback For Source cross_check_source: anyOf: - type: string - type: 'null' title: Cross Check Source cross_check_series_id: anyOf: - type: string - type: 'null' title: Cross Check Series Id cross_check_val: anyOf: - type: number - type: 'null' title: Cross Check Val cross_check_divergence_pct: anyOf: - type: number - type: 'null' title: Cross Check Divergence Pct cross_check_divergent: anyOf: - type: boolean - type: 'null' title: Cross Check Divergent pct_change: anyOf: - type: number - type: 'null' title: Pct Change pct_change_12m: anyOf: - type: number - type: 'null' title: Pct Change 12M additionalProperties: true type: object required: - date title: CommodityDataPoint CommodityResponse: properties: currency: type: string title: Currency indicator: type: string title: Indicator source: anyOf: - type: string - type: 'null' title: Source source_url: anyOf: - type: string - type: 'null' title: Source Url provenance: properties: publisher: anyOf: - type: string - type: 'null' title: Publisher publisher_url: anyOf: - type: string - type: 'null' title: Publisher Url storage: anyOf: - type: string - type: 'null' title: Storage description: Data provider label for the served series. Always `FXMacroData`. source_store: anyOf: - type: string - type: 'null' title: Source Store description: Source series reference, when reported. 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 type: object title: SourceProvenance description: Publisher and source lineage, shared by the market-data endpoints. has_official_forecast: type: boolean title: Has Official Forecast last_updated: anyOf: - type: string - type: 'null' title: Last Updated latest_available_date: anyOf: - type: string - type: 'null' title: Latest Available Date data_quality: $ref: '#/components/schemas/DataQuality' start_date: type: string title: Start Date end_date: type: string title: End Date pagination: properties: limit: anyOf: - type: integer - type: 'null' title: Limit offset: anyOf: - type: integer - type: 'null' title: Offset returned_count: anyOf: - type: integer - type: 'null' title: Returned Count total_count: anyOf: - type: integer - type: 'null' title: Total Count has_more: anyOf: - type: boolean - type: 'null' 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 title: Pagination description: Offset pagination state for one page of results. data: items: $ref: '#/components/schemas/CommodityDataPoint' type: array title: Data type: object required: - currency - indicator - provenance - has_official_forecast - data_quality - start_date - end_date - pagination - data title: CommodityResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 CommodityLatestItem: properties: indicator: anyOf: - type: string - type: 'null' title: Indicator 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 last_updated: anyOf: - type: string - type: 'null' title: Last Updated observation_date: anyOf: - type: string - type: 'null' title: Observation Date description: Official observation date of latest; an alias of latest.date. latest_available_date: anyOf: - type: string - type: 'null' title: Latest Available Date is_stale: anyOf: - type: boolean - type: 'null' title: Is Stale data_lag_days: anyOf: - type: integer - type: 'null' title: Data Lag Days ingest_status: anyOf: - $ref: '#/components/schemas/CommodityIngestStatus' - type: 'null' data_quality: anyOf: - $ref: '#/components/schemas/DataQuality' - type: 'null' latest: anyOf: - $ref: '#/components/schemas/CommodityObservation' - type: 'null' previous: anyOf: - $ref: '#/components/schemas/CommodityObservation' - type: 'null' pct_diff_prev: anyOf: - type: number - type: 'null' title: Pct Diff Prev type: object title: CommodityLatestItem 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.'