List Annex I Entries

List the Annex I CN-code entries of the resolved EUDR scope version — the enumerable form of the scope table behind the single-code classifier (GET /regulations/eudr/scope). Use it to drive a searchable HS-code select so users can only pick valid Annex I codes, or to mirror the in-force list into your own system.

Reference data: global, not org-scoped — every org sees the same list. The response is small — under a hundred rows on the current version — and returned in one envelope; there is no pagination. meta.count carries the number of rows returned (after filtering) and entries are ordered by cn_code.

The first example shows three of the 89 entries of 2026-da: coffee (five accepted subheadings), chapter 49 (in scope, but TRACES accepts no code, so traces_hs_codes is []) and recovered-paper pulp 470620 (excluded from Annex I).

Query params

ParamDescription
as_ofOptional effective date (YYYY-MM-DD); defaults to today. Resolves the adopted version in force on that date.
versionOptional explicit version key (e.g. 2023-1115). Bypasses date resolution and may target a draft version to preview a pending Delegated Act — meta.scope_version_status and a meta.notes advisory flag this.
commodityOptional. Keep only these EUDR commodities: cattle, cocoa, coffee, palm, rubber, soy, timber. Comma-separated (commodity=coffee,cattle) or repeated (commodity=coffee&commodity=cattle); both give the same result. Any other value, or an empty one, is a 400.
in_scopeOptional, true or false. Keep only in-scope, or only out-of-scope, entries. Any other value is a 400.
traces_fileableOptional, true or false. Keep only entries TRACES can, or cannot, file. Any other value is a 400.

Filters combine with AND: ?in_scope=true&traces_fileable=false returns only chapter 49. They narrow data and meta.count only; meta.superseded is never filtered.

Response

Each entry:

Coffee policy note: TRACES acceptance accepts bare 0901 (IMPORT and EXPORT re-probed on 2026-10-19), and Epoch now allows the bare heading as well as its five subheadings. Production has not been verified. Coffee acceptance fields and examples here describe the updated fm-api policy.

FieldMeaning
commodityCanonical EUDR commodity (cattle / cocoa / coffee / palm / rubber / soy / timber)
cn_codeAnnex I CN code, bare digits — chapter (2), heading (4), subheading (6), or tariff (8) granularity
ex_headingtrue when the Annex uses an "ex" prefix: only part of the heading is in scope, confirm the specific product
descriptionAnnex I product description
in_scopefalse rows are codes removed by a Delegated Act, or products Annex I excludes — listed so a client can badge them rather than treat them as unknown
traces_hs_codesThe codes TRACES accepts under this entry, each { code, description, label } (label is "<code> — <description>", ready to display). [] when the entry is out of scope, or TRACES accepts no code under it (chapter 49)
finer_codes_acceptedtrue when TRACES also accepts finer codes under the entry's own code (e.g. any 6-digit 4403xx under 4403); false when it takes only the listed codes (coffee allows 0901 and its five listed subheadings)
traces_fileabletrue when the entry has at least one code TRACES accepts. false for chapter 49 and for every out-of-scope entry
out_of_scope_kindremoved or annex_exclusion for an out-of-scope entry; null when in scope
out_of_scope_reasonHuman-readable reason, e.g. excluded from EUDR (bamboo or recovered fibre); no DDS required, or removed from EUDR Annex I by <version source>; no DDS required; null when in scope
dds_requiredfalse for every out-of-scope entry; true otherwise
superseded_byAlways null on entries; the map is meta.superseded
supplementary_unitTRACES's supplementary-unit rule for the entry's own code: { rule, qualifier, required_for_activities }, rule required (qualifier MTQ, NAR or KSD, on IMPORT and EXPORT) or not_allowed. null when out of scope

meta carries the resolved version (same shape as the classifier's meta) plus:

FieldMeaning
countNumber of entries returned
notesAdvisories, e.g. the DRAFT-version warning
supersededSuperseded CN code → the TRACES-fileable codes that replace it, e.g. "1201": ["120190"], "4012": ["40129030"]. A [] value means superseded with no TRACES-fileable replacement. {} when the version supersedes nothing (2023-1115)

Errors

StatusCodeWhen
400VALIDATION_ERRORMalformed as_of (impossible calendar date), over-long version, a commodity outside the seven EUDR commodities (or empty), or an in_scope / traces_fileable value other than true / false
401UNAUTHORIZEDMissing/invalid API key
403FORBIDDENKey lacks both eudr:reference and eudr:read
404NOT_FOUNDUnknown version, or no adopted version in force for the date

Required scope: eudr:reference or eudr:read