---
title: "Get product detail"
method: GET
path: "/products/{identifier}"
tags: ["Products"]
---

# Get product detail

`GET /products/{identifier}`

Resolves by slug or `prod_…` ID on the bare path, or by org-scoped slug pair. Returns the product row plus its sources, tags, and domain aliases.

## Path parameters

- `identifier` string, required

## Response `200`

Product detail with sources, tags, and aliases

- object
  - `id` string, required
  - `name` string, required
  - `slug` string, required
  - `orgId` string, required
  - `url` string, nullable, required
  - `description` string, nullable, required
  - `category` 'ai' | 'cloud' | 'commerce' | 'crm' | 'database' | 'design' | 'developer-tools' | 'devops' | 'finance' | 'framework' | 'infrastructure' | 'observability' | 'productivity' | 'security', nullable, required
  - `kind` 'platform' | 'sdk' | 'mobile' | 'desktop' | 'docs' | 'integration' | 'tool', nullable
  - `avatarUrl` string, nullable
  - `createdAt` string, required
  - `embeddedAt` string, nullable, required
  - `deletedAt` string, nullable, required
  - `sources` object[], required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `type` 'github' | 'scrape' | 'feed' | 'agent' | 'appstore' | 'video', required
    - `url` string, required
    - `metadata` string, nullable
    - `kind` 'platform' | 'sdk' | 'mobile' | 'desktop' | 'docs' | 'integration' | 'tool', nullable
  - `tags` string[], required
  - `aliases` string[], required
  - `releases` object[]
    - `id` string
    - `version` string, nullable, required
    - `title` string, required
    - `summary` string, required
    - `content` string
    - `publishedAt` string, nullable, required
    - `fetchedAt` string
    - `url` string, nullable, required
    - `media` object[]
      - `type` 'image' | 'video' | 'gif', required
      - `url` string, required
      - `alt` string
      - `r2Key` string
      - `r2Url` string
      - `linkUrl` string
    - `type` 'feature' | 'rollup'
    - `prerelease` boolean
    - `titleGenerated` string, nullable
    - `titleShort` string, nullable
    - `breaking` 'unknown' | 'none' | 'minor' | 'major'
    - `importance` integer, nullable
    - `coverageCount` integer
    - `contentChars` integer, nullable
    - `contentTokens` integer, nullable
    - `composition` object, nullable
      - `bugs` integer, required
      - `features` integer, required
      - `enhancements` integer, required
  - `pagination` object
    - `nextCursor` string, nullable, required
    - `limit` integer, required
  - `notice` object, nullable
    - `message` string, required
    - `linkText` string
    - `coordinate` string
    - `href` string, uri

## Other responses

- `400` — Bare slug supplied on `/products/:identifier` (#698 — use the org-scoped path or `/v1/lookups/product-by-slug`)
- `404` — Product not found

---

[API](https://skmtc.net/releases/apis/releases-api.md) · [All operations](https://skmtc.net/releases/apis/releases-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/releases/releases-api/revisions/168e32061f53/schema)
