---
title: "Get Product"
method: POST
path: "/products/detail"
tags: ["Products"]
---

# Get Product

`POST /products/detail`

Get one product's detail over a date range: headline metrics (visibility, win_rate, avg_position, avg_rating, mention_count) plus a delta for each against the immediately preceding equal-length period, the catalog metadata (brand, description, image, source, first-seen date), the effective price range with any overrides, and the median AI-mention price. Visibility is divided by the product's relevant-prompt chats, not all shopping chats. avg_rating is the mean 0–5 star rating across the product's AI mentions (null when none carried a rating). Returns data: null when the product is not in the project.

## Request body

- object
  - `project_id` string — Required if using a company api key
  - `product_id` string, uuid, required
  - `start_date` string, date — full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21
  - `end_date` string, date — full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21
  - `country_codes` string[]
  - `model_channel_ids` string[]
  - `merchant_ids` string[] — Scope the response to chats where this product is sold through one of these merchants — the per-merchant view of rating, price, and mentions. The QFO breakdowns scope through those chats too; only the visibility denominator stays merchant-free.
  - `topic_ids` string[]
  - `tag_ids` string[]
  - `tag_operator` 'and' | 'or'
  - `chat_scope` 'all' | 'shopping' — Which chats the visibility denominator counts: every in-scope chat ('all') or only product-gallery ('shopping') chats. Defaults to 'shopping'.

## Response `200`

A single product's detail metrics over the date range, with deltas against the immediately preceding period. `data` is null when the product does not exist in the project. Beyond the always-present identity and headline metrics, `data` carries optional extras — description, image, price/currency maps, the QFO breakdowns (fanout_queries, shopping_queries, and their *_terms n-gram variants, each capped at 25 entries) that surface the top queries and terms that mentioned this product, and `variants` (the product's live catalog variants — id, name, and a per-currency priceMap — capped at 50 with no pagination).

- object — A single product's detail metrics over the date range, with deltas against the immediately preceding period. `data` is null when the product does not exist in the project. Beyond the always-present identity and headline metrics, `data` carries optional extras — description, image, price/currency maps, the QFO breakdowns (fanout_queries, shopping_queries, and their *_terms n-gram variants, each capped at 25 entries) that surface the top queries and terms that mentioned this product, and `variants` (the product's live catalog variants — id, name, and a per-currency priceMap — capped at 50 with no pagination).
  - `data` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `brand` string, required
    - `source` 'CATALOG' | 'LLM'
    - `first_seen_at` string, required
    - `visibility` number, required
    - `visibility_delta` number, nullable, required
    - `win_rate` number, required
    - `win_rate_delta` number, nullable, required
    - `avg_position` number, nullable, required
    - `avg_position_delta` number, nullable, required
    - `avg_rating` number, nullable, required
    - `avg_rating_delta` number, nullable, required
    - `mention_count` number, required
    - `mention_count_delta` number, required
    - `description` string, nullable
    - `image_url` string, nullable
    - `price_range` object
    - `price_override` object
    - `ai_price_map` object
    - `ai_price_delta_map` object
    - `fanout_queries` object[]
      - `query_text` string, required
      - `distinct_chat_count` number, required
      - `distinct_chat_count_previous` number, required
      - `delta` number, nullable, required
    - `shopping_queries` object[]
      - `query_text` string, required
      - `distinct_chat_count` number, required
      - `distinct_chat_count_previous` number, required
      - `delta` number, nullable, required
    - `fanout_query_terms` object[]
      - `term` string, required
      - `distinct_chat_count` number, required
      - `distinct_chat_count_previous` number, required
      - `delta` number, nullable, required
    - `shopping_query_terms` object[]
      - `term` string, required
      - `distinct_chat_count` number, required
      - `distinct_chat_count_previous` number, required
      - `delta` number, nullable, required
    - `variants` object[]
      - `id` string, uuid, required
      - `name` string, required
      - `priceMap` object, required
  - `primary_currency` string

---

[API](https://skmtc.net/peec/apis/peec-ai-customer-api.md) · [All operations](https://skmtc.net/peec/apis/peec-ai-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/peec/peec-ai-customer-api/versions/92840a1bffa7/schema)
