List archived submission documents
Retrieve the archived PDFs of submitted form submission versions.
Every submitted version gets one automatically, so this reports which versions have a document and
whether it is ready yet. Filter by eq(submission,<id>) to answer that for a whole version list in
one request, or by eq(version,<id>) for a single version.
A version with no record here has no document. That is the normal state for anything submitted
before archiving was switched on, and it is distinguishable from a document that is still
generating, which has a record with a pending status.
Authorised by the same view grants that govern reading the submissions themselves. An artefact carries no permissions of its own: it is the same information, in a different format.
Never paginated, and nothing is sideloaded. The response is the whole scoped set: a filter
names one submission or one version, which bounds it to a handful of records, so there is nothing
to page through and nothing is ever truncated. included is absent for the same reason a caller
cannot ask for it: every relationship on an artefact is a resource the caller already had in hand
when it named the scope.
Authorizations
Session token for authentication.
Query Parameters
A comma separated list of fields to sort by. Defaults to newest first.
created_at, -created_at, generated_at, -generated_at Filters the response data based on the value provided.
Available filters:
version: Filter by the version the document is of, e.g.eq(version,<id>).submission: Filter by submission, e.g.eq(submission,<id>). This is how a version list shows which of its versions have a document, in one request rather than one per version.organisation: Filter by organisation, e.g.eq(organisation,<id>).form: Filter by form, e.g.eq(form,<id>).status: Filter by where generation has got to, e.g.eq(status,ready).generated_at: Filter by when the document was written, e.g.ge(generated_at,2026-08-01T00:00:00Z).created_at: Filter by when the record was first written, e.g.ge(created_at,2026-08-01T00:00:00Z).
For more information on using named filters, see the docs