Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 1 min ago
teppi

Server definition

Hash
sha256:2918b6a5f80fe6d54117f90680972e9435e543bc335fd6093b2c3780e91ee7c0
What it is
What a remote MCP server returned when asked what it offers: 37 tools

The blob, as servednamed by its sha256

{ "instructions": "\n> Bridge to the tradedashboard.eu EU Trade Explorer API (Eurostat Comext customs-trade + PRODCOM industrial-production statistics).\n\n## Two Report Workflows\n\n- **Short report**: resolve the product code with `resolve_product_code`, then call `get_full_report` for a rundown of the most important stats. Full guide: `guidelines_for_a_short_report`.\n- **Long report**: over 35 tools to call iteratively depending on your angle. Full guide: `guidelines_for_a_long_report`.\n\n## Access\n\nNo credential is needed to start: reference tools (`resolve_product_code`, `get_countries`, `get_subtree`, `validate_code`, `search_codes`, `get_data_range`, `get_product_profile`) are always free, and queries made entirely of the demonstration products featured on tradedashboard.eu's front page stay fully explorable anonymously, with every tool. Every other analytical call requires registration: the server answers 401 with a `WWW-Authenticate` challenge, which a normal MCP client follows into the OAuth 2.1 login/consent flow automatically. Registration is free and currently unlimited.\n\n## Query Arguments\n\nAll MCP tools accept the same `query` object with these parameters:\n- `product`: Combined Nomenclature code(s)\n- `reporter`: Declaring entity (EU member state, etc.)\n- `partner_set`: Named partner preset or custom list\n- `period_start`, `period_end`: Analysis window (YYYY-MM format)\n- `frequency`: 'month', 'quarter', or 'year'\n- Plus tool-specific options\n\nEvery tool accepts `compact=true` to condense long numeric time series into summary statistics (first/last/min/max/mean/pct_change) instead of full series. Use this when you just want main trends; omit it when identifying shocks and outliers.\n", "tools": [ { "description": "Report-section helper (\"Autonomy & vulnerability\"): net import\nreliance (`get_net_import_reliance`) is always the headline fact/chart.\nTrade intensity and export propensity (`get_trade_intensity` /\n`get_export_propensity`) are both computed, then a deterministic\nsalience score -- distance from an unremarkable ~50% band, plus the\nmagnitude of its own change -- decides which one leads the narrative;\nthis choice is never left to the caller. `trade_intensity_pct` is\nreturned fully unit-consistent (first/last/min/max all expressed as a\npercentage, matching `export_propensity_pct`). Sub-contracting is\ndeliberately not included in this section at all -- it is an unrelated,\ntiny-base PRODCOM series that only muddied the narrative.\n\nReturns `{narrative_facts, chart_data, available, reason}`.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_autonomy_summary", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "List all top-level Combined Nomenclature chapters (2-digit codes).\n\nBootstraps browsing the nomenclature top-down; drill into a chapter with\n`get_subtree`.", "inputSchema": { "additionalProperties": false, "properties": { "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" } }, "type": "object" }, "name": "get_chapters", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Herfindahl-Hirschman Index (HHI) of trade concentration across\npartners or member states, per period (0 = perfectly spread, 10000 = one\nentity holds the whole market), plus the top-8-by-value share breakdown\n(rest bundled as 'Others'). Higher HHI = more dependent on a handful of\ncounterparties.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "entity_level": { "default": "partner", "description": "Dimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member states? When 'reporter', 'partner_name' is required.", "enum": [ "partner", "reporter" ], "type": "string" }, "partner_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Partner country name (English). Required when entity_level='reporter'." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_concentration", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Partner-concentration (HHI) compared across sub-products: one HHI\nline per sub-product rather than per flow, to see which sub-products\ndrive a parent code's overall concentration.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "n_subcodes": { "default": 8, "description": "Max number of sub-products to plot as separate HHI lines.", "maximum": 50, "minimum": 1, "type": "integer" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_concentration_compare", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Cross-sectional HHI per country for one year -- the choropleth\ncounterpart of get_concentration. 'partner' entity_level = for every EU\nmember state, HHI of its trade across partners; 'reporter' = for every\npartner, HHI of its trade across EU member states (subject to the\nRotterdam/Antwerp entry-point distortion).", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "entity_level": { "default": "partner", "description": "Dimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member states? When 'reporter', 'partner_name' is required.", "enum": [ "partner", "reporter" ], "type": "string" }, "partner_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Partner country name (English). Required when entity_level='reporter'." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" }, "year": { "anyOf": [ { "maximum": 2100, "minimum": 1988, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Year for the (cross-sectional) snapshot. Defaults to the latest full year with data." } }, "required": [ "query" ], "type": "object" }, "name": "get_concentration_map", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Reference data for reporters/partners: selectable EU/Euro-area/member\nstates, named partner presets, predefined reporter/partner groups, and\nper-language country-name translations. Use this to find valid values\nfor the `reporter`, `partner_set`, `partners` and `reporter_members`\nfields used throughout the other tools' `query` argument.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_countries", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Return the period coverage (`data_min`/`data_max`, 'YYYY-MM') actually\ncached for the given product code(s) -- use before picking\n`period_start`/`period_end` so you don't request an empty window.", "inputSchema": { "additionalProperties": false, "properties": { "products": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "CN code(s) to check coverage for. Omit for the overall store range." } }, "type": "object" }, "name": "get_data_range", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Export Propensity = Exports / Production, annual: the share of EU\nproduction that is exported. Not clamped -- values above 100% are\nlegitimate (re-exports, stock drawdown, scope differences). Returns the\nexport-propensity matrix, a sibling/per-code comparison, resolved\nPRODCOM codes and availability notes.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_export_propensity", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Fetch every report section (scope, overview, market structure,\nvolatility, autonomy) for one shared `query` in a single call, instead\nof calling `get_product_profile` / `get_market_summary` /\n`get_market_structure_summary` / `get_volatility_summary` /\n`get_autonomy_summary` separately yourself. Guarantees all five\nsections describe the exact same product/reporter/partner/period\nslice -- five separate calls have no such guarantee, since nothing\nstops `query` from being re-typed slightly differently across them, or\none of the five simply being forgotten.\n\n`query`'s own field defaults (`reporter='European Union'`,\n`partner_set='non-EU countries'`, `period_start='2015-01'`,\n`frequency='quarter'`, `remove_outliers=true`, ...) are exactly the\nsensible defaults for a first-cut report; override any of them for a\ndifferent slice -- e.g. a specific member state, a custom partner\ngroup, a narrower period.\n\nReturns `{\"query\": {...}, \"sections\": {<name>: {narrative_facts,\nchart_data, links, available, reason}, ...}}` for `<name>` in\n`product_profile`, `market_summary`, `market_structure`, `volatility`,\n`autonomy`. `links` maps each `narrative_facts` key to a ready-made\n`https://tradedashboard.eu/...` URL for that same fact -- never\nconstruct one of these yourself; use the one already provided.", "inputSchema": { "additionalProperties": false, "properties": { "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_full_report", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Choropleth-ready aggregates: per-period totals (quantity, value,\nprice) for imports and exports, keyed by GISCO country code on both the\nreporter and partner sides.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_map_data", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Report-section helper (\"Market structure\"): combines, in priority\norder, the intra-EU specialisation snapshot (`get_specialisation`,\nalready map-ready), partner-concentration detail (`get_concentration`,\nkeeping the top-8-by-value share breakdown as `chart_data` alongside the\ncondensed HHI trend) and, when a PRODCOM mapping exists for the product,\nEU production volumes (`get_production_series`). These three are\nindependent data sources bundled only because they all describe \"market\nstructure\" -- the specialisation RSCA is trade-based and has no relation\nto the PRODCOM production figures; treat them as separate findings, not\na single connected story. `most_specialised_reporters` /\n`least_specialised_reporters` are pre-sorted by actual RSCA (highest/\nlowest first respectively) -- use them as-is rather than re-deriving a\nranking. `query.prodcom_code` is passed through untouched -- picking\namong ambiguous PRODCOM mappings is left to the caller, never guessed\nhere.\n\nReturns `{narrative_facts, chart_data, available, reason}`.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_market_structure_summary", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Report-section helper (\"General overview\"): condensed, report-ready\ndigest of how a market has evolved over the chosen window -- one call\ninstead of separately fetching and cross-referencing get_overview +\nget_reporter_detail + get_concentration + get_net_import_reliance\nyourself. Set `query.frequency = \"year\"` for a multi-year evolution\nsummary (recommended over the model's default of \"quarter\").\n\nEvery figure reflects `query` exactly as given -- the same\nproduct/reporter/partner_set/period slice a dashboard user would have\nselected. Nothing here substitutes a different reporter or partner_set\n(e.g. to contrast intra-EU against extra-EU trade): call this again\nwith a different `query.partner_set` for that, the same way a dashboard\nuser would switch the sidebar's selector.\n\nReturns `{narrative_facts, chart_data, available, reason}`.\n`narrative_facts` combines, for the flow selected by `query.partner_set`:\n- Headline trade: first/last/min/max/pct_change for export & import\n value, quantity and price, plus the trade-balance trend.\n- Partner concentration: first/last/pct_change of the value-based HHI\n for imports and exports.\n- Top partners *and* top EU reporters by value: each one's\n first/last/pct_change -- i.e. who is gaining or losing share.\n- Net import reliance: first/last/pct_change of the annual NIR % for\n `query`'s own `reporter`/`partner_set` (only `frequency` is normalised\n to \"year\", since NIR is structurally annual and the upstream API\n always returns it that way regardless); omitted if the product has no\n PRODCOM mapping.\n`chart_data` carries the full-fidelity headline trade and top-partner/\ntop-reporter series for charting.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_market_summary", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Net Import Reliance (NIR) = (Imports - Exports) / Apparent\nconsumption, annual, joining PRODCOM production with Comext trade. E.g.\n40% means 40% of EU consumption is met by imports; negative means the EU\nis a net exporter. Returns the NIR % series, its supply/disposition\ncomponents, sibling-category/per-code comparisons, the resolved PRODCOM\ncodes and availability notes (CN-to-PRODCOM mapping is not always 1:1;\nsee the `self.notes` / `unavailability_type` fields in the response). Use\n`query.prodcom_code` to pin a specific mapping.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_net_import_reliance", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Headline figures: total import/export quantities, values and\nweighted-average prices per period, the trade balance, and a top-partner\nbreakdown. The best first call for any new product/reporter slice.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_overview", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Per-partner import/export breakdown. For each flow, the top-N trading\npartners ranked both by quantity and by value (so you can compare\nvolume-based vs. value-based rankings), each with its own quantity,\nvalue and price time series, plus an optional 'Other' bucket.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_partner_detail", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Before/after trade-pattern shift around a split point\n(`query.midpoint`): for each entity, compares average quantity and price\nbefore vs. after, and returns scatter points (quantity-change % vs.\nprice-change %) with quadrant labels -- top-right = demand-driven growth,\ntop-left = supply constraint/monopoly risk, bottom-right =\ndumping/oversupply risk, bottom-left = market contraction. Suggested\nworkflow: spot a shock date via get_supply_shocks / get_price_shocks\nfirst, then set it as `query.midpoint` here.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_pattern_shift", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Detect sudden price regime shifts (\"rapid price changes\"), accounting\nfor each flow's usual volatility so naturally volatile flows aren't\nover-flagged. Returns ranked shock events per flow with timeline phases\n(price spike/drop, volatile trade, return to baseline, ...), magnitude\nand series.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "cumulative_share": { "default": 0.8, "description": "Only the top trading partners that together account for this share of total trade are analysed.", "maximum": 1, "minimum": 0.3, "type": "number" }, "entity_level": { "default": "partner", "description": "Dimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member states? When 'reporter', 'partner_name' is required.", "enum": [ "partner", "reporter" ], "type": "string" }, "lookback_years": { "default": 2, "description": "Years before the shock used to establish the coefficient-of-variation baseline.", "maximum": 5, "minimum": 1, "type": "integer" }, "max_shocks_per_pair": { "default": 1, "description": "Number of non-overlapping shocks kept per trading partner.", "maximum": 5, "minimum": 1, "type": "integer" }, "min_abnormality": { "default": 2, "description": "Minimum unusualness of the price shift vs. baseline volatility (CV multiples). Lower = more (weaker) shocks flagged.", "maximum": 10, "minimum": 0.5, "type": "number" }, "partner_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Partner country name (English). Required when entity_level='reporter'." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_price_shocks", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Sub-product comparison: for a single parent CN code, expands into its\nchildren (or, for a multi-code request, compares the entered codes\ndirectly) and returns per-subcode quantity/value/price series for both\nflows -- so each sub-product plots as its own line instead of being\naggregated away. A leaf code with no children returns `leaf: true`.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_product_compare", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Report-section helper (\"Scope & definitions\"): the resolved product\ncode + label, a one-sentence caveat when the code bundles several\nsub-products (`has_subcodes`), the data-coverage window actually cached\nfor it, and whether it has a usable PRODCOM mapping (gating the\nautonomy/vulnerability section). Deliberately thin -- no full CN\nhierarchy breadcrumb or sibling enumeration.\n\nReturns `{narrative_facts, chart_data, available, reason}` -- see\n`get_market_summary` for the shape this convention follows across all of\nthis bridge's report-section helpers.", "inputSchema": { "additionalProperties": false, "properties": { "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_product_profile", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "How concentrated production of a product is across all DS-059358\nreporting countries (PRODCOM; EU member states plus EFTA/candidate/other\nreporters -- not only the EU-27). HHI of PRODVAL across countries over\ntime, plus each country's production share. Suppressed/absent country\nfigures come back as null, not zero. Use `query.prodcom_code` to pin a\nspecific PRODCOM mapping.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_production_concentration", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "EU27 and per-country PRODCOM production series: EU quantity, EU\nproduction unit value, and the same two per reporting country (all\nDS-059358 reporters, not just EU-27, since production data carries no\ntrade columns). Country-level figures are heavily confidentiality\n-suppressed; suppressed/absent values come back as null, not zero. Use\n`query.prodcom_code` to pin a specific PRODCOM mapping when a CN code\nmaps to several.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_production_series", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Every EU reporter ranked by value for one year -- the country-view\ncounterpart of `get_reporter_detail`. Returns a single-year snapshot\n(every real EU member state's quantity, value and price per flow,\nranked by value) plus a benchmark price time series: the weighted\naverage across whichever reporters `query.reporter` resolves to (the\nwhole EU by default, or narrower when `query.reporter` is itself an\naggregate -- euro area, a named group, or an ad hoc custom group), the\ncross-reporter min/max envelope, and the selected reporter's own line\nwhen `query.reporter` is a single real member state. Use it to answer\n\"how does this country -- or reporter group -- compare to every other\nreporter?\".", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" }, "year": { "anyOf": [ { "maximum": 2100, "minimum": 1988, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Year for the (cross-sectional) snapshot. Defaults to the latest full year with data." } }, "required": [ "query" ], "type": "object" }, "name": "get_reporter_benchmark", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Per-EU-member-state import/export breakdown -- the reporter-side\ncounterpart of `get_partner_detail`. Top-N member states (by quantity and\nby value) with their quantity, value and price series. Aggregate\nreporters (EU, Euro area, groups) are excluded from the ranking.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_reporter_detail", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Intra-EU revealed symmetric comparative advantage (RSCA) per member\nstate -- a Balassa index benchmarked against the EU instead of the\nworld. Runs -1 (under-specialised) to +1 (strongly specialised), value\n-based and intra-EU only. Treat with caution: intra-EU flows are\ndistorted by the Rotterdam/Antwerp quasi-transit effect.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" }, "year": { "anyOf": [ { "maximum": 2100, "minimum": 1988, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Year for the (cross-sectional) snapshot. Defaults to the latest full year with data." } }, "required": [ "query" ], "type": "object" }, "name": "get_specialisation", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "EU27 sub-contracting intensity: the share of sold production that is\ntoll (sub-contracted) manufacturing rather than own-account output.\nReturns intensity (%) across value/quantity, its component series,\nper-period data-quality status, resolved PRODCOM codes and availability\nnotes. The own/sub split only exists from 2021 onward.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_subcontracting", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Per-country sub-contracting intensity (PRODCOM): for each reporting\ncountry, the share of its sold production that is toll manufacturing --\nwhich countries act as processing hubs vs. autonomous producers. Spans\nall DS-059358 reporters that report the own/sub split; others simply\ndon't appear. Country cells are heavily confidentiality-suppressed\n(null, not zero, when absent).", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_subcontracting_members", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Return the Combined Nomenclature sub-tree rooted at `code` (its\nchildren, and their children, ...), each with a `code` and a `text`\ndescription. Use this to see whether a heading you're about to use (e.g.\nas `query.product` elsewhere) is actually a clean match, or bundles\nseveral distinct sub-products together.", "inputSchema": { "additionalProperties": false, "properties": { "code": { "description": "Combined Nomenclature code to expand, e.g. '7010'.", "type": "string" }, "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "name": "get_subtree", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Detect abnormal collapses in trade volumes (\"sudden volume changes\").\nFlags periods where a partner/product pair's volume drops well below its\nhistorical average (>2 sigma by default). Returns ranked shock events\nper flow, each with timeline phases (baseline, decline, disruption,\nrecovery, ...), magnitude, abnormality score and underlying series.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "cumulative_share": { "default": 0.8, "description": "Only the top trading partners that together account for this share of total trade are analysed.", "maximum": 1, "minimum": 0.3, "type": "number" }, "entity_level": { "default": "partner", "description": "Dimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member states? When 'reporter', 'partner_name' is required.", "enum": [ "partner", "reporter" ], "type": "string" }, "max_tolerated_gap": { "default": 2, "description": "Consecutive quiet periods allowed within an otherwise stable trading relationship.", "maximum": 6, "minimum": 1, "type": "integer" }, "min_abnormality": { "default": 2, "description": "Minimum statistical abnormality of the volume crash, in sigma. Lower = more (weaker) shocks flagged.", "maximum": 10, "minimum": 0.1, "type": "number" }, "min_active_years": { "default": 2, "description": "Consecutive years of regular trade required before a collapse can be flagged.", "maximum": 5, "minimum": 1, "type": "integer" }, "partner_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Partner country name (English). Required when entity_level='reporter'." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" }, "relative_threshold": { "default": 0.1, "description": "Minimum drop relative to peak volume to count as a collapse (0.10 = 10% drop).", "maximum": 0.95, "minimum": 0.01, "type": "number" } }, "required": [ "query" ], "type": "object" }, "name": "get_supply_shocks", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Just the ordered list of top entities for a slice -- no time series.\nA lightweight helper for populating entity pickers or quickly checking\nwho the top partners/reporters are without pulling full series.", "inputSchema": { "additionalProperties": false, "properties": { "entity_level": { "default": "partner", "description": "Dimension to rank: 'partner' (trading partners) or 'reporter' (EU member states).", "enum": [ "partner", "reporter" ], "type": "string" }, "flow": { "default": "Imports", "description": "Trade flow to use.", "enum": [ "Imports", "Exports" ], "type": "string" }, "n": { "anyOf": [ { "maximum": 200, "minimum": 1, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of top entities to return. Defaults to query.n_top when omitted." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_top_entities", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Trade Intensity (TI) = (Imports + Exports) / (Imports + Production),\nannual. Near 1 = highly trade-exposed sector; near 0 = predominantly\ndomestic. Used in the Commission's CEEAG methodology for carbon-leakage\n/ State-aid eligibility. Returns the TI series, its components,\nsibling-category/per-code comparisons, resolved PRODCOM codes and\navailability notes.", "inputSchema": { "additionalProperties": false, "properties": { "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_trade_intensity", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Coefficient-of-variation (CV = stdev / mean) volatility per\npartner/reporter x product pair, over inactive-period-excluded history.\nHigher CV = the flow swings more relative to its typical level. Returns\nper-entity CV bars (with drill-down series) and, unless\ninclude_heatmap=false, an entity x sub-product CV heatmap.", "inputSchema": { "additionalProperties": false, "properties": { "combos": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Comma-separated flow x indicator keys to compute at once: imp-qty, imp-price, exp-qty, exp-price. When set, overrides flow/indicator and returns a dict keyed by combo." }, "compact": { "default": false, "description": "If true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, mean, pct_change) instead of returning every data point. Leave false for full-fidelity series (e.g. to actually plot a chart); set true when you just need the headline trend and want to save context.", "type": "boolean" }, "entity_level": { "default": "partner", "description": "Dimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member states? When 'reporter', 'partner_name' is required.", "enum": [ "partner", "reporter" ], "type": "string" }, "flow": { "default": "Imports", "description": "Trade flow to use.", "enum": [ "Imports", "Exports" ], "type": "string" }, "include_heatmap": { "default": true, "description": "Whether to compute the entity x sub-product CV heatmap (false is faster, bar chart only).", "type": "boolean" }, "indicator": { "default": "quantity", "description": "Measure for single-grid mode (ignored when combos is set).", "enum": [ "quantity", "price" ], "type": "string" }, "n_top_entities": { "default": 15, "description": "Number of top entities to include in the volatility bar chart.", "maximum": 100, "minimum": 1, "type": "integer" }, "n_top_products": { "default": 10, "description": "Max number of sub-products in the entity x product heatmap.", "maximum": 50, "minimum": 1, "type": "integer" }, "partner_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Partner country name (English). Required when entity_level='reporter'." }, "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_volatility", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Report-section helper (\"Volatility & shocks\"): the entities analysed\nare picked by `get_volatility` (ranks by trade volume, reports each\none's CV) and by `get_price_shocks`/`get_supply_shocks` at default\nparameters (both already scoped to top-value partners via\n`cumulative_share=0.8`) -- never re-picked from the shocks themselves.\nRetries shock detection once with loosened thresholds before concluding\n\"no shocks\"; an empty result is itself a reportable finding, not a gap.\nWhen shocks are found, the top events by abnormality and their series\nare the section's findings; when none are found (even after the retry),\nstability is the finding. `get_pattern_shift` is intentionally not part\nof this bundle -- its before/after quadrant framing is too easily\nmisread; call it directly if you specifically need it.\n\nReturns `{narrative_facts, chart_data, available, reason}`.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "The product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; only `product` is required, everything else has a sensible default.", "properties": { "frequency": { "default": "quarter", "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.", "type": "string" }, "include_other": { "default": true, "description": "Bundle entities outside the top-N into a single 'Other' bucket.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response (en, de, fr, es, it, ro).", "type": "string" }, "midpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Split point 'YYYY-MM' for the Pattern Shifts tab: the window is cut in two here and the before/after change per entity is reported. Defaults to the middle of the period when omitted." }, "n_top": { "default": 7, "description": "Number of top entities (by volume/value) to break out individually in charts.", "type": "integer" }, "partner_set": { "default": "non-EU countries", "description": "Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.", "type": "string" }, "partners": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit partner-country list that overrides 'partner_set' when present." }, "period_end": { "description": "Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.", "type": "string" }, "period_start": { "default": "2015-01", "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.", "type": "string" }, "prodcom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Specific PRODCOM dataset code to pin for the Net Import Reliance and Trade Intensity tabs, when a single CN code maps to several. Ignored elsewhere." }, "product": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Pass a list to aggregate several codes: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate.", "examples": [ "3801", [ "0901", "0902" ], "TOTAL" ] }, "remove_outliers": { "default": true, "description": "Drop extreme unit-price outliers before computing weighted-average prices.", "type": "boolean" }, "reporter": { "default": "European Union", "description": "Declaring entity: an EU member state, an EU candidate country, Northern Ireland ('XI'), or one of the three aggregate presets ('European Union', 'Euro area', 'EU candidate countries'), or a predefined reporter group name.", "type": "string" }, "reporter_members": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Explicit member countries for a custom reporter group. Each entry must be an EU member state, EU candidate country, or Northern Ireland. When more than one member is supplied the frame is aggregated into a synthetic group named after 'reporter'." } }, "required": [ "product" ], "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "get_volatility_summary", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Read this first for an in-depth report. Returns the long-report\nworkflow: which of the 35+ tools to combine per angle (partners,\nconcentration, volatility & shocks, autonomy), the dashboard menu/tab\nstructure for pointing readers at views, and the methodological notes\nneeded to interpret and cite figures correctly. Call this before\nguessing at tool use.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "guidelines_for_a_long_report", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Read this first for a quick report. Returns the short-report\nworkflow: resolve a product code, then call `get_full_report` for the\nfive most important report sections in one shot -- enough for a quick,\nsimple report. Also covers access, the shared `query` object and\nthe `compact` option.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "guidelines_for_a_short_report", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Resolve a free-text query or CN code(s) into validated product\ncode(s) with descriptions -- the recommended first step before using\na code as `product` in any other tool's `query`. Saves the search ->\nvalidate -> (optional) subtree round-trip: a bare keyword runs a search,\na single code (or comma-separated list) is validated and described\ndirectly.\n\nTip: Comext/CN nomenclature is frequently coarser than a colloquial\nproduct name (e.g. there is no code for \"glass jars\" alone -- only\nheading 7010, which bundles jars with bottles, flasks and closures).\nCheck `has_subcodes` and, if useful, set `include_children=true` to see\nwhether a finer sub-code is actually a better match before committing to\none code for a whole report.", "inputSchema": { "additionalProperties": false, "properties": { "include_children": { "default": false, "description": "When resolving a single direct code, also fetch its immediate CN subtree so finer-grained alternatives are visible in one call.", "type": "boolean" }, "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" }, "limit": { "default": 20, "description": "Max keyword-search results (ignored for direct code validation).", "maximum": 50, "minimum": 1, "type": "integer" }, "query": { "description": "Free-text keyword (e.g. 'glass jars') OR one or more CN codes, comma-separated (e.g. '7010' or '7010, 7013').", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "resolve_product_code", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Keyword/code search over the Combined Nomenclature (or PRODCOM).\n\nReturns ranked `{code, label, path}` candidates. Prefer\n`resolve_product_code` for a one-call keyword-or-code helper; use this\ndirectly if you specifically want the raw ranked candidate list.", "inputSchema": { "additionalProperties": false, "properties": { "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" }, "limit": { "default": 20, "description": "Max number of candidates to return.", "maximum": 100, "minimum": 1, "type": "integer" }, "q": { "description": "Keyword or code fragment to search for.", "maxLength": 100, "type": "string" }, "source": { "default": "cn", "description": "Nomenclature to search. A dotted PRODCOM code (e.g. '23.13') is auto-detected either way and reverse-mapped to CN codes.", "enum": [ "cn", "prodcom" ], "type": "string" } }, "required": [ "q" ], "type": "object" }, "name": "search_codes", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Validate and describe one or more Combined Nomenclature codes.\n\nFor a single code, returns the full hierarchy of description levels\n(`levels`), the resolved `product_name`, and `has_subcodes`. For a\ncomma-separated list, returns `{\"results\": [...]}` with one entry per\ncode (each either a success dict or an `{\"code\", \"error\"}` pair).", "inputSchema": { "additionalProperties": false, "properties": { "code": { "description": "One CN code, or a comma-separated list of up to 50 codes (e.g. '73030010, 73030090'). The literal 'TOTAL' is also accepted.", "type": "string" }, "lang": { "default": "en", "description": "Language for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "name": "validate_code", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2918b6a5f80fe6d54117f90680972e9435e543bc335fd6093b2c3780e91ee7c0 | sha256sum