Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.octogen.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

The Platform Catalog API uses two product shapes depending on the endpoint. MerchantProductListItem is the compact shape returned in search results — it carries the fields needed to render a product card. MerchantProductView extends the list item with full detail fields and is returned only by the POST /products/lookup endpoint. Every field present on a list item is also present on a view.

MerchantProductListItem

Returned as elements of the items array in POST /products/search responses.
uuid
string
required
Stable unique identifier for this product record. Use this to deduplicate items across pages.
productUrl
string
required
Canonical product page URL on the merchant’s site. You can pass this directly to POST /products/lookup to retrieve the full view.
title
string | null
Product title as indexed from the merchant.
brand
object | null
Brand information associated with this product.
currentPrice
number | null
Current sale or listing price. Used as the basis for price_min and price_max filter comparisons.
originalPrice
number | null
Pre-discount price. null when no markdown or promotion applies.
imageUrl
string | null
Primary product image URL.
images
string[]
All product image URLs, including the primary image. May be empty if no images are indexed.
rating
object | null
Aggregated customer rating data.
updatedAt
datetime | null
ISO 8601 UTC timestamp of the last update to this product record in the index.

Example — MerchantProductListItem

{
  "uuid": "prod_01HX...",
  "productUrl": "https://warrenlotas.com/products/black-hoodie",
  "title": "Black Hoodie",
  "brand": {
    "name": "Warren Lotas",
    "slug": "warren-lotas",
    "url": null,
    "description": null
  },
  "currentPrice": 180,
  "originalPrice": null,
  "imageUrl": "https://cdn.example.com/black-hoodie.jpg",
  "images": ["https://cdn.example.com/black-hoodie.jpg"],
  "rating": null,
  "updatedAt": "2026-05-19T18:04:10Z"
}

MerchantProductView

Returned as the product field in POST /products/lookup responses. Contains all fields from MerchantProductListItem plus the following additional fields.
description
string | null
Full product description text as indexed from the merchant.
inStock
boolean | null
true if at least one variant is currently available to purchase. null if stock status is not available.
categories
CategoryView[]
Categories the product is assigned to on the merchant site. Each item has name (string, required) and optional url (string).
sizes
string[]
Available size labels as strings, e.g. ["xs", "s", "m", "l", "xl"]. Empty array if the product has no size options.
colors
ColorView[]
Available color options for this product.
tags
string[]
Free-form tags associated with the product, e.g. ["hoodie", "graphic", "streetwear"].
variants
MerchantVariantView[]
Individual SKU-level variants of the product.
details
ProductDetailsView
Structured product attribute details.
audience
AudienceView | null
Intended target audience for the product.
identifiers
IdentifiersView
External product identifiers for cross-referencing with other systems.
breadcrumbs
BreadcrumbView[]
Navigation breadcrumb trail from the merchant’s site. Each item has name (string, required) and optional url (string).
promotions
PromotionView[]
Active promotions for this product. Each item has optional description (string) and code (string).
reviews
ReviewView[]
Customer reviews. Each item has optional author (string), rating (number), body (string), and publishedAt (datetime).
videos
VideoView[]
Associated product videos. Each item has optional url (string), thumbnailUrl (string), and name (string).
enrichment
ProductEnrichment | null
Octogen-generated enrichment metadata. Includes classification fields like type, gender, age_groups, color, color_family, category_path, and attributes, plus canonical_brand with brand-level intelligence data.

Example — MerchantProductView

{
  "uuid": "prod_01HX...",
  "productUrl": "https://warrenlotas.com/products/black-hoodie",
  "title": "Black Hoodie",
  "brand": {
    "name": "Warren Lotas",
    "slug": "warren-lotas",
    "url": null,
    "description": null
  },
  "currentPrice": 180,
  "originalPrice": null,
  "imageUrl": "https://cdn.example.com/black-hoodie.jpg",
  "images": ["https://cdn.example.com/black-hoodie.jpg"],
  "rating": null,
  "updatedAt": "2026-05-19T18:04:10Z",
  "description": "Heavyweight cotton hoodie with screen-printed graphics.",
  "inStock": true,
  "categories": [{"name": "Hoodies & Sweatshirts", "url": null}],
  "sizes": ["s", "m", "l", "xl"],
  "colors": [{"label": "Black", "hexCode": "#000000", "swatchUrl": null}],
  "tags": ["hoodie", "black", "graphic"],
  "variants": [
    {
      "sku": "WL-BH-001-M",
      "productUrl": null,
      "color": {"label": "Black", "hexCode": "#000000", "swatchUrl": null},
      "size": "m",
      "inStock": true,
      "imageUrl": null
    }
  ],
  "details": {
    "materials": ["100% heavyweight cotton"],
    "fit": ["oversized"],
    "dimensions": null,
    "patterns": ["graphic"]
  },
  "audience": {
    "genders": ["male", "unisex"],
    "ageGroups": ["adult"]
  },
  "identifiers": {
    "productId": "WL-BH-001",
    "gtin": null,
    "productGroupId": null
  },
  "breadcrumbs": [
    {"name": "Home", "url": "https://warrenlotas.com"},
    {"name": "Tops", "url": "https://warrenlotas.com/collections/tops"},
    {"name": "Black Hoodie", "url": null}
  ],
  "promotions": [],
  "reviews": [],
  "videos": [],
  "enrichment": null
}

SDK types

# octogen_ai_sdk.models
class MerchantProductListItem(_ResponseModel):
    uuid: str
    product_url: str           # JSON alias: "productUrl"
    title: str | None
    brand: BrandView | None
    current_price: float | None  # JSON alias: "currentPrice"
    original_price: float | None  # JSON alias: "originalPrice"
    image_url: str | None      # JSON alias: "imageUrl"
    images: list[str]
    rating: RatingView | None
    updated_at: datetime | None  # JSON alias: "updatedAt"

class MerchantProductView(MerchantProductListItem):
    description: str | None
    in_stock: bool | None      # JSON alias: "inStock"
    categories: list[CategoryView]
    sizes: list[str]
    colors: list[ColorView]
    tags: list[str]
    variants: list[MerchantVariantView]
    details: ProductDetailsView
    audience: AudienceView | None
    identifiers: IdentifiersView
    breadcrumbs: list[BreadcrumbView]
    promotions: list[PromotionView]
    reviews: list[ReviewView]
    videos: list[VideoView]
    enrichment: ProductEnrichment | None