---
title: "Retrieve groups"
method: GET
path: "/browse/groups"
tags: ["Browse groups"]
---

# Retrieve groups

`GET /browse/groups`

Retrieve groups for end users.

## Query parameters

- `key` string, required — The key of the index to use.
- `section` string — The section of the index to use. Defaults to `Products`.
- `filters` GroupFilters
  - `group_id` string[], required
- `now` string, date-time — A date time representing the current moment in time when applying filtering by product age. Used to emulate "past/future" requests. Requires authentication.
- `fmt_options` GroupFmtOptions
  - `groups_max_depth` integer — The maximum depth of the group hierarchy in the response.
  - `groups_start` string — A flag to specify the start of the group hierarchy returned in the response. `current` returns groups starting from the currently selected one. `top` returns groups starting from the root category in the hierarchy. `group_id:{id}`, returns the whole tree starting from group with the provided ID.
- `origin_referrer` string — The url or app location where the request originated.
- `c` string — The ID of the client and version that the request is coming from, such as `cio-js-2.90`.
- `us` string[] — A customer defined context (such as `vip-club-member`) used to evaluate redirect or refined tag rules. Pass multiple segments by passing multiple `us` arguments.
- `ui` string — A customer generated anonymized identifier for a user on a customer website. It should only be sent for logged in customers and helps Constructor to tie multiple client and session IDs together to form a behavioral data profile across devices.
- `s` integer — An integer representing the users session number (starting with `1`), incremented after a 30 minute period of inactivity.
- `i` string — A globally unique identifier for the user browser (or mobile application instance) making the request.

## Response `200`

OK

- BrowseGroupsGetResponse
  - `request` object, required — The request arguments how they were interpreted by the API. This field is of arbitrary type, ie it doesn't have a guaranteed schema, and data from it shouldn't be used programmatically, it is for debugging purposes only.
  - `result_id` string
  - `response` BrowseGroupsResponse, required
    - `result_sources` ResultSources, required
      - `token_match` ResultSourceValue, required
        - `count` integer, required — Number of results returned from their respective sources
      - `embeddings_match` ResultSourceValue, required
        - `count` integer, required — Number of results returned from their respective sources
    - `groups` Group[] — An array of groups within the section.
      - `group_id` string, required — The ID of the group.
      - `display_name` string — The name of the group as it is displayed to end users.
      - `count` integer, required — The number of results within this group.
      - `data` object — Object containing custom data associated with this group.
      - `children` object[], required — An array of groups that are 'children' of the group in question.
      - `parents` GroupBase[], required — An array of groups that are 'parents' of the group in question.
        - `group_id` string, required — The ID of the group.
        - `display_name` string — The name of the group as it is displayed to end users.
    - `refined_content` object[], required — Arbitrary content attached to the search query via [content rule](#). Constructor doesn't enforce any restrictions on the attached data except for a size limit of 200kB, and just returns it as-is when there is a query match. There can be several rules attached to the same query, so the `refined_content` itself is an array of objects.

## Other responses

- `400` — Validation Error

---

[API](https://skmtc.dev/constructor/apis/autocomplete.md) · [All operations](https://skmtc.dev/constructor/apis/autocomplete/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/constructor/autocomplete/revisions/2d33330633b6/schema)
