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

# Popular Terms

> Returns the catalog's top popular or trending search terms, for a "popular searches" list on an empty search box.

The terms are precomputed for the catalog, so this endpoint does not take a query — it always returns the same ranked list, paged with `limit` and `skip`.

Before calling this endpoint, make sure you've generated an API token and picked the correct domain. See [Authentication & Base URLs](/api-reference/authbaseurl).

Use this to fill a "popular searches" list before the shopper types anything.


## OpenAPI

````yaml GET /discovery/search/popular-terms
openapi: 3.1.0
info:
  title: OpenAPI Plant Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://apis.experro.app
    description: Admin Server
  - url: https://{base-address}
    description: Custom Server
    variables:
      base-address:
        default: ''
        description: Enter your custom domain or server address.
security:
  - bearerAuth: []
paths:
  /discovery/search/popular-terms:
    get:
      summary: Get Popular Search Terms
      description: >-
        Returns the catalog's top popular or trending search terms, for a
        "popular searches" list on an empty search box.


        The terms are precomputed for the catalog, so this endpoint does not
        take a query — it always returns the same ranked list, paged with
        `limit` and `skip`.
      parameters:
        - $ref: '#/components/parameters/StorefrontTenantIdHeader'
        - $ref: '#/components/parameters/StorefrontWorkspaceIdHeader'
        - $ref: '#/components/parameters/StorefrontEnvironmentIdHeader'
        - name: catalog_id
          in: query
          description: >-
            The catalog to return popular terms for. Unlike most endpoints this
            is not validated as a UUID, but an unknown catalog returns 404.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: How many terms to return.
          schema:
            type: integer
            default: 5
        - name: skip
          in: query
          description: How many terms to skip before the first one returned.
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                description: Popular search terms, most popular first.
                items:
                  type: string
        '400':
          description: >-
            The request could not be parsed or validated. `Invalid Input` almost
            always means a request-body problem rather than a bad field value:


            - The `Content-Type` is missing or is not `application/json`.

            - The body was sent as form data instead of raw JSON.

            - The body is empty, or is not valid JSON.

            - An optional field was sent **blank rather than omitted** — for
            example `"sort_order": ""`, `"hero_variant_option_override": {}`, or
            `"filters": [{}]`. Omit a field you are not using, or send `null` or
            `[]`; an empty string or empty object is rejected.

            - A numeric field was sent as a string, such as `"limit": "24"`
            instead of `"limit": 24`.


            A missing required query parameter returns a more specific message,
            for example `Query deserialize error: missing field \`catalog_id\``.
        '404':
          description: >-
            The catalog was not found. This endpoint resolves the catalog from
            the `x-tenant-id`, `x-workspace-id`, and `x-environment-id` headers,
            so a missing or mismatched header also returns `Catalog not found`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: An unexpected error occurred on the server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security: []
      servers:
        - url: https://{base-address}
          description: Custom Server
          variables:
            base-address:
              default: ''
              description: Enter your custom domain or server address.
components:
  parameters:
    StorefrontTenantIdHeader:
      name: x-tenant-id
      in: header
      required: true
      schema:
        type: string
      description: Identifies your organization. Ensures data isolation per tenant.
    StorefrontWorkspaceIdHeader:
      name: x-workspace-id
      in: header
      required: true
      schema:
        type: string
      description: >-
        Identifies the workspace within your organization. Scopes resources to a
        specific workspace.
    StorefrontEnvironmentIdHeader:
      name: x-environment-id
      in: header
      required: true
      schema:
        type: string
      description: >-
        Identifies the environment you are targeting. Scopes the call to a
        specific deployment environment.
  schemas:
    Error404:
      type: object
      properties:
        Status:
          type: string
          example: failure
        Error:
          type: object
          properties:
            message:
              type: string
            name:
              type: string
            code:
              type: string
          required:
            - message
            - name
      required:
        - Status
        - Error
    Error500:
      type: object
      properties:
        Status:
          type: string
          example: failure
        Error:
          type: object
          properties:
            message:
              type: string
            name:
              type: string
            code:
              type: string
          required:
            - message
            - name
      required:
        - Status
        - Error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````