{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/fxmacrodata/main/json-schema/fxmacrodata-commodity-response-schema.json", "title": "CommodityResponse", "x-generated": "2026-10-18", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/fxmacrodata-openapi.json#/components/schemas/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": "#/$defs/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": "#/$defs/CommodityDataPoint" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "currency", "indicator", "provenance", "has_official_forecast", "data_quality", "start_date", "end_date", "pagination", "data" ], "$defs": { "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": "#/$defs/CommodityMissingWeekdayRange" }, "type": "array", "title": "Missing Weekday Ranges" }, "longest_continuous_weekday_segment": { "$ref": "#/$defs/CommodityCoverageSegment" }, "latest_continuous_weekday_segment": { "$ref": "#/$defs/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" }, "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" }, "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" }, "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": "#/$defs/CommodityCoverage" }, { "type": "null" } ] }, "stored_history_coverage": { "anyOf": [ { "$ref": "#/$defs/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": "#/$defs/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" }, "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." } } }