---
title: "Retrieve by pod"
method: GET
path: "/recommendations/v1/pods/{pod_id}"
tags: ["Recommendation results"]
---

# Retrieve by pod

`GET /recommendations/v1/pods/{pod_id}`

Retrieve AI optimized recommendation results for products (or optionally other sections) by pod identifier. To learn more about pods, go [here](/docs/products-recommendations-learn-about-recommendations#pods).

## Path parameters

- `pod_id` string, required

## Query parameters

- `key` string, required — The key of the index to use.
- `section` string — The section of the index to use. Defaults to `Products`.
- `item_id` union — The ID of the item to recommend additional items for. This parameter is required for the following recommendation strategies * `alternative_items` * `complementary_items` * `bundles`
  - string
  - string[]
- `variation_id` union — The ID of the item variation to recommend additional items for. This parameter can be used with exactly one item_id specified in the request and is not required.
  - string
  - string[]
- `term` string — The term to recommend items for. This parameter is required for the following recommendation strategies * `query_recommendations`
- `filters` Filters
- `filter_match_types` object — An object specifying whether results must match `all`, `any` or `none` of a given filter when multiple options of the same facet (e.g: color: yellow & blue) are selected.
- `pre_filter_expression` union
  - object
  - string, json
- `num_results` integer — The maximum number of recommended items to retrieve
- `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.
- `variations_map` VariationsMap
  - `filter_by` union
    - VariationsMapRange
      - `field` string, required — Path to a metadata field (dot-separated)
      - `range` union[], required — This filter matches items where the specified field is within the specified range (min and max). The values are inclusive. Use "inf" for an unbounded upper limit or "-inf" for an unbounded lower limit.
        - union
          - 'inf' | '-inf'
          - integer
          - number
    - VariationsMapSingleFilter
      - `field` string, required — Path to a metadata field (dot-separated)
      - `value` union, required — The value of this field to filter by
        - boolean
        - integer
        - number
        - string
    - VariationsMapOr
      - `or_` array[], required
        - unknown[]
          - unknown
    - VariationsMapAnd
      - `and_` array[], required
        - unknown[]
          - unknown
    - VariationsMapNot
      - `not_` object, required
  - `group_by` VariationsMapGrouping[] — An array of fields that should be used to group variations. Variations which share the value of all fields specified here will all fall under one group
    - `name` string, required
    - `field` string, required
  - `values` object, required — A set of aggregations that should be applied to each variation group. The object keys specify the name of the field under which each aggregated value will be returned in the response
  - `dtype` 'array' | 'object', required — The expected data type of the variations_map objects in the response
- `fmt_options` FmtOptions — Options to format different aspects of the response.
  - `fields` string[] — A list of specific item fields to return in the response. Allows the request to control which fields are returned.
  - `show_hidden_fields` boolean — A flag to return all `hidden` fields in the response.
  - `hidden_fields` string[] — A list of specific hidden fields to return in the response. Unlike `show_hidden_fields` this parameter allows the request to control which `hidden` fields are returned. Used to return item fields for a particular store or user segment.
  - `variations_return_type` 'default' | 'all' | 'matched'
  - `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.
  - `groups_path` string[] — Specifies the path from the root group to the current group you are browsing. It is used to construct the parents path in the `response.groups` for the current browsed group. Max depth allowed for the path is 10. This option is only accepted when `groups_start` is 'current'.
  - `groups_sort_by` 'relevance' | 'value' | 'num_matches'
  - `groups_sort_order` 'ascending' | 'descending'
  - `show_hidden_facets` boolean — A flag to return all facets configured as `hidden` in `response.facets`.
  - `hidden_facets` string[] — A list of specific hidden facets to return in the response. Unlike `show_hidden_facets` this parameter allows the request to control which hidden facets are returned. Used to return facets for a particular store or user segment.
  - `show_hidden_facet_options` boolean — A flag to return all `hidden` facets options in the response.
  - `show_protected_facets` boolean — A flag to return all `protected` facets in the response. Requires authentication.
  - `facet_options` object — A list of specific facet options per facet to return in the response. This parameter accepts up to 5 facets and works only with facets of type `multiple`. Invalid facet options will be ignored. Used to return facet options for a particular facet like store or user segment.
  - `facet_groups_limit` integer — The maximum limit of the facet groups returned in the response.
  - `show_hidden_sort_options` boolean — A flag to return all sort options configured as `hidden` in `response.sort_options`.
  - `hidden_sort_options` string[] — A list of `sort_by` fields whose hidden sort options should be included in the response. Unlike `show_hidden_sort_options` this parameter allows you to specify exactly which hidden sort options are returned.
- `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[] — User segment is a client context value (such as platform, location, etc.) that is used to evaluate redirect or refined tag rules. You can supply 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. At least one of the parameters `i` or `ui` is required for the following recommendation strategies * `recently_viewed_items` * `user_featured_items` * `abandoned_in_cart`
- `s` integer — An integer representing the users session number (starting with `1`), incremented after a 30 minute period of inactivity.
- `sl` object — SL data
- `i` string — A globally unique identifier for the user browser (or mobile application instance) making the request. At least one of the parameters `i` or `ui` is required for the following recommendation strategies * `recently_viewed_items` * `user_featured_items` * `abandoned_in_cart`
- `q` string — **DEPRECATED. Please, use `term` instead**

## Response `200`

OK

- RecommendationsPodsGetResponse
  - `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` PodEndpointResponseField, required
    - `results` ResultField[], required
      - `data` DataField, required
        - `id` string, required
        - `variation_id` string
      - `value` string, required
      - `is_slotted` boolean, required
      - `labels` object
      - `strategy` StrategyField
        - `id` string, required
        - `type` string
    - `total_num_results` integer, required
    - `pod` PodField, required
      - `id` string, required
      - `display_name` string, required
      - `channels` string[]

## Other responses

- `400` — Validation Error
- `404` — Not Found

---

[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)
