Skip to main content
GET
/
v1
/
products
/
{product_id}
Python
import os
from channel3_sdk import Channel3

client = Channel3(
    api_key=os.environ.get("CHANNEL3_API_KEY"),  # This is the default and can be omitted
)
product_detail = client.products.retrieve(
    product_id="product_id",
)
print(product_detail.id)
{
  "id": "<string>",
  "title": "<string>",
  "description": "<string>",
  "brands": [
    {
      "id": "<string>",
      "name": "<string>"
    }
  ],
  "images": [],
  "categories": [
    "<string>"
  ],
  "category": {
    "slug": "<string>",
    "title": "<string>",
    "has_children": true,
    "path": [
      {
        "slug": "<string>",
        "title": "<string>"
      }
    ]
  },
  "materials": [
    "<string>"
  ],
  "key_features": [
    "<string>"
  ],
  "offers": [
    {
      "url": "<string>",
      "domain": "<string>",
      "price": {
        "price": 123,
        "currency": "<string>",
        "compare_at_price": 123
      },
      "max_commission_rate": 0
    }
  ],
  "variants": {
    "options": [
      {
        "name": "<string>",
        "values": [
          {
            "label": "<string>",
            "exists": true,
            "thumbnail_url": "<string>",
            "product_id": "<string>"
          }
        ]
      }
    ],
    "selected": [
      {
        "name": "<string>",
        "label": "<string>"
      }
    ]
  },
  "structured_attributes": {}
}

Authorizations

x-api-key
string
header
required

Path Parameters

product_id
string
required

Query Parameters

website_ids
string[] | null

Optional list of website IDs to constrain the buy URL to, relevant if multiple merchants exist. Accepts website IDs or domains (e.g. "nike.com").

language
enum<string> | null

ISO 639-1 language code. Matches any language when unset; defaults to 'en' only when country and currency are also unset.

Available options:
en,
de,
fr,
it,
es,
nl,
sv,
fi,
pt,
cs,
el,
ro
country
enum<string> | null

ISO 3166-1 alpha-2 country code. Matches any country when unset; defaults to 'US' only when language and currency are also unset.

Available options:
US,
GB,
EU,
AU,
CA,
IE,
DE,
AT,
FR,
BE,
IT,
ES,
NL,
SE,
FI,
PT,
CZ,
GR,
RO
currency
enum<string> | null

ISO 4217 currency code. When unset, inferred from country (e.g. GB -> GBP); falls back to 'USD' only when all three locale fields are unset.

Available options:
USD,
CAD,
AUD,
GBP,
EUR,
SEK,
CZK,
RON

Response

Successful Response

Product with detailed information.

id
string
required
title
string
required
description
string | null
brands
ProductBrand · object[]

Ordered list of brands.

images
ProductImage · object[]
categories
string[]
deprecated
category
CategorySummary · object

The single category this product belongs to, as a structured CategorySummary (slug, title, path, has_children). Replaces the deprecated categories field.

gender
enum<string> | null
Available options:
male,
female,
unisex
age
enum<string> | null

Target age group. Age-agnostic products are typically returned as 'adult'.

Available options:
newborn,
infant,
toddler,
kids,
adult
materials
string[] | null
key_features
string[] | null
offers
ProductOffer · object[]

All merchant offers for this product in the requested locale.

variants
Variants · object

Variant interaction state — options, selected. Absent when the product has no variations.

structured_attributes
Structured Attributes · object

Structured attributes extracted for this product, keyed by attribute handle (e.g. 'color', 'material'). Values are the canonical allowed values for that handle.