Skip to main content
Glama

Get Reporter Detail

get_reporter_detail
Read-onlyIdempotent

Per-EU-Member-State import/export breakdown -- the reporter-side counterpart of get_partner_detail. Top-N Member States (by quantity and by value) with their quantity, value and price series. Aggregate reporters (EU, Euro area, groups) are excluded from the ranking.

Input Schema

NameRequiredDescriptionDefault
queryYesThe customs-code/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (customs_code, baskets, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; exactly one of `customs_code` and `baskets` is required, everything else has a sensible default.
compactNoIf 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.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changed
    • addedInput schema / properties / query / additionalProperties
      Added value: +false
    • changedInput schema / properties / query / description
      Previous value: -"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."New value: +"The customs-code/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (customs_code, baskets, reporter, partner_set, period_start, period_end, frequency, n_top, ...) for details; exactly one of `customs_code` and `baskets` is required, everything else has a sensible default."
    • addedInput schema / properties / query / properties / baskets
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "A nonempty tuple of pieces summed into one displayed line.",
      +        "properties": {
      +          "label": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "The basket's display label; default: the pieces' codes joined with '+'."
      +          },
      +          "pieces": {
      +            "description": "The pieces summed into this basket.",
      +            "items": {
      +              "additionalProperties": false,
      +              "description": "Every declaration under one code in one optional month window.",
      +              "properties": {
      +                "customs_code": {
      +                  "description": "The customs code: 2/4/6/8 digits, 'TOTAL', or a residual spelling (850440XX, 85SSS999, 85SSS).",
      +                  "type": "string"
      +                },
      +                "from_month": {
      +                  "anyOf": [
      +                    {
      +                      "description": "A calendar month, 'YYYY-MM'.",
      +                      "pattern": "\\d{4}-\\d{2}",
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null,
      +                  "description": "Inclusive first month of the window, ISO 'YYYY-MM'; null = the request's period_start."
      +                },
      +                "to_month": {
      +                  "anyOf": [
      +                    {
      +                      "description": "A calendar month, 'YYYY-MM'.",
      +                      "pattern": "\\d{4}-\\d{2}",
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null,
      +                  "description": "Inclusive last month of the window, ISO 'YYYY-MM'; null = the request's period_end."
      +                }
      +              },
      +              "required": [
      +                "customs_code"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 50,
      +            "minItems": 1,
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "pieces"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 50,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The explicit basket form of the customs-code selection: a list of baskets, each a list of (customs_code, optional month window) pieces summed into one displayed line. Use it to clip a code to specific months or to chain successor codes (e.g. [{pieces: [{customs_code: '8524', to_month: '2006-12'}, {customs_code: '85241100', from_month: '2007-01'}]}] with a period starting before 2007). Every piece must meet the requested period. Exactly one of 'customs_code' and 'baskets' must be given."
      +}
    • addedInput schema / properties / query / properties / customs_code
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A canonical customs code, TOTAL, or a supported residual spelling.",
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "description": "A canonical customs code, TOTAL, or a supported residual spelling.",
      +        "type": "string"
      +      },
      +      "maxItems": 50,
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Combined Nomenclature customs code(s), 2–8 digits, or the literal 'TOTAL' meta-aggregate (all products combined). Residual customs codes are requestable too (e.g. 850440XX, 85SSS999, 85SSS); see https://tradedashboard.eu/faq-en.html#customscode for details. Pass a list to compare codes side by side, or to aggregate them in views that fold several codes into one basket: their volumes are summed and prices volume-weighted across every tab — except the Cross-section views, which keep each code separate. Exactly one of 'customs_code' and 'baskets' must be given.",
      +  "examples": [
      +    "3801",
      +    [
      +      "0901",
      +      "0902"
      +    ],
      +    "TOTAL",
      +    "850440XX",
      +    "85SSS"
      +  ]
      +}
    • addedInput schema / properties / query / properties / frequency / enum
      Added value: +[
      +  "month",
      +  "quarter",
      +  "year"
      +]
    • addedInput schema / properties / query / properties / group_reporters
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "maxItems": 300,
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Explicit reporters for a custom reporter group. Each entry must be an EU Member State, EU candidate country, or Northern Ireland. When more than one is supplied the frame is aggregated into a synthetic group named after 'reporter'."
      +}
    • addedInput schema / properties / query / properties / include_residuals
      Added value: +{
      +  "default": true,
      +  "description": "Include the residual customs-code layer: residual rows in the breakdown views (subcode-compare, concentration-compare, volatility heatmap), the residual share in the response header and the related notes. False hides all of it; non-residual figures are unaffected.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / query / properties / lang / description
      Previous value: -"Language for translated labels in the response (en, de, fr, es, it, ro)."New value: +"Language for translated labels in the response: one of the listed ones (the languages the metadata exists in); any other is refused."
    • addedInput schema / properties / query / properties / lang / enum
      Added value: +[
      +  "bg",
      +  "cs",
      +  "da",
      +  "de",
      +  "el",
      +  "en",
      +  "es",
      +  "et",
      +  "fi",
      +  "fr",
      +  "ga",
      +  "hr",
      +  "hu",
      +  "it",
      +  "lt",
      +  "lv",
      +  "mt",
      +  "nl",
      +  "pl",
      +  "pt",
      +  "ro",
      +  "sk",
      +  "sl",
      +  "sv"
      +]
    • removedInput schema / properties / query / properties / midpoint
      Removed value: -{
      -  "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."
      -}
    • addedInput schema / properties / query / properties / n_top / maximum
      Added value: +100
    • addedInput schema / properties / query / properties / n_top / minimum
      Added value: +1
    • addedInput schema / properties / query / properties / partner_set / maxLength
      Added value: +120
    • changedInput schema / properties / query / properties / partners / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "maxLength": 120,
      +      "type": "string"
      +    },
      +    "maxItems": 300,
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / query / properties / period_end / pattern
      Added value: +"\\d{4}-\\d{2}"
    • changedInput schema / properties / query / properties / period_start / default
      Previous value: -"2015-01"New value: +{
      +  "month": 1,
      +  "year": 2015
      +}
    • addedInput schema / properties / query / properties / period_start / pattern
      Added value: +"\\d{4}-\\d{2}"
    • removedInput schema / properties / query / properties / prodcom_code
      Removed value: -{
      -  "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."
      -}
    • removedInput schema / properties / query / properties / product
      Removed value: -{
      -  "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"
      -  ]
      -}
    • changedInput schema / properties / query / properties / reporter / description
      Previous value: -"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."New value: +"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."
    • addedInput schema / properties / query / properties / reporter / maxLength
      Added value: +120
    • removedInput schema / properties / query / properties / reporter_members
      Removed value: -{
      -  "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'."
      -}
    • removedInput schema / properties / query / required
      Removed value: -[
      -  "product"
      -]
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedOutput schema / properties
      Added value: +{
      +  "result": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": false,
      +        "description": "POST /api/descriptive/partner-detail and /reporter-detail — the top-N\nentity panels, ranked by quantity and by value.  ``custom_selection``\nmarks an explicit partner list (partner-detail only).",
      +        "properties": {
      +          "custom_selection": {
      +            "description": "True when the partners come from an explicit list rather than a preset (partner-detail only).",
      +            "type": "boolean"
      +          },
      +          "entities": {
      +            "additionalProperties": false,
      +            "description": "The top-N partner (or Member-State) panels, per flow, ranked by quantity and by value.",
      +            "properties": {
      +              "exports": {
      +                "additionalProperties": false,
      +                "description": "The export panel, ranked by quantity.",
      +                "properties": {
      +                  "columns": {
      +                    "description": "The column order (the entity/sub-code ranking) the triplet fields are keyed by.",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "descriptions": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Subcode-compare only: customs-code column -> its CN label."
      +                  },
      +                  "periods": {
      +                    "description": "The block's period axis (first day of each period); every array in this block is parallel to it.",
      +                    "items": {
      +                      "format": "date",
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "primary": {
      +                    "additionalProperties": false,
      +                    "description": "The net-mass quantity / value / price view.",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned unit value series (value per quantity unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned quantity series (trade: net mass in tonnes; production: the PRODCOM unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "value": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned value series (EUR); null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "supplementary": {
      +                    "additionalProperties": false,
      +                    "description": "The supplementary-unit view (empty when no usable supplementary quantities survive).",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-unit price series; null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-quantity series; null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "exports_by_value": {
      +                "additionalProperties": false,
      +                "description": "The export panel, ranked by value.",
      +                "properties": {
      +                  "columns": {
      +                    "description": "The column order (the entity/sub-code ranking) the triplet fields are keyed by.",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "descriptions": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Subcode-compare only: customs-code column -> its CN label."
      +                  },
      +                  "periods": {
      +                    "description": "The block's period axis (first day of each period); every array in this block is parallel to it.",
      +                    "items": {
      +                      "format": "date",
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "primary": {
      +                    "additionalProperties": false,
      +                    "description": "The net-mass quantity / value / price view.",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned unit value series (value per quantity unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned quantity series (trade: net mass in tonnes; production: the PRODCOM unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "value": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned value series (EUR); null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "supplementary": {
      +                    "additionalProperties": false,
      +                    "description": "The supplementary-unit view (empty when no usable supplementary quantities survive).",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-unit price series; null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-quantity series; null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "imports": {
      +                "additionalProperties": false,
      +                "description": "The import panel, ranked by quantity.",
      +                "properties": {
      +                  "columns": {
      +                    "description": "The column order (the entity/sub-code ranking) the triplet fields are keyed by.",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "descriptions": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Subcode-compare only: customs-code column -> its CN label."
      +                  },
      +                  "periods": {
      +                    "description": "The block's period axis (first day of each period); every array in this block is parallel to it.",
      +                    "items": {
      +                      "format": "date",
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "primary": {
      +                    "additionalProperties": false,
      +                    "description": "The net-mass quantity / value / price view.",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned unit value series (value per quantity unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned quantity series (trade: net mass in tonnes; production: the PRODCOM unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "value": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned value series (EUR); null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "supplementary": {
      +                    "additionalProperties": false,
      +                    "description": "The supplementary-unit view (empty when no usable supplementary quantities survive).",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-unit price series; null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-quantity series; null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "imports_by_value": {
      +                "additionalProperties": false,
      +                "description": "The import panel, ranked by value.",
      +                "properties": {
      +                  "columns": {
      +                    "description": "The column order (the entity/sub-code ranking) the triplet fields are keyed by.",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "descriptions": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Subcode-compare only: customs-code column -> its CN label."
      +                  },
      +                  "periods": {
      +                    "description": "The block's period axis (first day of each period); every array in this block is parallel to it.",
      +                    "items": {
      +                      "format": "date",
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "primary": {
      +                    "additionalProperties": false,
      +                    "description": "The net-mass quantity / value / price view.",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned unit value series (value per quantity unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned quantity series (trade: net mass in tonnes; production: the PRODCOM unit); null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "value": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned value series (EUR); null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "supplementary": {
      +                    "additionalProperties": false,
      +                    "description": "The supplementary-unit view (empty when no usable supplementary quantities survive).",
      +                    "properties": {
      +                      "price": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-unit price series; null = no figure}.",
      +                        "type": "object"
      +                      },
      +                      "quantity": {
      +                        "additionalProperties": {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        },
      +                        "description": "{column: period-aligned supplementary-quantity series; null = no figure}.",
      +                        "type": "object"
      +                      }
      +                    },
      +                    "type": "object"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "imports",
      +              "exports",
      +              "imports_by_value",
      +              "exports_by_value"
      +            ],
      +            "type": "object"
      +          },
      +          "header": {
      +            "additionalProperties": false,
      +            "description": "The request's metadata: customs code, labels, units, residual share, selection and notes.",
      +            "properties": {
      +              "baskets": {
      +                "description": "How each requested basket was read: its label and its pieces, each with the definitions its window meets.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "description": "How one requested basket was read: its label and its pieces.",
      +                  "properties": {
      +                    "label": {
      +                      "description": "The basket's display label (the caller's label, or the pieces' codes joined).",
      +                      "type": "string"
      +                    },
      +                    "pieces": {
      +                      "description": "The basket's pieces, in request order.",
      +                      "items": {
      +                        "additionalProperties": false,
      +                        "description": "How one requested piece was read: the code, the window it was asked\nfor (a null bound = the request's), and the recorded definitions that\nwindow meets -- facts, no interpretation.",
      +                        "properties": {
      +                          "customs_code": {
      +                            "description": "The piece's customs code.",
      +                            "type": "string"
      +                          },
      +                          "definitions": {
      +                            "description": "The recorded definitions of the code whose window meets the piece's, oldest first: what the digits meant over the window.",
      +                            "items": {
      +                              "additionalProperties": false,
      +                              "description": "One recorded definition of a customs code: a fact of the\nclassification metadata, with its window and its own label.",
      +                              "properties": {
      +                                "customs_code": {
      +                                  "description": "The customs code the segment defines.",
      +                                  "type": "string"
      +                                },
      +                                "kind": {
      +                                  "description": "The classification row's kind ('cn', 'residual_xx', 'letter_coded').",
      +                                  "enum": [
      +                                    "cn",
      +                                    "residual_xx",
      +                                    "letter_coded",
      +                                    "chapter_00",
      +                                    "other"
      +                                  ],
      +                                  "type": "string"
      +                                },
      +                                "label": {
      +                                  "description": "The segment's own label (the definition in force during its window), in the requested language when available.",
      +                                  "type": "string"
      +                                },
      +                                "label_lang": {
      +                                  "description": "The label's language (English when the requested one is not recorded for this definition).",
      +                                  "enum": [
      +                                    "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"
      +                                },
      +                                "untranslated": {
      +                                  "anyOf": [
      +                                    {
      +                                      "type": "boolean"
      +                                    },
      +                                    {
      +                                      "type": "null"
      +                                    }
      +                                  ],
      +                                  "default": null,
      +                                  "description": "True when the label fell back to English."
      +                                },
      +                                "valid_from": {
      +                                  "description": "First day of the segment's validity window, ISO date.",
      +                                  "type": "string"
      +                                },
      +                                "valid_to": {
      +                                  "anyOf": [
      +                                    {
      +                                      "type": "string"
      +                                    },
      +                                    {
      +                                      "type": "null"
      +                                    }
      +                                  ],
      +                                  "description": "Last day of the window, ISO date; null for a segment still in force."
      +                                }
      +                              },
      +                              "required": [
      +                                "customs_code",
      +                                "valid_from",
      +                                "valid_to",
      +                                "kind",
      +                                "label",
      +                                "label_lang"
      +                              ],
      +                              "type": "object"
      +                            },
      +                            "type": "array"
      +                          },
      +                          "from_month": {
      +                            "anyOf": [
      +                              {
      +                                "description": "A calendar month, 'YYYY-MM'.",
      +                                "pattern": "\\d{4}-\\d{2}",
      +                                "type": "string"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "The window's first month, ISO 'YYYY-MM'; null = the request's period_start."
      +                          },
      +                          "to_month": {
      +                            "anyOf": [
      +                              {
      +                                "description": "A calendar month, 'YYYY-MM'.",
      +                                "pattern": "\\d{4}-\\d{2}",
      +                                "type": "string"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "The window's last month, ISO 'YYYY-MM'; null = the request's period_end."
      +                          }
      +                        },
      +                        "required": [
      +                          "customs_code",
      +                          "from_month",
      +                          "to_month",
      +                          "definitions"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "type": "array"
      +                    }
      +                  },
      +                  "required": [
      +                    "label",
      +                    "pieces"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "customs_code": {
      +                "description": "The queried customs code(s), as requested (several codes joined).",
      +                "type": "string"
      +              },
      +              "customs_code_label": {
      +                "description": "The customs code's display label.",
      +                "type": "string"
      +              },
      +              "data_provenance": {
      +                "additionalProperties": false,
      +                "description": "Which published data produced the figures: the same selector can return different numbers after a store or classification refresh.",
      +                "properties": {
      +                  "metadata_generation": {
      +                    "anyOf": [
      +                      {
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "The CN classification snapshot's generation; null when none is published."
      +                  },
      +                  "store_generation": {
      +                    "description": "The trade store's completed-build generation.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "store_generation",
      +                  "metadata_generation"
      +                ],
      +                "type": "object"
      +              },
      +              "frequency": {
      +                "description": "The period grain of every series in the payload ('year' for PRODCOM).",
      +                "enum": [
      +                  "month",
      +                  "quarter",
      +                  "year"
      +                ],
      +                "type": "string"
      +              },
      +              "in_eurostat_api": {
      +                "description": "False only for letter codes and reason groups: Eurostat's API rejects them as PRODUCT values, though their trade is inside the API's parent totals. True for digit and XX codes.",
      +                "type": "boolean"
      +              },
      +              "levels": {
      +                "description": "The customs code's CN description hierarchy, chapter first.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "description": "One level of a customs code's description hierarchy, chapter first\n(``ComextNomenclature.get_description_levels``, plus the synthetic\nlevels of residual spellings and the dated levels of former editions).\n\nThe optional flags are sparse on the wire: present when true, absent\notherwise (the shape of the nomenclature layer's raw dicts).",
      +                  "properties": {
      +                    "customs_code": {
      +                      "description": "The level's customs code.",
      +                      "type": "string"
      +                    },
      +                    "is_catch_all": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "True for a catch-all ('other') level."
      +                    },
      +                    "residual": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "True for the synthetic level of a residual spelling."
      +                    },
      +                    "segment": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "True for a historical segment's own definition."
      +                    },
      +                    "siblings": {
      +                      "anyOf": [
      +                        {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "customs_code": {
      +                                "description": "A canonical customs code, TOTAL, or a supported residual spelling.",
      +                                "type": "string"
      +                              },
      +                              "text": {
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "customs_code",
      +                              "text"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "type": "array"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "For a catch-all level, the ordinary siblings it excludes."
      +                    },
      +                    "text": {
      +                      "description": "The level's label, in the requested language.",
      +                      "type": "string"
      +                    },
      +                    "untranslated": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "True when the label fell back to English."
      +                    },
      +                    "window": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "description": "The validity window of one customs-code segment (one definition).",
      +                          "properties": {
      +                            "valid_from": {
      +                              "description": "First day of the window, ISO date.",
      +                              "type": "string"
      +                            },
      +                            "valid_to": {
      +                              "anyOf": [
      +                                {
      +                                  "type": "string"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "description": "Last day of the window, ISO date; null while in force."
      +                            }
      +                          },
      +                          "required": [
      +                            "valid_from",
      +                            "valid_to"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null,
      +                      "description": "For a level read from a dated edition (a former definition, or one of its ancestors as that edition had them): the validity window of the definition shown. Absent for current-edition levels."
      +                    }
      +                  },
      +                  "required": [
      +                    "customs_code",
      +                    "text"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "notes": {
      +                "description": "Structured notes on the selection and on the slice: whatever was combined, removed, nulled or cannot be served.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "description": "A structured coverage note: what the data shows or lacks for this\nslice (whatever was removed, nulled or cannot be served).",
      +                  "properties": {
      +                    "args": {
      +                      "additionalProperties": {
      +                        "type": "string"
      +                      },
      +                      "description": "The note's structured facts (codes, windows, counts, shares).",
      +                      "type": "object"
      +                    },
      +                    "basket_refs": {
      +                      "description": "Indexes of the requested baskets the note concerns; empty when it concerns the whole slice.",
      +                      "items": {
      +                        "type": "integer"
      +                      },
      +                      "type": "array"
      +                    },
      +                    "kind": {
      +                      "description": "Stable identifier of the note's kind, e.g. 'reporter_coverage', 'supp_coverage_gate', 'outliers_nulled'.",
      +                      "enum": [
      +                        "reporter_coverage",
      +                        "total_only_period",
      +                        "unmapped_country_code",
      +                        "no_residuals_stored",
      +                        "outliers_nulled",
      +                        "supp_unit_mixed",
      +                        "supp_coverage_gate",
      +                        "partial_bucket",
      +                        "component_empty",
      +                        "negative_values",
      +                        "cn8_residual_sibling",
      +                        "group_residual_above"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "message": {
      +                      "description": "Fixed English text of the kind; slice-specific facts are in args.",
      +                      "type": "string"
      +                    },
      +                    "severity": {
      +                      "description": "'warning' when the figures are affected, 'info' otherwise.",
      +                      "enum": [
      +                        "info",
      +                        "warning"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "severity",
      +                    "message",
      +                    "basket_refs",
      +                    "args"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "partner_set_label": {
      +                "description": "The partner set's label.",
      +                "type": "string"
      +              },
      +              "quantity_unit": {
      +                "additionalProperties": false,
      +                "description": "The unit of every 'quantity' series: net mass in tonnes.",
      +                "properties": {
      +                  "label": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's display label in the response's language."
      +                  },
      +                  "symbol": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's display symbol (e.g. 't', 'l')."
      +                  },
      +                  "unit_code": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's authority code (e.g. 'T', 'PST', '1000_KWH')."
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reporter_label": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "The reporter's display label; null for views spanning every reporter."
      +              },
      +              "residual_share": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "description": "The residual share of a slice (``Presenter.residual_share``):\n``by_level`` splits it across the level a residual sits directly under\n(``chapter``/``heading``/``subheading``), ``by_kind`` across its kind\n(``xx``/``letter`` -- the latter makes the 2002 letter→XX re-keying\nvisible in long series). One entry per present level/kind only.",
      +                    "properties": {
      +                      "by_kind": {
      +                        "additionalProperties": {
      +                          "additionalProperties": false,
      +                          "description": "One residual-share figure: the part of a total's value (0-1) sitting\nin residual customs codes, plus the mass share when honestly\nmeasurable. Wire counterpart of ``core.computation.comext.residuals.ResidualShareSlice``.",
      +                          "properties": {
      +                            "quantity_share": {
      +                              "anyOf": [
      +                                {
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "default": null,
      +                              "description": "Share of the slice's total net mass (0-1) declared in residual customs codes. Null when net-mass coverage fails the all-or-nothing gate (see quantity_share_note) -- never a partial ratio."
      +                            },
      +                            "quantity_share_note": {
      +                              "anyOf": [
      +                                {
      +                                  "type": "string"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "default": null,
      +                              "description": "Why quantity_share is null, when it is."
      +                            },
      +                            "value_share": {
      +                              "description": "Share of the slice's total value (0-1) declared in residual customs codes.",
      +                              "type": "number"
      +                            }
      +                          },
      +                          "required": [
      +                            "value_share"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "description": "The share split by residual kind (xx/letter) -- makes the 2002 letter→XX re-keying visible in long series.",
      +                        "propertyNames": {
      +                          "enum": [
      +                            "xx",
      +                            "letter"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      "by_level": {
      +                        "additionalProperties": {
      +                          "additionalProperties": false,
      +                          "description": "One residual-share figure: the part of a total's value (0-1) sitting\nin residual customs codes, plus the mass share when honestly\nmeasurable. Wire counterpart of ``core.computation.comext.residuals.ResidualShareSlice``.",
      +                          "properties": {
      +                            "quantity_share": {
      +                              "anyOf": [
      +                                {
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "default": null,
      +                              "description": "Share of the slice's total net mass (0-1) declared in residual customs codes. Null when net-mass coverage fails the all-or-nothing gate (see quantity_share_note) -- never a partial ratio."
      +                            },
      +                            "quantity_share_note": {
      +                              "anyOf": [
      +                                {
      +                                  "type": "string"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "default": null,
      +                              "description": "Why quantity_share is null, when it is."
      +                            },
      +                            "value_share": {
      +                              "description": "Share of the slice's total value (0-1) declared in residual customs codes.",
      +                              "type": "number"
      +                            }
      +                          },
      +                          "required": [
      +                            "value_share"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "description": "The share split by the level the residual sits directly under (chapter/heading/subheading).",
      +                        "propertyNames": {
      +                          "enum": [
      +                            "chapter",
      +                            "heading",
      +                            "subheading",
      +                            "cn8",
      +                            "total"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      "quantity_share": {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null,
      +                        "description": "Share of the slice's total net mass (0-1) declared in residual customs codes. Null when net-mass coverage fails the all-or-nothing gate (see quantity_share_note) -- never a partial ratio."
      +                      },
      +                      "quantity_share_note": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null,
      +                        "description": "Why quantity_share is null, when it is."
      +                      },
      +                      "value_share": {
      +                        "description": "Share of the slice's total value (0-1) declared in residual customs codes.",
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "value_share"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "The part of the slice's total that sits in residual customs codes -- present for single 2/4/6-digit requests only; None for CN8, residual spellings, TOTAL and multi-code requests, and whenever the slice holds no total value."
      +              },
      +              "residual_share_note": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "description": "Why ``residual_share`` is null -- so a missing share never reads as\n\"no residual trade\" (a measured zero is a share of 0.0, never null).",
      +                    "properties": {
      +                      "message": {
      +                        "description": "The reason in English, naming the code where relevant.",
      +                        "type": "string"
      +                      },
      +                      "reason": {
      +                        "description": "Stable identifier of the reason.",
      +                        "enum": [
      +                          "switched_off",
      +                          "multi_code",
      +                          "mixed_codes",
      +                          "pieced_basket",
      +                          "residual_spelling",
      +                          "total",
      +                          "cn8_leaf",
      +                          "no_partners",
      +                          "no_store_data",
      +                          "no_total_trade"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "reason",
      +                      "message"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Why residual_share is null, when it is -- so a missing share never reads as 'no residual trade'. Null whenever residual_share is present."
      +              }
      +            },
      +            "required": [
      +              "customs_code",
      +              "levels",
      +              "customs_code_label",
      +              "frequency",
      +              "reporter_label",
      +              "partner_set_label",
      +              "quantity_unit",
      +              "residual_share",
      +              "residual_share_note",
      +              "in_eurostat_api",
      +              "baskets",
      +              "notes",
      +              "data_provenance"
      +            ],
      +            "type": "object"
      +          },
      +          "supp_unit": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "A quantity/supplementary unit label (``supp_unit`` / ``prodcom_unit`` /\n``quantity_unit`` in response headers).",
      +                "properties": {
      +                  "label": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's display label in the response's language."
      +                  },
      +                  "symbol": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's display symbol (e.g. 't', 'l')."
      +                  },
      +                  "unit_code": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "The unit's authority code (e.g. 'T', 'PST', '1000_KWH')."
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The single supplementary unit the displayed series use, when one survives the coverage gate."
      +          }
      +        },
      +        "required": [
      +          "header",
      +          "custom_selection",
      +          "supp_unit",
      +          "entities"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": {},
      +        "type": "object"
      +      }
      +    ]
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "result"
      +]
  2. Changed9 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "DashboardQuery": {
      -    "description": "Shared request body for every analytical endpoint.\n\nOne product (or a list of products to aggregate), one reporter (or group of\nreporters), a partner set, a period window and a frequency fully describe a\nslice of Eurostat Comext/PRODCOM data. Individual endpoints read extra,\nendpoint-specific options from the query string (e.g. ``entity_level``,\n``flow``, ``partner``) rather than from this body.",
      -    "properties": {
      -      "frequency": {
      -        "default": "quarter",
      -        "description": "Resampling frequency for the series: 'month', 'quarter' or 'year'.",
      -        "title": "Frequency",
      -        "type": "string"
      -      },
      -      "include_other": {
      -        "default": true,
      -        "description": "Bundle entities outside the top-N into a single 'Other' bucket.",
      -        "title": "Include Other",
      -        "type": "boolean"
      -      },
      -      "lang": {
      -        "default": "en",
      -        "description": "Language for translated labels in the response (en, de, fr, es, it, ro).",
      -        "title": "Lang",
      -        "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.",
      -        "title": "Midpoint"
      -      },
      -      "n_top": {
      -        "default": 7,
      -        "description": "Number of top entities (by volume/value) to break out individually in charts.",
      -        "title": "N Top",
      -        "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.",
      -        "title": "Partner Set",
      -        "type": "string"
      -      },
      -      "partners": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Explicit partner-country list that overrides 'partner_set' when present.",
      -        "title": "Partners"
      -      },
      -      "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.",
      -        "title": "Period End",
      -        "type": "string"
      -      },
      -      "period_start": {
      -        "default": "2015-01",
      -        "description": "Inclusive start of the analysis window, ISO month 'YYYY-MM'.",
      -        "title": "Period Start",
      -        "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.",
      -        "title": "Prodcom Code"
      -      },
      -      "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"
      -        ],
      -        "title": "Product"
      -      },
      -      "remove_outliers": {
      -        "default": true,
      -        "description": "Drop extreme unit-price outliers before computing weighted-average prices.",
      -        "title": "Remove Outliers",
      -        "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.",
      -        "title": "Reporter",
      -        "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'.",
      -        "title": "Reporter Members"
      -      }
      -    },
      -    "required": [
      -      "product"
      -    ],
      -    "title": "DashboardQuery",
      -    "type": "object"
      -  }
      -}
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / compact / title
      Removed value: -"Compact"
    • removedInput schema / properties / query / $ref
      Removed value: -"#/$defs/DashboardQuery"
    • addedInput schema / properties / query / properties
      Added value: +{
      +  "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'."
      +  }
      +}
    • addedInput schema / properties / query / required
      Added value: +[
      +  "product"
      +]
    • addedInput schema / properties / query / type
      Added value: +"object"
    • removedInput schema / title
      Removed value: -"get_reporter_detailArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the ranking is top-N by both quantity and value, and aggregate reporters (EU, Euro area, groups) are dropped from the ranking. It says nothing about the underlying request body, period defaults, or the `compact` condensation behavior, which are the traits an agent would most need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the breakdown semantics, then the return content, then the exclusion rule. Every sentence carries information; only a mid-sentence line break slightly hampers readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so the description need not explain return shapes or field formats. For a read-only analytical endpoint, the description covers scope, ranking basis and a key exclusion rule; the main missing piece is explicit guidance on choosing it over `get_partner_detail`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed field descriptions for reporter, customs_code, baskets, period windows and compact, so the schema carries the parameter burden. The description adds no parameter-level meaning beyond mentioning quantity/value/price series and the exclusion of aggregates from n_top ranking. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: a per-Member-State import/export breakdown returning Top-N Member States with quantity, value and price series. It explicitly positions itself as the reporter-side counterpart of `get_partner_detail`, so an agent can distinguish it from that sibling without touching either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sibling reference ('reporter-side counterpart of `get_partner_detail`') implies the routing rule, and the note that aggregate reporters are excluded from the ranking is a useful constraint. However, there is no explicit when-to-use/when-not statement or direct instruction to prefer the partner-side tool for partner breakdowns, leaving the choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources