Developer documentation · v1.0.0
Published trade data, through one API
Query official records with their source, publication and confidence. Build integrations around the same releases used by Tradaro.
https://api.tradaro.com/v1Get started
An organisation owner creates a key in API key settings. Copy it when it is shown, then store it in your server’s secret configuration as TRADARO_API_KEY. Send it in the Authorization header on every request.
curl --fail-with-body --include 'https://api.tradaro.com/v1/reporters' \
--header "Authorization: Bearer $TRADARO_API_KEY"read permits data reads. bulk permits export creation, polling and downloading; a bulk-only key can use exports. Effective permissions also depend on your organisation’s current access. Revocation takes effect on the next request.
Call from your server: browser CORS access is not advertised. Keep keys out of URLs and browser code. Examples below are synthetic fixtures; operator IDs, months and amounts are not promises about live data.
Pagination & quotas
For paginated endpoints, send a limit and follow meta.next_cursor until it is null. Reuse the exact filters, source and endpoint; treat the cursor as opaque. If a publication changes and the cursor is refused, start again from the first page.
integer
- Minimum: 1
- Maximum: 500
- Default: 100
Daily allowances apply per key and reset at midnight UTC. The minute rate limit is shared across requests using that key. Read X-Tradaro-Quota-* and X-RateLimit-* on successful responses; unlimited means no daily cap. Rejected authentication or scope checks do not consume usage.
Source provenance
Read meta.release and X-Tradaro-Release to identify the published snapshot. References also carry their revision when applicable. Row-level source, tier, method, confidence and revision describe the record; aggregates state their derivation explicitly.
Preserve codes as strings, including leading zeroes and residual codes. Null means unavailable or withheld, never zero. Suppressed trade measures stay null. HMRC operator links identify appearances and do not publish shipment values; their value stays null. These endpoints do not return estimates.
Create an asynchronous export
- POST a supported list endpoint, its string filters and
csvorparquetformat. Omitlimitandcursorfrom params. - A
202response gives aLocationto poll. Wait forRetry-After, then GET that status URL until completed, failed or expired. - When completed, GET
download_urlwith the same key. This returns file bytes. VerifyX-Tradaro-Content-SHA256against the downloaded file.
curl --fail-with-body --include --request POST 'https://api.tradaro.com/v1/exports' \
--header "Authorization: Bearer $TRADARO_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"endpoint":"/flows","params":{"commodity":"02071410"},"format":"csv","row_limit":2}'Only the creating key can poll or download, including within the same organisation. CSV includes a UTF-8 BOM and header; Parquet retains nullable native types. Generation stays on one publication and reference snapshot. A completed file remains that snapshot until expiry, while key and entitlement checks still apply.
The creation operation below documents row, byte, concurrency and expiry limits, fixed column order, CSV formula handling and terminal error codes. Status URLs already start with /v1: resolve them against https://api.tradaro.com, without adding /v1 again.
Handle errors
Errors use a JSON envelope with error.code, error.message and error.request_id. Retain the request ID when contacting support. A rate or quota response returns 429; wait for Retry-After. Fix credentials, permissions or filters before retrying other rejected requests.
Send only documented parameters and no body with GET requests. JSON responses are not cacheable. Export downloads return bytes on success and the JSON error envelope on failure.
- Unknown properties are refused.
Operation reference
Paths are relative to the base URL. Open an operation for its complete parameters, schemas, headers, examples and export columns.
Catalogue
Loaded markets, publications and derived release differences.
GET/reportersread scopeList available reporters
Returns only loaded markets visible to this key. No query parameters or body. Empty data is valid. Includes the actual source licence and attribution; adapters for unloaded markets are not advertised.
curl --fail-with-body --include 'https://api.tradaro.com/v1/reporters' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
No path or query parameters.
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"reporter": "GB",
"name": "United Kingdom",
"source": "hmrc_uktradeinfo",
"latest_period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"loaded_at": "2026-09-11T00:00:00.000000Z",
"licence": {
"name": "Open Government Licence v3.0",
"url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"attribution": "Contains public sector information licensed under the Open Government Licence v3.0. HMRC does not endorse Tradaro."
}
}
],
"meta": {
"count": 1
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
reporterNullable(String)nameNullable(String)sourceNullable(String)latest_periodNullable(String)generationNullable(String)loaded_atNullable(String)licenceNullable(String)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
GET/releasesread scopeList published releases
Newest month first. Pagination is bound to the reporter filter. Each row carries its generation, publication times and counts for the five difference kinds; meta has no selected release object. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/releases' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| reporterOptional | query | Optional reporter filter. Without it, returns loaded markets within your entitlement. An entitled but unloaded market gives an empty list. Example: |
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor, bound to the reporter filter. Releases are ordered by descending month. string
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"previous_period": "2026-05",
"history_start": "2026-01",
"summary": {
"new_operator": 0,
"operator_returned": 0,
"new_operator_commodity": 0,
"new_partner_for_commodity": 0,
"commodity_value_change": 0
},
"loaded_at": "2026-09-11T00:00:00.000000Z",
"diff_computed_at": "2026-09-11T00:00:00.000000Z",
"observed_at": "2026-09-11T00:00:00.000000Z"
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)reporterNullable(String)periodNullable(String)previous_periodNullable(String)history_startNullable(String)generationNullable(String)summaryNullable(String)loaded_atNullable(String)diff_computed_atNullable(String)observed_atNullable(String)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
GET/diffsread scopeList release differences
Requires both read scope and the organisation’s differences/alerts entitlement. Reads one immutable release generation, ordered by kind and subject. The five categories compare declared monthly CN8 data; decimal value changes remain strings. meta.total is the selected category count before pagination. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/diffs' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| reporterOptional | query | Reporter market; defaults to GB. Entitlements are enforced before warehouse reads. ISO 3166-1 alpha-2 reporter. GB is the currently published market.
Example: |
| periodOptional | query | Published month; defaults to the latest release. An absent release is not inferred from another month.
Example: |
| kindOptional | query | Restrict to one difference category; omitted returns all five categories.
Example: |
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor. Keep all filters unchanged; null means the end. Do not decode or construct tokens. Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"kind": "new_operator",
"subject": "000123",
"detail": {
"operator_ref": "000123",
"operator_name": "Example Foods Ltd"
},
"tier": null,
"method": "derived",
"confidence": null,
"revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"basis": "monthly-declared-cn8-v1"
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"total": 1
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)reporterNullable(String)periodNullable(String)generationNullable(String)kindNullable(String)subjectNullable(String)detailNullable(String)tierNullable(String)methodNullable(String)confidenceNullable(String)revisionNullable(String)basisNullable(String)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
Operators
Declared trader-directory identities and appearances.
GET/operatorsread scopeSearch declared operators
Case-insensitive name search within published trader-directory appearances. Totals describe distinct published links and months, not company trade values. Up to six source commodity codes accompany each result. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/operators?q=foods' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| qRequired | query | Case-insensitive substring of the operator name. Trimmed length must be 2–80 Unicode characters; control characters are refused. Prefix matches rank first, then months descending, name and source reference. string
Example: |
| reporterOptional | query | Reporter market; defaults to GB. Entitlements are enforced before warehouse reads. ISO 3166-1 alpha-2 reporter. GB is the currently published market.
Example: |
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor. Keep all filters unchanged; null means the end. Do not decode or construct tokens. Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"operator_ref": "000123",
"name": "Example Foods Ltd",
"commodities": 1,
"months": 1,
"first_period": "2026-06",
"last_period": "2026-06",
"flows": [
"import"
],
"lineage": {
"method": "aggregated",
"basis": "published_operator_links",
"counts": {
"commodities": "distinct commodity_scheme and commodity_code",
"months": "distinct published period",
"links": "distinct published link including its lineage and revision"
}
},
"codes": [
{
"commodity_scheme": "CN8",
"commodity_code": "02071410"
}
],
"codes_truncated": false
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)reporterNullable(String)operator_refNullable(String)nameNullable(String)commoditiesNullable(Int64)monthsNullable(Int64)first_periodNullable(String)last_periodNullable(String)flowsNullable(String)codesNullable(String)codes_truncatedNullable(Bool)methodNullable(String)basisNullable(String)countsNullable(String)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
GET/operators/{source}/{ref}read scopeGet a declared operator
Returns latest published directory attributes and aggregate counts over loaded months. The composite identity is source plus ref. Country and address are verbatim directory strings, not verified registry identities. No query parameters or body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/operators/hmrc_uktradeinfo/000123' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| sourceRequired | path | Published source identifier. Other sources return 404.
Example: |
| refRequired | path | Trader-directory source identifier, not a company registration number. Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
Example: |
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"operator_ref": "000123",
"name": "Example Foods Ltd",
"commodities": 1,
"months": 1,
"first_period": "2026-06",
"last_period": "2026-06",
"flows": [
"import"
],
"lineage": {
"method": "aggregated",
"basis": "published_operator_links",
"counts": {
"commodities": "distinct commodity_scheme and commodity_code",
"months": "distinct published period",
"links": "distinct published link including its lineage and revision"
}
},
"address_lines": [
"1 Example Road"
],
"postal_code": "AB1 2CD",
"country": "United Kingdom",
"attributes_period": "2026-06",
"links": 1
},
"meta": {
"count": 1,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
GET/operators/{source}/{ref}/linksread scopeList an operator’s declared links
Distinct published directory appearances ordered by month descending and source dimensions. Value is always null; no company monetary values are inferred. Defaults to the entire published history. from and to must both name published months and be ordered; unlike /flows, this endpoint has no 120-month range cap. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/operators/hmrc_uktradeinfo/000123/links' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| sourceRequired | path | Published source identifier. Other sources return 404.
Example: |
| refRequired | path | Trader-directory source identifier, not a company registration number. Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
Example: |
| fromOptional | query | Inclusive published lower month. For flows, defaults to to; for operator links, defaults to the earliest published month.
|
| toOptional | query | Inclusive published upper month; defaults to the latest release.
|
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor. Keep all filters unchanged; null means the end. Do not decode or construct tokens. Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"reporter_geo_scheme": "iso3166-1:alpha2",
"reporter_geo_code": "GB",
"period": "2026-06",
"flow": "import",
"commodity_scheme": "CN8",
"commodity_code": "02071410",
"currency": "GBP",
"tier": "T1",
"method": "declared",
"confidence": "A",
"revision": 1,
"operator_ref": "000123",
"value": null
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)reporter_geo_schemeNullable(String)reporter_geo_codeNullable(String)periodNullable(String)flowNullable(String)commodity_schemeNullable(String)commodity_codeNullable(String)operator_refNullable(String)valueNullable(Float64)currencyNullable(String)tierNullable(String)methodNullable(String)confidenceNullable(String)revisionNullable(Int64)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
Trade
Published trade cells, commodity references and partner codes.
GET/commodities/{scheme}/{code}read scopeGet a nomenclature entry
Reads the loaded reference independently of trade activity. Supports actual CN8, HS6 and residual HS2 entries; does not synthesize an HS6 from a prefix. period selects effective crosswalk validity and must be published. parent_codes preserve original forms such as 02----. Unknown entries return 404. meta.reference_revision fingerprints the reference version. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/commodities/CN8/02071410' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| schemeRequired | path | Loaded nomenclature scheme; no implicit conversion.
Example: |
| codeRequired | path | Eight digits for CN8, six for HS6, or two digits with optional six hyphens for HS2. Keep leading zeroes. CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
Example: |
| reporterOptional | query | Reporter market; defaults to GB. Entitlements are enforced before warehouse reads. ISO 3166-1 alpha-2 reporter. GB is the currently published market.
Example: |
| periodOptional | query | Published month; defaults to the latest release. An absent release is not inferred from another month.
Example: |
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": {
"source": "hmrc_uktradeinfo",
"commodity_scheme": "CN8",
"commodity_code": "02071410",
"description": "Example frozen poultry cuts",
"parent_codes": [
"020714",
"0207",
"02"
],
"reference_batch": "ref",
"alt_scheme": null,
"alt_code": null,
"hs6": "020714",
"hs6_mappings": [
{
"source": "hmrc_uktradeinfo",
"reference_batch": "ref",
"hs6": "020714",
"hs_version": "2022",
"valid_from": null,
"valid_to": null
}
]
},
"meta": {
"count": 1,
"period": "2026-06",
"reference_revision": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
GET/flowsread scopeList published trade cells
Reads source cells without aggregation, including duplicate components and suppressed nulls. Defaults to CN8 in the latest published month; from defaults to to. Inclusive range is at most 120 calendar months and both endpoints must be published. Only published months inside the range are read. partner alone means ISO alpha-2, resolved separately for each month; partner_scheme plus partner means an exact original code. ISO filtering adds meta.reference_revision. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/flows' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| reporterOptional | query | Reporter market; defaults to GB. Entitlements are enforced before warehouse reads. ISO 3166-1 alpha-2 reporter. GB is the currently published market.
Example: |
| commodityOptional | query | Exact commodity code in commodity_scheme; omit for every loaded code in that scheme. CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
Example: |
| commodity_schemeOptional | query | Scheme to read, even when commodity is omitted. Only actual loaded rows are returned.
|
| partnerOptional | query | Without partner_scheme, an uppercase ISO alpha-2 code matched through the effective geographic reference for each month. With partner_scheme, an exact original source code, including residual codes. Original source code, including residual or aggregate codes. Does not imply an ISO identity.
Example: |
| partner_schemeOptional | query | Requires partner. Selects its original source scheme instead of ISO lookup; use the scheme returned by /partners.
Example: |
| flowOptional | query | Exact trade direction; omitted returns both.
Example: |
| fromOptional | query | Inclusive published lower month. For flows, defaults to to; for operator links, defaults to the earliest published month.
|
| toOptional | query | Inclusive published upper month; defaults to the latest release.
|
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor. Keep all filters unchanged; null means the end. Do not decode or construct tokens. Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"batch_key": "2026-06",
"reporter_geo_scheme": "iso3166-1:alpha2",
"reporter_geo_code": "GB",
"period": "2026-06",
"flow": "import",
"commodity_scheme": "CN8",
"commodity_code": "02071410",
"partner_geo_scheme": "uktradeinfo:CountryId",
"partner_geo_code": "001",
"location_code": "",
"currency": "GBP",
"tier": "T1",
"method": "declared",
"confidence": "A",
"revision": 1,
"component": 1,
"suppressed": false,
"value": 1250.5,
"net_mass_kg": 100,
"supplementary_unit": null
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"from": "2026-06",
"to": "2026-06",
"periods": [
"2026-06"
]
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)batch_keyNullable(String)reporter_geo_schemeNullable(String)reporter_geo_codeNullable(String)periodNullable(String)flowNullable(String)commodity_schemeNullable(String)commodity_codeNullable(String)partner_geo_schemeNullable(String)partner_geo_codeNullable(String)location_codeNullable(String)currencyNullable(String)tierNullable(String)methodNullable(String)confidenceNullable(String)revisionNullable(Int64)componentNullable(Int64)suppressedNullable(Bool)valueNullable(Float64)net_mass_kgNullable(Float64)supplementary_unitNullable(Float64)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
GET/partnersread scopeList published partner codes
Returns partner identities actually present in the selected month across supported commodity schemes. Labels and optional ISO identities come from effective geographic references. Residual or unmapped codes are retained. Ordered by original scheme and code. No request body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/partners' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| reporterOptional | query | Reporter market; defaults to GB. Entitlements are enforced before warehouse reads. ISO 3166-1 alpha-2 reporter. GB is the currently published market.
Example: |
| periodOptional | query | Published month; defaults to the latest release. An absent release is not inferred from another month.
Example: |
| limitOptional | query | Maximum rows per page, 1–500 (default 100). Send one canonical decimal value, without a leading zero; array values are refused. integer
Example: |
| cursorOptional | query | Opaque token from meta.next_cursor. Keep all filters unchanged; null means the end. Do not decode or construct tokens. Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
|
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: Synthetic published fixture
{
"data": [
{
"source": "hmrc_uktradeinfo",
"partner_geo_scheme": "uktradeinfo:CountryId",
"partner_geo_code": "001",
"name": "France",
"iso_alpha2": "FR",
"reference_batch": "ref",
"valid_from": null,
"valid_to": null
}
],
"meta": {
"count": 1,
"limit": 100,
"next_cursor": null,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"period": "2026-06",
"reference_revision": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
CSV / Parquet export columns, in order
CSV represents null as an empty field. Parquet uses the nullable types below. Source codes remain strings.
sourceNullable(String)partner_geo_schemeNullable(String)partner_geo_codeNullable(String)nameNullable(String)iso_alpha2Nullable(String)reference_batchNullable(String)valid_fromNullable(String)valid_toNullable(String)release_sourceNullable(String)release_periodNullable(String)release_generationNullable(String)reference_revisionNullable(String)
Exports
Asynchronous CSV and Parquet files scoped to the creating key.
POST/exportsbulk scopeCreate an asynchronous export
Creates an asynchronous CSV or Parquet export of one supported list endpoint. Requires bulk scope and an effective export allowance; read scope is not additionally required. params is a JSON object of the endpoint’s string filters; omit limit and cursor. No URL query parameters. JSON body is at most 4096 bytes. row_limit defaults to 100000 and is capped by current organisation rights. At most five active exports per organisation, shared with web exports. Data and references are pinned during generation; changes fail the job rather than mix versions. The creating key alone may poll or download; revocation and changed entitlements apply immediately. Jobs expire after 24 hours, with a 30-minute processing deadline. CSV is UTF-8 with BOM, a header and quoted fields; null is empty, booleans are true/false, arrays and objects are JSON text. Potential formula strings receive an apostrophe prefix; Parquet retains raw strings, native nullable numbers/booleans and nulls. Source codes remain text. Fixed columns are listed in each exportable operation’s x-export-columns; each row includes release_source, release_period, release_generation and nullable reference_revision. Files are bounded to 256 MiB; empty results produce a valid file with the fixed schema. Poll according to Retry-After; failed/expired states report error_code.
curl --fail-with-body --include --request POST 'https://api.tradaro.com/v1/exports' \
--header "Authorization: Bearer $TRADARO_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"endpoint":"/flows","params":{"commodity":"02071410"},"format":"csv","row_limit":2}'Parameters
No path or query parameters.
Request body · required
A supported list path, its string filter object, output format and optional row cap.
application/json
Example: Export two published commodity cells
{
"endpoint": "/flows",
"params": {
"commodity": "02071410"
},
"format": "csv",
"row_limit": 2
}Example: Export loaded reporters
{
"endpoint": "/reporters",
"params": {},
"format": "parquet",
"row_limit": 10
}Responses
202Accepted; process asynchronously and poll the Location URL.
application/json
- Unknown properties are refused.
Example: pending
{
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "pending",
"format": "csv",
"endpoint": "/flows",
"cap": 2,
"rows": 0,
"bytes": 0,
"truncated": false,
"created_at": "2026-09-11T00:00:00.000000Z",
"expires_at": "2026-09-12T00:00:00Z",
"finished_at": null,
"error_code": null,
"status_url": "/v1/exports/11111111-1111-4111-8111-111111111111",
"download_url": null
},
"meta": {
"count": 1,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
- Location
Relative URL of the newly created export status resource.
string
- Pattern: "^/v1/exports/[a-f0-9-]{36}$"
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
413Request body exceeds 4096 bytes, or export exceeds its bound.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "payload_too_large",
"message": "The request body is too large.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
415Export creation requires application/json.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "unsupported_media_type",
"message": "Use application/json for this request.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
GET/exports/{id}bulk scopeGet export status
Poll with the creating key. Status is pending, running, completed, failed or expired. A completed response contains download_url. Error details are sanitised in error_code. No query parameters or body.
curl --fail-with-body --include 'https://api.tradaro.com/v1/exports/11111111-1111-4111-8111-111111111111' \
--header "Authorization: Bearer $TRADARO_API_KEY"Parameters
| Parameter | Location | Description and constraints |
|---|---|---|
| idRequired | path | Export UUID returned by creation; only its creating key can access it. string
Example: |
Responses
200Successful response.
application/json
- Unknown properties are refused.
Example: completed
{
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "completed",
"format": "csv",
"endpoint": "/flows",
"cap": 2,
"rows": 2,
"bytes": 2048,
"truncated": true,
"created_at": "2026-09-11T00:00:00.000000Z",
"expires_at": "2026-09-12T00:00:00Z",
"finished_at": "2026-09-11T00:01:00Z",
"error_code": null,
"status_url": "/v1/exports/11111111-1111-4111-8111-111111111111",
"download_url": "/v1/exports/11111111-1111-4111-8111-111111111111/download"
},
"meta": {
"count": 1,
"release": {
"source": "hmrc_uktradeinfo",
"reporter": "GB",
"period": "2026-06",
"generation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
GET/exports/{id}/downloadbulk scopeDownload an export
Download the retained snapshot with its creating key. Requires a completed, unexpired export and current entitlement; otherwise 409 or 403. Another key, including one in the same organisation, receives 404. Returns file bytes, not a JSON envelope or signed URL. X-Tradaro-Content-SHA256 verifies the exact bytes. No query parameters or body.
curl --fail-with-body --dump-header export.headers 'https://api.tradaro.com/v1/exports/11111111-1111-4111-8111-111111111111/download' \
--header "Authorization: Bearer $TRADARO_API_KEY" \
--output export.csvParameters
| Parameter | Location | Description and constraints |
|---|---|---|
| idRequired | path | Export UUID returned by creation; only its creating key can access it. string
Example: |
Responses
200UTF-8 CSV or typed Parquet file, at most 256 MiB. Content-Disposition supplies the filename.
text/csv
string
application/vnd.apache.parquet
File bytes in this media type.
Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- X-Tradaro-Release
Source and selected release month, for example hmrc_uktradeinfo=2026-06. Catalogue lists use the latest month present in this page and return an empty value for an empty page. Data and export responses match meta.release.
string
- Pattern: "^(?:hmrc_uktradeinfo=[1-9][0-9]{3}-(?:0[1-9]|1[0-2]))?$"
- X-Tradaro-Quota-Limit
Daily request allowance for the key; unlimited when the effective offer has no daily cap.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Remaining
Remaining daily requests after this authenticated request, or unlimited. Quotas belong to each key; effective organisation rights are revalidated.
string
- Pattern: "^(?:[0-9]+|unlimited)$"
- X-Tradaro-Quota-Reset
UTC instant at the next daily request-window reset.
- Format: "date-time"
- X-RateLimit-Limit
Maximum authenticated requests per key in a minute.
string
- Value: "60"
- X-RateLimit-Remaining
Requests left in the key’s current minute after this call.
string
- Pattern: "^[0-9]+$"
- X-RateLimit-Reset
UTC instant when the current minute window resets.
- Format: "date-time"
- X-Content-Type-Options
Disables MIME sniffing.
string
- Value: "nosniff"
- Content-Disposition
Attachment filename tradaro-{export UUID}.csv or .parquet.
string
- X-Tradaro-Content-SHA256
SHA-256 of the exact downloaded bytes.
string
- Pattern: "^[a-f0-9]{64}$"
400Invalid parameters or cursor. Unknown query fields, arrays, empty values where disallowed, and GET bodies are refused.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_request",
"message": "The request parameters are invalid.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
401Missing, malformed, unknown or revoked Bearer key.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "invalid_api_key",
"message": "A valid Bearer credential is required.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- WWW-Authenticate
Bearer authentication is required.
string
- Value: "Bearer"
403Effective API rights, required key scope, market entitlement or differences entitlement deny this request.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "scope_denied",
"message": "The API key does not have the required permission.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
404Resource or requested published month not found. Foreign export keys also receive 404.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
409Publication changed, organisation already has five active exports, or export is not downloadable. Restart data pagination after publication_changed.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "publication_changed",
"message": "The publication changed during this request. Restart pagination.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
429Daily request quota or per-minute rate exceeded. Retry after the response delay. Denied requests do not consume additional quota.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_rate_limited",
"message": "The API request rate limit has been reached.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
- Retry-After
Seconds to wait before retrying. For accepted exports, poll after 5 seconds. On 429, wait for the denied window to reset.
string
- Pattern: "^[1-9][0-9]*$"
503Data publication, reference version, warehouse or storage is temporarily unavailable; no partial response is returned.
application/json
- Unknown properties are refused.
Example: example
{
"error": {
"code": "api_unavailable",
"message": "The API is temporarily unavailable.",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Response headers
- X-Request-ID
Server-generated request UUID. Include it when reporting an error.
string
- Format: "uuid"
- Cache-Control
Contains no-store and private. Proxies may append another no-store field; combine field values as HTTP directives.
string
Shared schemas
Follow schema links from the operation reference. Required fields may still be nullable when their type includes null.
Sourcestring
string
- Value: "hmrc_uktradeinfo"
Reporterstring
string
ISO 3166-1 alpha-2 reporter. GB is the currently published market.
- Pattern: "^[A-Z]{2}$"
Periodstring
string
- Pattern: "^[1-9][0-9]{3}-(0[1-9]|1[0-2])$"
Generationstring
string
SHA-256 of the published release generation.
- Pattern: "^[a-f0-9]{64}$"
ReferenceRevisionstring
string
SHA-256 fingerprint of the loaded reference versions used by this response. Separate from the trade release generation.
- Pattern: "^[a-f0-9]{64}$"
OperatorRefstring
string
Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
- Pattern: "^[0-9]{1,12}$"
Flowstring
string
- Allowed: "import", "export"
CommoditySchemestring
string
- Allowed: "CN8", "HS6", "HS2"
CommodityCodestring
string
CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
- Pattern: "^(?:[0-9]{8}|[0-9]{6}|[0-9]{2}(?:------)?)$"
GeoSchemestring
string
- Pattern: "^[A-Za-z0-9][A-Za-z0-9:_-]{0,63}$"
GeoCodestring
string
Original source code, including residual or aggregate codes. Does not imply an ISO identity.
- Pattern: "^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$"
Cursorstring
string
Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
- Maximum characters: 4096
- Pattern: "^[A-Za-z0-9_-]+$"
Instantstring
string
- Format: "date-time"
Countinteger
integer
- Minimum: 0
- Maximum: 9007199254740991
UInt32integer
integer
- Minimum: 0
- Maximum: 4294967295
ReleaseIdentityobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| reporter | Required | |
| period | Required |
|
| generation | Required |
DiffKindstring
string
- Allowed: "new_operator", "operator_returned", "new_operator_commodity", "new_partner_for_commodity", "commodity_value_change"
ReleaseSummaryobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| new_operator | Required |
|
| operator_returned | Required |
|
| new_operator_commodity | Required |
|
| new_partner_for_commodity | Required |
|
| commodity_value_change | Required |
|
Licenceobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| name | Required | string
|
| url | Required | string
|
| attribution | Required | string
|
ReporterRecordobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| reporter | Required | |
| name | Required | string |
| source | Required |
|
| latest_period | Required |
|
| generation | Required | |
| loaded_at | Required |
|
| licence | Required |
|
ReleaseRecordobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| reporter | Required | |
| period | Required |
|
| previous_period | Required | string | null |
| history_start | Required |
|
| generation | Required | |
| summary | Required |
|
| loaded_at | Required |
|
| diff_computed_at | Required |
|
| observed_at | Required |
|
CountMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
PageMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| limit | Required | integer
|
| next_cursor | Required | string | null Any of Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
null |
PublishedMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| release | Required |
|
PublishedPageMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| limit | Required | integer
|
| next_cursor | Required | string | null Any of Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
null |
| release | Required |
|
FlowMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| limit | Required | integer
|
| next_cursor | Required | string | null Any of Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
null |
| from | Required |
|
| to | Required |
|
| periods | Required | array<string>
Array items
|
| reference_revision | Optional | SHA-256 fingerprint of the loaded reference versions used by this response. Separate from the trade release generation.
|
| release | Required |
|
ReferenceMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| period | Required |
|
| reference_revision | Required | SHA-256 fingerprint of the loaded reference versions used by this response. Separate from the trade release generation.
|
| release | Required |
|
PartnerMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| limit | Required | integer
|
| next_cursor | Required | string | null Any of Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
null |
| period | Required |
|
| reference_revision | Required | SHA-256 fingerprint of the loaded reference versions used by this response. Separate from the trade release generation.
|
| release | Required |
|
DiffMetaobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| count | Required |
|
| limit | Required | integer
|
| next_cursor | Required | string | null Any of Opaque continuation token. Reuse unchanged with the same endpoint and filters. Data cursors are bound to the publication and relevant references; restart pagination after a change.
null |
| total | Required |
|
| release | Required |
|
OperatorSearchRecordobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| ||||||||||||||||||||||||
| reporter | Required | |||||||||||||||||||||||||
| operator_ref | Required | Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
| ||||||||||||||||||||||||
| name | Required | string
| ||||||||||||||||||||||||
| commodities | Required | integer
| ||||||||||||||||||||||||
| months | Required | integer
| ||||||||||||||||||||||||
| first_period | Required |
| ||||||||||||||||||||||||
| last_period | Required |
| ||||||||||||||||||||||||
| flows | Required | array<string>
Array items
| ||||||||||||||||||||||||
| lineage | Required | object
| ||||||||||||||||||||||||
| codes | Required | array<object>
Array itemsobject Only the published trader-directory schemes CN8 and residual HS2 are returned.
All of JSON Conditional validation ruleJSON Conditional validation ruleJSON Conditional validation rule | ||||||||||||||||||||||||
| codes_truncated | Required | boolean |
OperatorProfileobject
object
Declared directory attributes from attributes_period. No inferred registry match, company turnover or shipment values.
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| ||||||||||||||||||||||||
| reporter | Required | |||||||||||||||||||||||||
| operator_ref | Required | Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
| ||||||||||||||||||||||||
| name | Required | string
| ||||||||||||||||||||||||
| commodities | Required | integer
| ||||||||||||||||||||||||
| months | Required | integer
| ||||||||||||||||||||||||
| first_period | Required |
| ||||||||||||||||||||||||
| last_period | Required |
| ||||||||||||||||||||||||
| flows | Required | array<string>
Array items
| ||||||||||||||||||||||||
| lineage | Required | object
| ||||||||||||||||||||||||
| address_lines | Required | array<string> Array itemsstring
| ||||||||||||||||||||||||
| postal_code | Required | string
| ||||||||||||||||||||||||
| country | Required | string
| ||||||||||||||||||||||||
| attributes_period | Required |
| ||||||||||||||||||||||||
| links | Required | integer
|
OperatorLinkobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| reporter_geo_scheme | Required | string
|
| reporter_geo_code | Required | |
| period | Required |
|
| flow | Required |
|
| commodity_scheme | Required | string
|
| commodity_code | Required | CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
|
| operator_ref | Required | Source-scoped trader directory identifier, kept as text, including leading zeroes. Not a company registration number.
|
| value | Required | null Directory appearance only. Company-level monetary values are not published. |
| currency | Required | string
|
| tier | Required | string
|
| method | Required | string
|
| confidence | Required | string
|
| revision | Required |
|
All of
JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "CN8"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{8}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS6"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{6}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS2"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{2}(?:------)?$"
}
}
}
}TradeFlowobject
object
One published source cell. Amount is in currency; mass is kilograms. Null is not zero. All measures are null for suppressed cells; non-suppressed value is a finite number. Negative adjustments and duplicate cells are preserved.
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| batch_key | Required |
|
| reporter_geo_scheme | Required | string
|
| reporter_geo_code | Required | |
| period | Required |
|
| flow | Required |
|
| commodity_scheme | Required |
|
| commodity_code | Required | CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
|
| partner_geo_scheme | Required |
|
| partner_geo_code | Required | Original source code, including residual or aggregate codes. Does not imply an ISO identity.
|
| location_code | Required | string
|
| currency | Required | string
|
| tier | Required | string
|
| method | Required | string
|
| confidence | Required | string
|
| revision | Required |
|
| component | Required | integer Stable ordinal within identical dimensions and revision; preserves distinct or duplicate published cells without aggregation.
|
| suppressed | Required | boolean |
| value | Required | number | null |
| net_mass_kg | Required | number | null |
| supplementary_unit | Required | number | null |
All of
JSON
Conditional validation rule
{
"if": {
"properties": {
"suppressed": {
"const": true
}
}
},
"then": {
"properties": {
"value": {
"type": "null"
},
"net_mass_kg": {
"type": "null"
},
"supplementary_unit": {
"type": "null"
}
}
},
"else": {
"properties": {
"value": {
"type": "number"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "CN8"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{8}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS6"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{6}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS2"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{2}(?:------)?$"
}
}
}
}Hs6Mappingobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| reference_batch | Required | string
|
| hs6 | Required | string | null Any of string
null |
| hs_version | Required | string | null Any of string
null |
| valid_from | Required | string | null |
| valid_to | Required | string | null |
Commodityobject
object
Loaded nomenclature entry independent of trade activity. Parent and residual codes remain verbatim; a parent is not implicitly an HS6. hs6 is null when no unique mapping exists, except a loaded HS6 entry identifies itself. Validity boundaries are inclusive; null means an open boundary.
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| commodity_scheme | Required |
|
| commodity_code | Required | CN8: eight digits; HS6: six digits; HS2: two digits, optionally followed by six hyphens. Codes are never converted implicitly.
|
| description | Required | string
|
| parent_codes | Required | array<string>
Array itemsstring
|
| reference_batch | Required | string
|
| alt_scheme | Required | string | null Any of string
null |
| alt_code | Required | string | null Any of string
null |
| hs6 | Required | string | null Any of string
null |
| hs6_mappings | Required |
All of
JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "CN8"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{8}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS6"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{6}$"
}
}
}
}JSON
Conditional validation rule
{
"if": {
"properties": {
"commodity_scheme": {
"const": "HS2"
}
}
},
"then": {
"properties": {
"commodity_code": {
"type": "string",
"pattern": "^[0-9]{2}(?:------)?$"
}
}
}
}Partnerobject
object
A partner code present in the selected month, enriched only by the effective loaded mapping. Unmapped and residual codes remain present with null labels or ISO codes. Null validity boundaries are open.
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| source | Required |
|
| partner_geo_scheme | Required |
|
| partner_geo_code | Required | Original source code, including residual or aggregate codes. Does not imply an ISO identity.
|
| name | Required | string | null Any of string
null |
| iso_alpha2 | Required | string | null Any of null |
| reference_batch | Required | string | null Any of string
null |
| valid_from | Required | string | null |
| valid_to | Required | string | null |
NewOperatorDiffobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| |||||||||
| reporter | Required | ||||||||||
| period | Required |
| |||||||||
| generation | Required | ||||||||||
| kind | Required | string
| |||||||||
| subject | Required | string
| |||||||||
| detail | Required | object
| |||||||||
| tier | Required | null | |||||||||
| method | Required | string
| |||||||||
| confidence | Required | null | |||||||||
| revision | Required | ||||||||||
| basis | Required | string
|
OperatorReturnedDiffobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| |||||||||
| reporter | Required | ||||||||||
| period | Required |
| |||||||||
| generation | Required | ||||||||||
| kind | Required | string
| |||||||||
| subject | Required | string
| |||||||||
| detail | Required | object
| |||||||||
| tier | Required | null | |||||||||
| method | Required | string
| |||||||||
| confidence | Required | null | |||||||||
| revision | Required | ||||||||||
| basis | Required | string
|
NewOperatorCommodityDiffobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| ||||||||||||||||||
| reporter | Required | |||||||||||||||||||
| period | Required |
| ||||||||||||||||||
| generation | Required | |||||||||||||||||||
| kind | Required | string
| ||||||||||||||||||
| subject | Required | string
| ||||||||||||||||||
| detail | Required | object
| ||||||||||||||||||
| tier | Required | null | ||||||||||||||||||
| method | Required | string
| ||||||||||||||||||
| confidence | Required | null | ||||||||||||||||||
| revision | Required | |||||||||||||||||||
| basis | Required | string
|
NewPartnerForCommodityDiffobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| ||||||||||||||||||
| reporter | Required | |||||||||||||||||||
| period | Required |
| ||||||||||||||||||
| generation | Required | |||||||||||||||||||
| kind | Required | string
| ||||||||||||||||||
| subject | Required | string
| ||||||||||||||||||
| detail | Required | object
| ||||||||||||||||||
| tier | Required | null | ||||||||||||||||||
| method | Required | string
| ||||||||||||||||||
| confidence | Required | null | ||||||||||||||||||
| revision | Required | |||||||||||||||||||
| basis | Required | string
|
CommodityValueChangeDiffobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| source | Required |
| |||||||||||||||||||||
| reporter | Required | ||||||||||||||||||||||
| period | Required |
| |||||||||||||||||||||
| generation | Required | ||||||||||||||||||||||
| kind | Required | string
| |||||||||||||||||||||
| subject | Required | string
| |||||||||||||||||||||
| detail | Required | object
| |||||||||||||||||||||
| tier | Required | null | |||||||||||||||||||||
| method | Required | string
| |||||||||||||||||||||
| confidence | Required | null | |||||||||||||||||||||
| revision | Required | ||||||||||||||||||||||
| basis | Required | string
|
ReleaseDiffobject | object | object | object | object
object | object | object | object | object
Derived comparison of published monthly CN8 declarations. revision is the generation hash, not an integer. tier and confidence are null rather than inferred source scores.
Exactly one of
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
ExportJobobject
object
Private to the creating API key and organisation. cap is the minimum of row_limit, the organisation allowance and 100000. download_url is non-null only for completed jobs; the property is always returned. Files expire 24 hours after creation; queue deadline is 30 minutes.
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| id | Required | string
|
| status | Required | string
|
| format | Required | string
|
| endpoint | Required | string
|
| cap | Required | integer
|
| rows | Required | integer
|
| bytes | Required | integer
|
| truncated | Required | boolean True when further rows existed after the cap; false for a complete result, including an empty one. |
| created_at | Required |
|
| expires_at | Required |
|
| finished_at | Required | string | null |
| error_code | Required | string | null Any of string
null |
| status_url | Required | string
|
| download_url | Required | string | null Any of string
null |
ReportersResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | array<object> Array items
|
| meta | Required |
|
ReleasesResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | |
| meta | Required |
|
OperatorsResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | |
| meta | Required |
|
OperatorResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | Declared directory attributes from attributes_period. No inferred registry match, company turnover or shipment values.
|
| meta | Required |
|
LinksResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | |
| meta | Required |
|
FlowsResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | array<object>
Array itemsOne published source cell. Amount is in currency; mass is kilograms. Null is not zero. All measures are null for suppressed cells; non-suppressed value is a finite number. Negative adjustments and duplicate cells are preserved.
|
| meta | Required |
|
CommodityResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | Loaded nomenclature entry independent of trade activity. Parent and residual codes remain verbatim; a parent is not implicitly an HS6. hs6 is null when no unique mapping exists, except a loaded HS6 entry identifies itself. Validity boundaries are inclusive; null means an open boundary.
|
| meta | Required |
|
PartnersResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | array<object>
Array itemsA partner code present in the selected month, enriched only by the effective loaded mapping. Unmapped and residual codes remain present with null labels or ISO codes. Null validity boundaries are open.
|
| meta | Required |
|
DiffsResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | array<object | object | object | object | object>
Array itemsDerived comparison of published monthly CN8 declarations. revision is the generation hash, not an integer. tier and confidence are null rather than inferred source scores. |
| meta | Required |
|
ExportResponseobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| data | Required | Private to the creating API key and organisation. cap is the minimum of row_limit, the organisation allowance and 100000. download_url is non-null only for completed jobs; the property is always returned. Files expire 24 hours after creation; queue deadline is 30 minutes.
|
| meta | Required |
|
Errorobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| error | Required | object
|
ReportersExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| endpoint | Required | string
|
| params | Required | object
|
| format | Required | string
|
| row_limit | Optional | integer
|
ReleasesExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||
|---|---|---|---|---|---|---|---|---|
| endpoint | Required | string
| ||||||
| params | Required | object
| ||||||
| format | Required | string
| ||||||
| row_limit | Optional | integer
|
OperatorsExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| endpoint | Required | string
| |||||||||
| params | Required | object
| |||||||||
| format | Required | string
| |||||||||
| row_limit | Optional | integer
|
LinksExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| endpoint | Required | string
|
| params | Required | |
| format | Required | string
|
| row_limit | Optional | integer
|
FlowsExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| endpoint | Required | string
| |||||||||||||||||||||||||||
| params | Required | object
All of JSON Conditional validation ruleJSON Conditional validation ruleJSON Conditional validation ruleJSON Conditional validation ruleJSON Conditional validation rule | |||||||||||||||||||||||||||
| format | Required | string
| |||||||||||||||||||||||||||
| row_limit | Optional | integer
|
PartnersExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints |
|---|---|---|
| endpoint | Required | string
|
| params | Required | |
| format | Required | string
|
| row_limit | Optional | integer
|
DiffsExportRequestobject
object
- Unknown properties are refused.
| Property | Presence | Type and constraints | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| endpoint | Required | string
| ||||||||||||
| params | Required | object
| ||||||||||||
| format | Required | string
| ||||||||||||
| row_limit | Optional | integer
|
ExportRequestobject | object | object | object | object | object | object
object | object | object | object | object | object | object
Exactly one of
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.
- Unknown properties are refused.