---
title: "Catalog product detail (type-aware)"
method: GET
path: "/catalog/products/{id}"
tags: ["Admin Catalog: Products"]
---

# Catalog product detail (type-aware)

`GET /catalog/products/{id}`

## Request

- Base URL: `http://localhost:8000/api/admin`
- URL: `http://localhost:8000/api/admin/catalog/products/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-admin-api/docs/catalog/products/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a single catalog product with all detail-level fields populated. `channels` lists every available channel, each flagged `assigned` for this product. `attributes` mirrors the admin edit screen field-for-field — every attribute the product's family defines (code, adminName, type, value, options, per-channel/locale flags), with empty fields present (value null). Type-specific blocks (superAttributes/variants, bundleOptions, linkedProducts, downloadableLinks/downloadableSamples) are populated only for the matching product type; all others are null.

## Path parameters

- `id` integer, required

## Response `200`

Single catalog product with all detail fields inlined.

## Other responses

- `404`: Product not found.

---

[API](https://skmtc.dev/bagisto/apis/bagisto-admin-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-admin-api/revisions/3198f11be70f?raw)
