---
title: "GetStats"
method: GET
path: "/api/products/stats"
---

# GetStats

`GET /api/products/stats`

## Request

- Base URL: `https://api.caddence.golf`
- URL: `https://api.caddence.golf/api/products/stats`
- Auth: none declared

## Response `200`

Request fulfilled, document follows

- ModelsStatsResponse
  - `total_products` integer, required
  - `latest_content_change` string, nullable: ISO date of the newest products.content_changed_on (migration 062): the sitemap index lastmod and the fallback for catalogue-wide pages
  - `retailers` string[], required
  - `brands` string[], required
  - `brand_counts` object: Product count per brand (accurate, for directory counts)
  - `directory_brands` string[]: Brands that meet the directory threshold (settings.brand_directory_min_products). /brands tiles and the brands sitemap use this; `brands` stays complete for filters and brand-page slug resolution.
  - `product_types` string[], required
  - `hands` string[]: Available hand options
  - `conditions` string[]: Available condition values
  - `flexes` string[]: Available flex values
  - `colors` string[]: Available color values
  - `lofts_by_type` object: Available loft angles by product type
  - `price_range` object, required
  - `enrichment` EnrichmentStats
    - `total_enriched` integer, required: Products with any enrichment data
    - `with_specs` integer, required: Products with specs
    - `with_editorial` integer, required: Products with editorial content
    - `by_source` object: Enriched product count per source
    - `by_type` object: Enriched product count per product type
    - `coverage_pct` number, required: Percentage of products with enrichment

---

[API](https://skmtc.dev/caddence/apis/golf-product-api.md) · [All operations](https://skmtc.dev/caddence/apis/golf-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/caddence/apis/golf-product-api/revisions/adef6c56f7c0?raw)
