---
title: "Read one canonical product and its evidence"
method: GET
path: "/v1/products/{product_id}"
tags: ["Public discovery"]
---

# Read one canonical product and its evidence

`GET /v1/products/{product_id}`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/products/{product_id}`
- Auth: none required

## Path parameters

- `product_id` string, required

## Response `200`

Successful response

- ProductResponse
  - `product` Product, required
    - `id` string, required
    - `name` string, required
    - `manufacturer` string, nullable
    - `manufacturer_part_number` string, nullable
    - `specifications` object
    - `evidence` EvidenceScope[]
      - `source_class` string, required
      - `source_url` string, uri, nullable
      - `observed_at` string, date-time, nullable
      - `expires_at` string, date-time, nullable
      - `verification_status` string, required
      - `confidence` number, nullable
  - `request_id` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
