---
title: "UCP catalog product detail"
method: POST
path: "/ucp/catalog/product"
tags: ["UCP"]
---

# UCP catalog product detail

`POST /ucp/catalog/product`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/ucp/catalog/product`
- Auth: none declared

Universal Commerce Protocol `dev.ucp.shopping.catalog.lookup`, single product. A missing id returns HTTP 200 with a `messages` entry, per the spec: transport status codes are reserved for malformed or unauthorized requests, not for application outcomes.

## Request body

- ProductRequest
  - `context` Context
    - `address_country` string, nullable
    - `address_region` string, nullable
    - `postal_code` string, nullable
    - `intent` string, nullable
    - `language` string, nullable
    - `currency` string, nullable
    - `eligibility` string[], nullable
  - `signals` object, nullable
  - `attribution` object, nullable
  - `filters` SearchFilters
    - `categories` string[], nullable
    - `price` PriceFilter
      - `min` integer, nullable
      - `max` integer, nullable
  - `id` string, required
  - `selected` SelectedOption[], nullable
    - `name` string, required
    - `label` string, required
    - `id` string, nullable
  - `preferences` string[], nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/rubenayla/apis/partle-api.md) · [All operations](https://skmtc.dev/rubenayla/apis/partle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rubenayla/apis/partle-api/revisions/628cce2acee5?raw)
