{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/fxmacrodata/main/json-schema/fxmacrodata-rate-differential-response-schema.json", "title": "RateDifferentialResponse", "x-generated": "2026-10-18", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/fxmacrodata-openapi.json#/components/schemas/RateDifferentialResponse", "properties": { "research": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Research" }, "base": { "type": "string", "title": "Base" }, "quote": { "type": "string", "title": "Quote" }, "rate_type": { "type": "string", "title": "Rate Type", "default": "spot" }, "measure_requested": { "type": "string", "title": "Measure Requested" }, "measure_used": { "type": "string", "title": "Measure Used" }, "base_indicator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Indicator" }, "quote_indicator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote Indicator" }, "curve_family": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Curve Family" }, "start_tenor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Tenor" }, "end_tenor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Tenor" }, "forward_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Forward Label" }, "start_date": { "type": "string", "title": "Start Date" }, "end_date": { "type": "string", "title": "End Date" }, "matched_points": { "type": "integer", "title": "Matched Points" }, "unit": { "type": "string", "title": "Unit" }, "latest_spread": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latest Spread" }, "latest_spread_bps": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latest Spread Bps" }, "latest_differential": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latest Differential" }, "latest_differential_bps": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latest Differential Bps" }, "base_latest": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Base Latest" }, "quote_latest": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quote Latest" }, "sources": { "$ref": "#/$defs/RateDifferentialSources" }, "official_forward_source_support": { "properties": { "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Type" }, "source_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Note" } }, "type": "object", "title": "OfficialForwardSourceSupport", "description": "How the official publisher makes forward rates available, if at all." }, "data_quality": { "$ref": "#/$defs/DataQuality" }, "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/RateDifferentialPoint" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "base", "quote", "measure_requested", "measure_used", "start_date", "end_date", "matched_points", "unit", "sources", "data_quality", "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" }, "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." }, "RateDifferentialPoint": { "properties": { "date": { "type": "string", "title": "Date" }, "base_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Base Val" }, "quote_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quote Val" }, "spread": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spread" }, "spread_bps": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spread Bps" }, "differential": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Differential" }, "differential_bps": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Differential Bps" }, "base_forward_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Base Forward Val" }, "quote_forward_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quote Forward Val" }, "base_start_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Base Start Val" }, "base_end_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Base End Val" }, "quote_start_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quote Start Val" }, "quote_end_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quote End Val" }, "base_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Base Announcement Datetime" }, "quote_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Quote Announcement Datetime" }, "base_start_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Base Start Announcement Datetime" }, "base_end_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Base End Announcement Datetime" }, "quote_start_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Quote Start Announcement Datetime" }, "quote_end_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Quote End Announcement Datetime" }, "base_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Selected Vintage Known At Ns" }, "quote_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote Selected Vintage Known At Ns" }, "base_start_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Start Selected Vintage Known At Ns" }, "base_end_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base End Selected Vintage Known At Ns" }, "quote_start_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote Start Selected Vintage Known At Ns" }, "quote_end_selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote End Selected Vintage Known At Ns" } }, "type": "object", "required": [ "date" ], "title": "RateDifferentialPoint" }, "RateDifferentialSources": { "properties": { "base": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Base" }, "quote": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Quote" } }, "type": "object", "title": "RateDifferentialSources", "description": "Publisher of each leg's rate.\n\nThe spot path reports a single publisher name per leg; the curve and\nforward paths report the list of curve sources each leg was built from, so\nboth shapes are declared." } } }