> ## Documentation Index
> Fetch the complete documentation index at: https://docs.preezie.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get product highlights

> Retrieve generated selling points for a product.

Retrieve concise, pre-generated selling points for a product detail page. Highlight content is scoped to the catalogue selected by the `Tenantid` header.

This endpoint does not require a Core Intent operation token.

## Request example

```bash theme={null}
curl --request GET \
  "$PREEZIE_API_URL/api/highlights/product-123" \
  --header "Tenantid: $PREEZIE_TENANT_ID"
```

Use the exact product identifier from your preezie catalogue. URL-encode the identifier when it contains characters that are not safe in a URL path.

## Response

The endpoint returns a JSON object containing the generated highlights and their most recent generation time:

```json theme={null}
{
  "highlights": [
    "Waterproof shell for wet-weather protection",
    "Lightweight design for comfortable everyday wear",
    "Adjustable hood and cuffs for a personalised fit"
  ],
  "highlightsGeneratedAt": "2026-08-05T09:32:00Z"
}
```

| Field                   | Description                                                         |
| ----------------------- | ------------------------------------------------------------------- |
| `highlights`            | Array of generated product selling points.                          |
| `highlightsGeneratedAt` | UTC date and time when the highlights were most recently generated. |

## Content not available

A successful request returns `200 OK` even when highlight content has not been generated for the product:

```json theme={null}
{
  "highlights": [],
  "highlightsGeneratedAt": null
}
```

Treat an empty array as content unavailable and render your product page without the highlights section. It is not necessary to show an error to the shopper.

<Note>
  Highlights are generated ahead of time. This endpoint retrieves stored content and does not start content generation.
</Note>

To generate this content for a catalogue, see [Configure FAQ and Highlights jobs](/guides/configure-faq-highlights-jobs).


## OpenAPI

````yaml openapi/preezie-api.json GET /api/highlights/{productId}
openapi: 3.1.0
info:
  title: preezie API
  version: 0.1.0
  description: >-
    API reference for product discovery operations and generated product-page
    content. Core Intent responses are streamed as server-sent events (SSE); FAQ
    and Highlights responses use JSON.
servers: []
security: []
tags:
  - name: Core intents
    description: >-
      Run a specific product-discovery intent without sending an intent value in
      the request body.
  - name: Product content
    description: Retrieve generated product FAQs and highlights for product detail pages.
paths:
  /api/highlights/{productId}:
    get:
      tags:
        - Product content
      summary: Get product highlights
      description: >-
        Returns concise generated selling points for a product in the tenant's
        catalogue. If no generated highlight content exists, the endpoint
        returns an empty `highlights` array and a null `highlightsGeneratedAt`
        value.
      operationId: getProductHighlights
      parameters:
        - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          description: The generated highlights for the product.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HighlightsResponse'
              example:
                highlights:
                  - Waterproof shell for wet-weather protection
                  - Lightweight design for comfortable everyday wear
                highlightsGeneratedAt: '2026-08-05T09:32:00Z'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/TenantNotFound'
      security:
        - tenantId: []
components:
  parameters:
    ProductId:
      name: productId
      in: path
      required: true
      description: The product identifier used in the tenant's catalogue.
      schema:
        type: string
      example: product-123
  schemas:
    HighlightsResponse:
      type: object
      required:
        - highlights
      properties:
        highlights:
          type: array
          description: >-
            Generated product selling points. The array is empty when content is
            unavailable.
          items:
            type: string
        highlightsGeneratedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            UTC timestamp for the most recent highlights generation, or null
            when content has not been generated.
  responses:
    Forbidden:
      description: >-
        The `Tenantid` header is missing, the tenant is inactive, or the tenant
        has exceeded its usage allowance.
      content:
        text/plain:
          schema:
            type: string
          example: Tenant ID Invalid.
    TenantNotFound:
      description: No tenant exists for the supplied `Tenantid` value.
      content:
        text/plain:
          schema:
            type: string
          example: 'Tenant tenant-123 not found #000'
  securitySchemes:
    tenantId:
      type: apiKey
      in: header
      name: Tenantid
      description: >-
        The preezie tenant identifier. This value identifies the catalogue and
        is not a secret.

````