# Public Supplier Requests Get

Fetch one supplier request by its public id (its UUID).

Endpoint: GET /supplier-requests/{supplier_request_id}
Version: 1.79.2

## Path parameters:

  - `supplier_request_id` (string, required)

## Header parameters:

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

## Response 200:

  - `200` (unknown)
    Successful Response

## Response 200 fields (application/json):

  - `id` (string, required)
    Public id — the supplier request's UUID.

  - `status` (string, required)
    Lifecycle state of a supplier request.
A translated subset of the internal `SupplierRequestStatus`; the mapping
lives in `supplier_requests.service._SUPPLIER_REQUEST_STATUS_MAP` and a
test asserts it covers every internal value. New values may be added in a
MINOR release — the OpenAPI enum is closed, so consumers should treat an
unknown value defensively rather than fail strict validation.
    Enum: "REQUEST_SENT", "OFFER_RECEIVED", "DECLINED"

  - `tender_id` (string | null)
    Backing tender id when the request is tender-scoped — resolve via `GET /tenders/{tender_id}`. Null when project-scoped.

  - `project_id` (string | null)
    Backing project id when the request is project-scoped — resolve via `GET /projects/{project_id}`. Null when tender-scoped.

  - `supplier_id` (string | null)
    Supplier reference only — resolve full details via `GET /suppliers/{supplier_id}`. Null when no supplier is set.

  - `supplier_name` (string | null)
    Supplier display name (convenience mirror of the reference).

  - `supplier_emails` (array)
    Recipient email addresses the request was sent to.

  - `sender_email` (string | null)
    Email of the Mercura user who sent the request. Null when unknown.

  - `is_awarded` (boolean, required)
    True when at least one offered line was accepted into the final tender.

  - `awarded_line_count` (integer, required)
    Number of offered lines accepted into the final tender.

  - `offered_lines` (array)

  - `offered_lines.id` (string, required)
    Opaque handle for this offered line (internal candidate-selection id).

  - `offered_lines.position_id` (string | null)
    The position this line answers. For a tender-scoped supplier request it matches the position id in `GET /tenders/{tender_id}`; for a project-scoped one it is an internal reference with no public resolution endpoint today. Null when the line is not mapped to a position.

  - `offered_lines.item_type` (string, required)
    What an offered line is, from `CandidateSelection.item_type`.
    Enum: "ARTICLE", "TEXT_FIELD", "DIVERSE"

  - `offered_lines.candidate_status` (string, required)
    Acceptance state of one offered line, from `CandidateSelection.status`.
    Enum: "PENDING", "ACCEPTED", "DECLINED"

  - `offered_lines.selected` (boolean, required)
    True when this line was accepted into the final tender (candidate_status ACCEPTED).

  - `offered_lines.article_number` (string | null)
    Article number the supplier quoted, when any.

  - `offered_lines.manufacturer_article_number` (string | null)
    Manufacturer article number, when any.

  - `offered_lines.description` (string | null)
    Supplier's line text, when provided.

  - `offered_lines.quantity` (number | null)

  - `offered_lines.unit` (string | null)

  - `offered_lines.unit_price` (string | null)
    Supplier's offered price per unit, EUR.

  - `offered_lines.line_total` (string | null)
    Supplier's offered line total, EUR.

  - `created_at` (string, required)

  - `updated_at` (string, required)

## Response 404:

  - `404` (unknown)
    Supplier request 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)

