# Public Tenders List Documents

List the customer's source documents attached to a tender.
Returns metadata for each **original uploaded** file (GAEB / PDF / Excel /
image / e-mail) together with a short-lived, pre-signed `download_url` that
fetches the bytes directly from object storage — no `Authorization` header
needed on that URL, and it never proxies the file through the API.
Only the customer's own uploads are listed: Mercura-generated artefacts (the
offer / display PDF, structured-doc previews, OCR / metadata side-files) and
hidden files are excluded. The download URLs expire (see
`download_url_expires_at`) — re-list to obtain fresh ones. An unknown /
non-tender / foreign id is a `404`, indistinguishable from a missing tender.

Endpoint: GET /tenders/{tender_id}/documents
Version: 1.79.2

## Path parameters:

  - `tender_id` (string, required)

## Header parameters:

  - `authorization` (string | null)
    Bearer <mrc_live_…> API key

## Response 200:

  - `200` (unknown)
    Successful Response

## Response 200 fields (application/json):

  - `data` (array)
    The tender's source documents (the customer's original uploads).

  - `data.id` (string, required)
    Opaque document id (the immutable original file UUID). Stable across re-lists; correlate it together with tender_id because a copied original may be attached to more than one tender.

  - `data.tender_id` (string, required)
    Public id of the tender the document is attached to.

  - `data.object_number` (string | null)
    Your object number (Objektnummer) of that tender — the same value as `object_number` on `GET /tenders/{tender_id}`, so a document can be filed under the right object without a second call. Null when the tender carries none.

  - `data.filename` (string, required)
    Original file name as uploaded by the customer.

  - `data.content_type` (string, required)
    MIME type of the file (e.g. `application/pdf`, `application/xml`).

  - `data.size_bytes` (integer, required)
    File size in bytes.

  - `data.created_at` (string, required)
    When the file was uploaded to Mercura (UTC).

  - `data.updated_at` (string, required)
    Last change to the document's record (UTC) — upload, a custom-field edit, an ERP send request, or internal processing. The `GET /tenders/documents` feed is ordered by it.

  - `data.custom_fields` (object | null)
    The organisation's DOCUMENT custom fields, keyed by field label; select values come back as option labels. Null when none are set.

  - `data.erp_export_requested_at` (string | null)
    When a Mercura user last asked for this document to be sent to the ERP (UTC); null if never. A newer value than the one you archived means: file the document again.

  - `data.download_url` (string | null)
    Short-lived pre-signed URL that downloads the file's bytes directly from object storage (no API key required on this URL). Expires at `download_url_expires_at`. Null when the storage backend cannot issue a signed URL (non-production environments).

  - `data.download_url_expires_at` (string | null)
    UTC instant at which `download_url` stops working; null when no URL was issued.

## Response 404:

  - `404` (unknown)
    Tender not found

## Response 422:

  - `422` (unknown)
    Validation Error

## Response 422 fields (application/json):

  - `detail` (array)

  - `detail.loc` (array, required)

  - `detail.msg` (string, required)

  - `detail.type` (string, required)

  - `detail.input` (any)

  - `detail.ctx` (object)

