Preview Audit Trail Size

Read-only pre-create scope check. Takes the same plot filter that Create Audit Trail accepts and returns the number of plots the create would resolve — running nothing, assessing nothing, and costing nothing.

Use it to size a DDS before committing to it: a filter such as supplier_name has no cheap client-side count, so without this endpoint the only way to learn a run's scale is to start it.

It is POST rather than GET because the filter is a nested object that doesn't carry cleanly in a querystring — the request is still read-only and changes no state.

Request

Method & Path

POST /regulations/eudr/audit-trail/preview

Body

FieldRequiredDescription
data.typeyesMust be "dds_record_preview".
data.attributes.filternoThe same plot-filter object the create accepts. Defaults to {}, which — exactly as on the create — counts every plot in scope.

Response

FieldTypeDescription
plot_countintegerPlots the create would resolve for this filter.
cappedbooleantrue when the count hit the ceiling — see below.

Reading capped

When capped is true, plot_count is the cap, not the real total — the true figure is higher. Display it as "10,000+" rather than as an exact number, and treat the run as over any sensible per-run ceiling.

The cap check counts raw location records (pivot rows), which is greater than or equal to the deduplicated plot count. So capped can occasionally come back true for a run whose deduplicated total sits just under the cap — a heavily re-uploaded catchment, for instance. This over-reports scale, which is the conservative direction for a cost gate, and never under-reports it.

One known under-count

A supplier_name filter is resolved here against the registry supplier link only. The create additionally runs a slower normalised-name fallback, so for suppliers that resolve only via a facility's free-text name this preview can come back slightly below what the create will produce. Every other filter matches the create exactly.

Status codes

CodeWhen
200Count returned
400Malformed body or filter
401 / 403Missing or insufficient credentials

Note the scope: eudr:read, not the eudr:write the create needs — a read-scoped credential can size a run without being able to start one.

Required scope: eudr:read