---
title: "Generated SEO term list (SA-0137 B1)"
method: GET
path: "/api/v1/public/catalog/seo-terms"
tags: ["SeoTerms"]
---

# Generated SEO term list (SA-0137 B1)

`GET /api/v1/public/catalog/seo-terms`

## Request

- Base URL: `https://api.shelfatlas.com`
- URL: `https://api.shelfatlas.com/api/v1/public/catalog/seo-terms`
- Auth: none required

The daily-refreshed list of SEO terms derived from currently-active campaign offers, backing Sparekurven's `/tilbud/<term>` pages. Unauthenticated like `/stats`: bounded by a per-IP rate limit and a CDN cache (`Cache-Control: public, s-maxage=3600, stale-while-revalidate=86400`).

## Query parameters

- `min_offers` integer
- `min_chains` integer
- `limit` integer

## Response `200`

Terms meeting the thresholds, ordered by offers_7d desc.

- object
  - `ok` true, required
  - `data` SeoTerm[], required
    - `slug` string, required: URL-safe identifier, e.g. `pepsi-max`.
    - `term` string, required: Display form, e.g. "Pepsi Max".
    - `query` string, required: Lowercase search text to feed `offers.search({ q })`.
    - `offers_7d` integer, required: Active campaign offers behind this term at the last refresh.
    - `chains_7d` integer, required: Distinct chains carrying an offer behind this term.
    - `chain_offers` object[], nullable, required: Per-chain breakdown of the offers behind this term, ordered offers desc then chain_slug asc; the offers sum to `offers_7d` and the length is `chains_7d`. Campaign offers are chain-level, so a consumer sums the chains near a place to size a place × term page. null until the term's first refresh after this field was added.
      - `chain_slug` string, required: Chain slug, as in `/chains` and `/stores/nearest`, e.g. `netto`.
      - `offers` integer, required: Active campaign offers from this chain behind the term.
    - `last_seen` string, date-time, required: When this term last met the thresholds.

## Other responses

- `400`: Invalid parameters (`invalid_params`, `incompatible_params`).
- `429`: Rate limit or monthly limit reached (`rate_limited` / `monthly_limit_reached`).

---

[API](https://skmtc.dev/shelfatlas/apis/shelfatlas-catalog-api.md) · [All operations](https://skmtc.dev/shelfatlas/apis/shelfatlas-catalog-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shelfatlas/apis/shelfatlas-catalog-api/revisions/943a8773856b?raw)
