---
title: "Get Supplier Quote"
method: GET
path: "/api/v1/admin/supplier-quotes/{quote_id}"
tags: ["admin-supplier-quotes"]
---

# Get Supplier Quote

`GET /api/v1/admin/supplier-quotes/{quote_id}`

Full detail of one SupplierQuote.

Joins the supplier contact's name + email so the FE doesn't need a
second round-trip. ``attachment_r2_keys`` is intentionally NOT
exposed in V1 — design-review dropped PDF upload from the admin UI;
admins keep PDFs in Gmail.

## Path parameters

- `quote_id` string, uuid, required

## Response `200`

Successful Response

- SupplierQuoteRead — Full detail response for ``GET /admin/supplier-quotes/{id}``. Joins the supplier contact's name + email at the schema layer so the FE doesn't have to make a second round-trip. PRO-113 V2: ``attachment_r2_keys`` is now exposed (previously hidden in V1 since admins kept PDFs in Gmail). The V2 Quote Correction View consumes this to render the source-preview panel for attachment- backed inbound replies. Frontend resolves R2 keys to presigned URLs via the dedicated ``/source-preview-url`` endpoint.
  - `id` string, uuid, required
  - `project_id` string, uuid, required
  - `supplier_contact_id` string, uuid, required
  - `supplier_contact_name` string, required
  - `supplier_contact_email` string, required
  - `gmail_thread_id` string, nullable
  - `source` string
  - `total_amount_cents` integer, nullable, required
  - `currency` string, required
  - `lead_time_days` integer, nullable, required
  - `valid_until` string, date-time, nullable, required
  - `line_items` object[], required
  - `notes` string, nullable, required
  - `source_email_body` string, nullable
  - `attachment_r2_keys` string[]
  - `attachment_kinds` string[]
  - `supplier_documents` SupplierQuoteDocumentRead[]
    - `extraction_status` string
    - `latest_extraction_id` string, uuid, nullable
    - `last_extracted_at` string, date-time, nullable
    - `has_reviewable_suggestion` boolean
    - `extraction_error_message` string, nullable
    - `id` string, uuid, required
    - `project_id` string, uuid, required
    - `supplier_contact_id` string, uuid, required
    - `supplier_quote_id` string, uuid, nullable
    - `vendor_thread_state_id` string, uuid, nullable
    - `source` string, required
    - `document_kind` string, required
    - `r2_key` string, nullable
    - `filename` string, nullable
    - `mime_type` string, nullable
    - `file_size_bytes` integer, nullable
    - `gmail_thread_id` string, nullable
    - `gmail_message_id` string, nullable
    - `latest_extraction` CommercialDocumentExtractionSummary — Compact extraction status for list/detail views.
      - `id` string, uuid, required
      - `status` string, required
      - `provider` string, required
      - `schema_version` string, required
      - `confidence` number, nullable
      - `aggregate_total_cents` integer, nullable
      - `currency` string, nullable
      - `max_lead_time_days` integer, nullable
      - `error_message` string, nullable
      - `started_at` string, date-time, nullable
      - `completed_at` string, date-time, nullable
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `document_kind` string, nullable
  - `extraction_confidence` number, nullable
  - `needs_human_review` boolean, required
  - `reviewed_at` string, date-time, nullable, required
  - `reviewed_by` string, uuid, nullable, required
  - `accepted_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/prototyping/apis/prototyping-io-api.md) · [All operations](https://skmtc.dev/prototyping/apis/prototyping-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prototyping/prototyping-io-api/revisions/f4a0079fbb57/schema)
