changedInput schema / properties / canvas_id / description
Previous value: -"Optional canvas ID from a prior call. Omit on the first call to start a fresh canvas; pass the returned canvas_id to append tables to an existing canvas."New value: +"Existing canvas ID from a prior call explicitly requesting staging even for short or empty results. Every call creates a uniquely named table. Omit for automatic staging or inline paging."
addedInput schema / properties / end_date / pattern
Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
changedInput schema / properties / start_date / description
Previous value: -"ISO 8601 start date (YYYY-MM-DD). ECB data starts 1999-01-04. The actual first data point may be later if start_date falls on a weekend/holiday."New value: +"ISO 8601 start date (YYYY-MM-DD). Frankfurter v1 data starts 1999-01-04. The actual first data point may be later if start_date falls on a weekend/holiday."
addedInput schema / properties / start_date / pattern
Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
changedOutput schema / properties / end_date / description
Previous value: -"Last publication date in the requested range. Always inside the requested range — earlier than the requested end when that day had no ECB fix, and equal to it when the series is empty. Later than the last key in rates when truncated is true."New value: +"Last publication date in the requested range. Always inside the requested range — earlier than the requested end when that day had no Frankfurter v1 fix, and equal to it when the series is empty. Later than the last key in rates when truncated is true."
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_date_format`: start_date or end_date is not a real calendar date written as YYYY-MM-DD. `unsupported_currency`: base_currency or quote_currency is not in the ECB currency set. `date_out_of_range`: start_date is before 1999-01-04 or end_date is in the future. `invalid_range`: start_date is after end_date. `upstream_no_data`: Both currencies are supported but the ECB published no rates across this range. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_date_format`: start_date or end_date is not a real calendar date written as YYYY-MM-DD. `unsupported_currency`: base_currency or quote_currency is not available in the current discovery or served historical data. `date_out_of_range`: start_date is before 1999-01-04 or end_date is in the future. `invalid_range`: start_date is after end_date. `upstream_no_data`: Both currencies are supported but the Frankfurter v1 published no rates across this range. `canvas_not_found`: An explicitly supplied canvas_id does not exist or has expired. `canvas_unavailable`: canvas_id requests staging on a deployment with DataCanvas disabled. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "invalid_date_format",
- "unsupported_currency",
- "date_out_of_range",
- "invalid_range",
- "upstream_no_data"
-]New value: +[
+ "invalid_date_format",
+ "unsupported_currency",
+ "date_out_of_range",
+ "invalid_range",
+ "upstream_no_data",
+ "canvas_not_found",
+ "canvas_unavailable"
+]
changedOutput schema / properties / rate_type / description
Previous value: -"Always \"ECB reference (mid-market)\" — these are reference rates, not tradeable bid/ask."New value: +"Always \"Daily rate (Frankfurter v1)\" — these are reference rates, not tradeable bid/ask."
changedOutput schema / properties / source / description
Previous value: -"Always \"ECB via Frankfurter\" — the upstream data provider."New value: +"Always \"Frankfurter v1\" — the upstream data provider."
changedOutput schema / properties / spilled / description
Previous value: -"True when the range exceeded the staging threshold and the series exceeded the inline preview budget, so the full result was staged on DataCanvas."New value: +"True when the complete result was staged on DataCanvas, either explicitly through canvas_id or automatically after exceeding the threshold and preview budget."
changedOutput schema / properties / start_date / description
Previous value: -"First publication date in the requested range, and the first key in rates. Always inside the requested range — later than the requested start when that day had no ECB fix, and equal to it when the series is empty."New value: +"First publication date in the requested range, and the first key in rates. Always inside the requested range — later than the requested start when that day had no Frankfurter v1 fix, and equal to it when the series is empty."
addedOutput schema / properties / summary
Added value: +{
+ "additionalProperties": false,
+ "description": "Statistics over the full clipped requested range before paging or staging; omitted for empty ranges. Continuations summarize their own requested interval.",
+ "properties": {
+ "change_pct": {
+ "description": "Percentage change from first to last observation.",
+ "type": "number"
+ },
+ "first": {
+ "additionalProperties": false,
+ "description": "Chronologically first observation.",
+ "properties": {
+ "date": {
+ "description": "First publication date.",
+ "type": "string"
+ },
+ "rate": {
+ "description": "First rate.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "rate",
+ "date"
+ ],
+ "type": "object"
+ },
+ "last": {
+ "additionalProperties": false,
+ "description": "Chronologically last observation.",
+ "properties": {
+ "date": {
+ "description": "Last publication date.",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Last rate.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "rate",
+ "date"
+ ],
+ "type": "object"
+ },
+ "max": {
+ "additionalProperties": false,
+ "description": "Maximum observation.",
+ "properties": {
+ "date": {
+ "description": "Earliest date with the highest rate.",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Highest rate.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "rate",
+ "date"
+ ],
+ "type": "object"
+ },
+ "mean": {
+ "description": "Unweighted arithmetic mean of all daily observations in the requested range; not an accounting-policy prescription.",
+ "type": "number"
+ },
+ "min": {
+ "additionalProperties": false,
+ "description": "Minimum observation.",
+ "properties": {
+ "date": {
+ "description": "Earliest date with the lowest rate.",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Lowest rate.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "rate",
+ "date"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "mean",
+ "min",
+ "max",
+ "first",
+ "last",
+ "change_pct"
+ ],
+ "type": "object"
+}