---
title: "Get Concentration Compare"
method: POST
path: "/api/concentration/concentration-compare"
tags: ["concentration"]
---

# Get Concentration Compare

`POST /api/concentration/concentration-compare`

## Request

- Base URL: `https://tradedashboard.eu` (the document declares no server; this is the origin it was published from)
- URL: `https://tradedashboard.eu/api/concentration/concentration-compare`
- Auth: none declared

Partner-concentration (HHI) compared across sub-products: one HHI line
per sub-product (CN children of a parent code, or the entered codes) for
volume and value across both flows — so you can see which sub-products
drive a parent code's overall concentration. Streams NDJSON.

## Query parameters

- `n_subcodes` integer: Maximum number of sub-products to plot as separate HHI lines.

## Request body

- DashboardQuery: Shared request body for every analytical endpoint. One product (or a list of products to aggregate), one reporter (or group of reporters), a partner set, a period window and a frequency fully describe a slice of Eurostat Comext/PRODCOM data. Individual endpoints read extra, endpoint-specific options from the query string (e.g. ``entity_level``, ``flow``, ``partner``) rather than from this body.
  - `product` union, required: 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.
    - string
    - string[]
  - `reporter` string: 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.
  - `reporter_members` string[], nullable: 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'.
  - `partner_set` string: Named partner preset, e.g. 'non-EU countries', 'EU countries', 'all countries', or a predefined partner group.
  - `partners` string[], nullable: Explicit partner-country list that overrides 'partner_set' when present.
  - `period_start` string: Inclusive start of the analysis window, ISO month 'YYYY-MM'.
  - `period_end` string: Inclusive end of the analysis window, ISO month 'YYYY-MM'. Defaults to roughly three months ago — the latest period Eurostat typically has fully reported.
  - `frequency` string: Resampling frequency for the series: 'month', 'quarter' or 'year'.
  - `n_top` integer: Number of top entities (by volume/value) to break out individually in charts.
  - `include_other` boolean: Bundle entities outside the top-N into a single 'Other' bucket.
  - `remove_outliers` boolean: Drop extreme unit-price outliers before computing weighted-average prices.
  - `midpoint` string, nullable: 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.
  - `lang` string: Language for translated labels in the response (en, de, fr, es, it, ro).
  - `prodcom_code` string, nullable: 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.

## Response `200`

Successful Response

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tradedashboard/apis/eu-trade-explorer.md) · [All operations](https://skmtc.dev/tradedashboard/apis/eu-trade-explorer/llms.txt) · [OpenAPI document](https://skmtc.dev/tradedashboard/apis/eu-trade-explorer/revisions/b9abc715a5c2?raw)
