List Audit Trail Records

List the EUDR audit-trail records (DDS records) visible to the caller, newest first. This is the single read surface for both working drafts and submitted statements — the former GET /dds submitted-only list was folded into this endpoint via the status filter (the /dds namespace now only exposes Submit DDS). Each item's resource type is audit-trail-summary.

Filters

Filters use the shared filter[<attribute>]=<condition>:<value> format (same as Locations / Artifacts). eq is the default when the condition: prefix is omitted; in: takes a comma-separated value.

FilterConditionsMeaning
filter[supplier_name]eq, contains, startsWithCase-insensitive match on the record's scope supplier name (eq = exact, contains = substring, startsWith = prefix)
filter[supplier_external_id]eq, inPer-org external id(s) of the record's scope supplier (organization_supplier.external_id)
filter[commodity]eq, inRecord scope commodity (dds_record.commodity). Alias-aware and case-insensitive — wood and timber match the same records
filter[country_code]eq, inRecord scope country (dds_record.country_code). Coerced to ISO 3166-1 alpha-2; lower-case accepted
filter[assets.task_id]eq, inRecords whose current version contains at least one plot from this ingestion task. "Touches this task" — a task can map to several records and a record to several tasks
filter[status]eqsubmitted → only filed records (former GET /dds view)

Filtering is applied server-side (SQL), so meta.count and pagination reflect the filtered set. An unknown filter attribute (or an unsupported condition / enum value) is rejected with 400.

Pagination

ParamDefaultMaxMeaning
page[number]1—1-based page index
page[size]20100Records per page

Records are returned created_at DESC, id DESC.

filter[status]=eq:submitted

Narrows to records whose current version has been filed — its derived lifecycle_status is in the submitted set:

lifecycle_statusReturned?
submitted✅ filed; TRACES has not yet returned a terminal status
accepted / rejected✅ TRACES round-trip result (reserved; not surfaced yet)
stale✅ filed, but newer monitoring data has since arrived (reserved)
draft / awaiting_submission / submitting❌ not yet filed

Without filter[status], every record visible to the caller is returned regardless of lifecycle state.

supplier block

Each record carries its scope-supplier registry details (resolved from dds_record.supplier_id): id, name, per-org external_id, and an address object (line1, line2, city, region, postcode, country). null when the record has no resolvable scope supplier (legacy / unlinked / facility-only set).

Per-record shape

Otherwise identical to the Audit Trail summary — see that page for the field-by-field reference. Read a single record (any lifecycle state) at GET /regulations/eudr/audit-trail/:recordId.

Errors

StatusCodeWhen
400VALIDATION_ERRORUnknown filter attribute / bad condition / bad enum value
401UNAUTHORIZEDMissing/invalid API key

Required scope: eudr:read