# Create a recommendation campaign

- Operation ID: `CreateRecommendationCampaignV2`
- HTTP method: `POST`
- Path: `/recommendations/v2/campaigns`
- [Human-readable API reference](https://hub.synerise.com/api-reference/campaigns#operation/CreateRecommendationCampaignV2)

## Self-contained OpenAPI method

The fenced document below contains this method's documentation and all of its local references. It is self-contained; no category or master specification fetch is required.

```yaml
openapi: 3.0.0
info:
  title: Synerise Public API
  version: 1.9.1
paths:
  /recommendations/v2/campaigns:
    post:
      summary: Create a recommendation campaign
      description: |
        Create a new recommendation campaign.

        ---

        **API consumers:** <a href="/api-reference/authorization?tag=Authorization&amp;operationId=profileLogin" target="_blank" rel="noopener">Workspace (Business Profile)</a>, <a href="/api-reference/authorization?tag=Authorization&amp;operationId=userLogin" target="_blank" rel="noopener">Synerise User</a>

        **API key permission required:** `RECOMMENDATIONS_V2_CAMPAIGN_CREATE`

        **User role permission required:** `campaigns_recommendations: create`
      operationId: CreateRecommendationCampaignV2
      tags:
        - Recommendation campaigns
      security:
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - title: Similar
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - similar
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Top items
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - metrics
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                              required:
                                - sortMetric
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Cross-sell
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - cross-sell
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Complementary
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - set-complement
                        parameters:
                          allOf:
                            - type: object
                              description: Parameters that apply to this campaign
                              properties:
                                additionalResponseAttributes:
                                  type: array
                                  items:
                                    type: string
                                  description: An array of additional response attributes.
                            - type: object
                              properties:
                                itemSimilarity:
                                  type: integer
                                  minimum: 0
                                  maximum: 5
                                  description: Similarity between items in the cart and the recommended items. Higher values decrease the similarity.
                                recommendationVariety:
                                  type: number
                                  format: float
                                  minimum: 0
                                  maximum: 0.9
                                  description: Similarity between recommended items - higher values will result in more variety within the recommended item set.
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Last viewed
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - last-viewed
                        parameters:
                          allOf:
                            - type: object
                              description: Parameters that apply to this campaign
                              properties:
                                additionalResponseAttributes:
                                  type: array
                                  items:
                                    type: string
                                  description: An array of additional response attributes.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Personalized
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - personalized
                        parameters:
                          type: object
                          description: Parameters that apply to this campaign
                          properties:
                            additionalResponseAttributes:
                              type: array
                              items:
                                type: string
                              description: An array of additional response attributes.
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Visually similar
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - visually-similar
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Comparison
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - item-comparison
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Recent interactions
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - recent-interactions
                        parameters:
                          allOf:
                            - type: object
                              description: Parameters that apply to this campaign
                              properties:
                                additionalResponseAttributes:
                                  type: array
                                  items:
                                    type: string
                                  description: An array of additional response attributes.
                            - type: object
                              properties:
                                aggregateId:
                                  type: string
                                  description: Id of the aggregate which provides events as a base of recommendations.
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Section
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - section
                        parameters:
                          allOf:
                            - type: object
                              description: Parameters that apply to this campaign
                              properties:
                                additionalResponseAttributes:
                                  type: array
                                  items:
                                    type: string
                                  description: An array of additional response attributes.
                            - type: object
                              properties:
                                metadataCatalogId:
                                  type: string
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Attribute
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - attribute
                        parameters:
                          allOf:
                            - type: object
                              description: Parameters that apply to this campaign
                              properties:
                                additionalResponseAttributes:
                                  type: array
                                  items:
                                    type: string
                                  description: An array of additional response attributes.
                            - type: object
                              properties:
                                metadataCatalogId:
                                  type: string
                                  description: The id of catalog containing attributes metadata.
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: External items
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - external-items
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
                - title: Next interaction
                  allOf:
                    - type: object
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          description: Campaign type
                          enum:
                            - next-interaction
                        parameters:
                          allOf:
                            - allOf:
                                - type: object
                                  description: Parameters that apply to this campaign
                                  properties:
                                    additionalResponseAttributes:
                                      type: array
                                      items:
                                        type: string
                                      description: An array of additional response attributes.
                                - type: object
                                  properties:
                                    boostMetric:
                                      type: string
                                      description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                    sortMetric:
                                      type: string
                                      description: ID of the metric to sort the results by.
                                    boostMetricStrength:
                                      type: number
                                      description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                      format: float
                                      minimum: -100
                                      maximum: 100
                                    shuffleNumItems:
                                      type: integer
                                      description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                            - type: object
                              properties:
                                personalizedBoostingStrength:
                                  type: number
                                  description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 100
                                  default: 0
                    - type: object
                      properties:
                        title:
                          type: string
                          description: Campaign title
                        slug:
                          type: string
                          description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                        description:
                          type: string
                          description: Campaign description
                        startDate:
                          type: string
                          description: Start date for the campaign
                        endDate:
                          type: string
                          description: End date for the campaign
                        state:
                          type: string
                          description: Campaign status
                          enum:
                            - draft
                            - active
                            - paused
                            - deleted
                        filterRules:
                          type: object
                          description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                          properties:
                            excludePurchasedItems:
                              type: boolean
                              description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                            excludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                            elasticExcludePurchasedItems:
                              type: boolean
                              description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                            elasticExcludePurchasedItemsSinceDays:
                              type: number
                              format: integer
                              description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                        itemsCatalogId:
                          type: string
                          description: Only items from this catalog will be recommended.
                        slots:
                          type: array
                          minItems: 1
                          description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                          items:
                            type: object
                            description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                            properties:
                              name:
                                type: string
                                description: Slot name
                              itemMin:
                                type: integer
                                description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                              itemMax:
                                type: integer
                                description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                              filterRules:
                                type: object
                                description: Filters that apply to this campaign
                                properties:
                                  filters:
                                    type: string
                                    description: Filtering string
                                  elasticFilters:
                                    type: string
                                    description: Filtering string for Elastic filter
                              distinctFilter:
                                type: object
                                description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                properties:
                                  elastic:
                                    type: boolean
                                    description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                  filters:
                                    type: array
                                    minItems: 1
                                    maxItems: 5
                                    description: Array of distinct filters
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                          description: Attribute name
                                        maxNumItems:
                                          type: number
                                          format: integer
                                          description: Max number of items with the same value of the attribute
                                        levelRangeModifier:
                                          type: number
                                          format: integer
                                          description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                      required:
                                        - field
                                        - maxNumItems
                                required:
                                  - elastic
                                  - filters
                              attribute:
                                type: object
                                description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                properties:
                                  name:
                                    description: Name of attribute for rows grouping.
                                    type: string
                                  levelRangeModifier:
                                    description: Restricts the range of products in recommendations to a particular attribute level.
                                    type: integer
                              numRows:
                                type: integer
                                description: The number of rows in the section recommendation campaign.
                              numItems:
                                type: integer
                                description: The number of products in each row in the section recommendation campaign.
                              useDefaultDistinctFilters:
                                type: boolean
                                description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                              useDefaultItemFilters:
                                type: boolean
                                description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                            required:
                              - name
                        keepSlotsOrder:
                          type: boolean
                          default: true
                          description: |
                            - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                            - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                            The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        personalizeSlotsOrder:
                          type: boolean
                          default: false
                          description: |
                            Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                            If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                        boostingStrategies:
                          type: array
                          description: Recommendation boosting strategies
                          items:
                            type: object
                            description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                            properties:
                              name:
                                type: string
                                description: Boosting strategy name
                              condition:
                                type: string
                                description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                              strength:
                                type: number
                                description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                format: float
                                minimum: 0
                                maximum: 2
                                default: 1
                            required:
                              - name
                              - condition
                              - strength
                        itemsSource:
                          type: object
                          description: |
                            The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                            The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                            Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                          properties:
                            type:
                              type: string
                              enum:
                                - aggregate
                                - expression
                              description: |
                                Type of the source of item ID or IDs for the recommendation context. 

                                If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                            id:
                              type: string
                              description: |
                                ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                      required:
                        - title
                        - type
                        - itemsCatalogId
                        - slots
        description: All the details of a campaign
        required: true
      responses:
        "200":
          description: OK campaign has been returned
          content:
            application/json:
              schema:
                title: Campaign definition
                oneOf:
                  - title: Similar
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - similar
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Top items
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - metrics
                          parameters:
                            allOf:
                              - allOf:
                                  - type: object
                                    description: Parameters that apply to this campaign
                                    properties:
                                      additionalResponseAttributes:
                                        type: array
                                        items:
                                          type: string
                                        description: An array of additional response attributes.
                                  - type: object
                                    properties:
                                      boostMetric:
                                        type: string
                                        description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                      sortMetric:
                                        type: string
                                        description: ID of the metric to sort the results by.
                                      boostMetricStrength:
                                        type: number
                                        description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                        format: float
                                        minimum: -100
                                        maximum: 100
                                      shuffleNumItems:
                                        type: integer
                                        description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                              - type: object
                                properties:
                                  personalizedBoostingStrength:
                                    type: number
                                    description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: 0
                                    maximum: 100
                                    default: 0
                                required:
                                  - sortMetric
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Cross-sell
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - cross-sell
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Complementary
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - set-complement
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  itemSimilarity:
                                    type: integer
                                    minimum: 0
                                    maximum: 5
                                    description: Similarity between items in the cart and the recommended items. Higher values decrease the similarity.
                                  recommendationVariety:
                                    type: number
                                    format: float
                                    minimum: 0
                                    maximum: 0.9
                                    description: Similarity between recommended items - higher values will result in more variety within the recommended item set.
                                  personalizedBoostingStrength:
                                    type: number
                                    description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: 0
                                    maximum: 100
                                    default: 0
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Last viewed
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - last-viewed
                          parameters:
                            type: object
                            description: Parameters that apply to this campaign
                            properties:
                              additionalResponseAttributes:
                                type: array
                                items:
                                  type: string
                                description: An array of additional response attributes.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Personalized
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - personalized
                          parameters:
                            type: object
                            description: Parameters that apply to this campaign
                            properties:
                              additionalResponseAttributes:
                                type: array
                                items:
                                  type: string
                                description: An array of additional response attributes.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Visually similar
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - visually-similar
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Comparison
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - item-comparison
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Recent interactions
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - recent-interactions
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  aggregateId:
                                    type: string
                                    description: Id of the aggregate which provides events as a base of recommendations.
                                  personalizedBoostingStrength:
                                    type: number
                                    description: How much influence the personalized scoring has. Greater values allow you to promote items that have high personalized score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: 0
                                    maximum: 100
                                    default: 0
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Section
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - section
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  metadataCatalogId:
                                    type: string
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Attribute
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - attribute
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  metadataCatalogId:
                                    type: string
                                    description: The id of catalog containing attributes metadata.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: Next interaction
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - next-interaction
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                  - title: External items
                    allOf:
                      - type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            description: Campaign type
                            enum:
                              - external-items
                          parameters:
                            allOf:
                              - type: object
                                description: Parameters that apply to this campaign
                                properties:
                                  additionalResponseAttributes:
                                    type: array
                                    items:
                                      type: string
                                    description: An array of additional response attributes.
                              - type: object
                                properties:
                                  boostMetric:
                                    type: string
                                    description: ID of the metric to boost the results by. Metric scores will be combined with recommendation scores, favoring the best-performing results.
                                  sortMetric:
                                    type: string
                                    description: ID of the metric to sort the results by.
                                  boostMetricStrength:
                                    type: number
                                    description: How much influence the `boostMetric` has. Values less than 0 allow you to demote items that have high metric score, values greater than 0 allow you to promote items that have high metric score. A strength with a value of 0 does not change the scoring.
                                    format: float
                                    minimum: -100
                                    maximum: 100
                                  shuffleNumItems:
                                    type: integer
                                    description: When this parameter is provided, this many best item recommendations are provided. A number of them, no more than the value of `itemMax`, are chosen randomly for recommendation.
                      - type: object
                        properties:
                          campaignId:
                            type: string
                            description: Campaign ID
                          title:
                            type: string
                            description: Campaign title
                          slug:
                            type: string
                            description: Unique identifier of the campaign. Can be used for fetching campaigns instead of the ID. Create meaningful, human-readable slugs for easier work with recommendation campaigns.
                          description:
                            type: string
                            description: Campaign description
                          startDate:
                            type: string
                            description: Start date for the campaign
                          endDate:
                            type: string
                            description: End date for the campaign
                          createdAt:
                            type: string
                            description: Date when the campaign was created
                          updatedAt:
                            type: string
                            description: Date when the campaign was last updated
                          state:
                            type: string
                            description: Campaign status
                            enum:
                              - draft
                              - active
                              - paused
                              - deleted
                          filterRules:
                            type: object
                            description: Filters that apply to this campaign. If the filters contain an attribute used in the default filters of the recommendation model ([**Settings > AI Configuration**](https://help.synerise.com/docs/settings/configuration/ai-engine-configuration/engine-configuration-for-recommendations/#selecting-recommendation-types-and-default-filters)), that default filter is ignored.
                            properties:
                              excludePurchasedItems:
                                type: boolean
                                description: When true, the recommendation results will include only items that the profile hasn't purchased before.
                              excludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: Limits the application of the `excludePurchasedItems` filter to a specified number of days.
                              elasticExcludePurchasedItems:
                                type: boolean
                                description: This is a setting for Elastic filters.<br>When true, the recommendation results will include only items that the profile hasn't purchased before.
                              elasticExcludePurchasedItemsSinceDays:
                                type: number
                                format: integer
                                description: This is a setting for Elastic filters.<br>Limits the application of the `elasticExcludePurchasedItemsSinceDays` filter to a specified number of days.
                          itemsCatalogId:
                            type: string
                            description: Only items from this catalog will be recommended.
                          additionalResponseAttributes:
                            type: array
                            description: An array of addtional response attributes.
                            items:
                              type: string
                          slots:
                            type: array
                            minItems: 1
                            description: Recommendation slots. Must contain at least one slot with a non-empty `name`.
                            items:
                              type: object
                              description: Slot allows you to define a separate recommendation frame with its filters and other parameters
                              properties:
                                name:
                                  type: string
                                  description: Slot name
                                itemMin:
                                  type: integer
                                  description: The minimal number of items in the campaign or the minimal number of attribute values in the attribute recommendation campaign.
                                itemMax:
                                  type: integer
                                  description: The maximal number of items in the campaign or the maximal number of attribute values in the attribute recommendation campaign.
                                filterRules:
                                  type: object
                                  description: Filters that apply to this campaign
                                  properties:
                                    filters:
                                      type: string
                                      description: Filtering string
                                    elasticFilters:
                                      type: string
                                      description: Filtering string for Elastic filter
                                distinctFilter:
                                  type: object
                                  description: Distinct filter allows to specify how many recommended items can have the same value of specified attributes.
                                  properties:
                                    elastic:
                                      type: boolean
                                      description: It allows to complete the recommended items with items which don't meet the distinct filter criteria.
                                    filters:
                                      type: array
                                      minItems: 1
                                      maxItems: 5
                                      description: Array of distinct filters
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                            description: Attribute name
                                          maxNumItems:
                                            type: number
                                            format: integer
                                            description: Max number of items with the same value of the attribute
                                          levelRangeModifier:
                                            type: number
                                            format: integer
                                            description: Parameter used (for the `category` field) to specify how many categories to cut off from the end
                                        required:
                                          - field
                                          - maxNumItems
                                  required:
                                    - elastic
                                    - filters
                                attribute:
                                  type: object
                                  description: The attribute for rows grouping in the section and attribute recommendation campaign.
                                  properties:
                                    name:
                                      description: Name of attribute for rows grouping.
                                      type: string
                                    levelRangeModifier:
                                      description: Restricts the range of products in recommendations to a particular attribute level.
                                      type: integer
                                numRows:
                                  type: integer
                                  description: The number of rows in the section recommendation campaign.
                                numItems:
                                  type: integer
                                  description: The number of products in each row in the section recommendation campaign.
                                useDefaultDistinctFilters:
                                  type: boolean
                                  description: Specify if slot should override distinctFilter and use defaultDistinctFiltersConfiguration specified for the feed instead.
                                useDefaultItemFilters:
                                  type: boolean
                                  description: Specify if slot should override item filters and use defaultItemFilters specified for the feed instead.
                              required:
                                - name
                          keepSlotsOrder:
                            type: boolean
                            default: true
                            description: |
                              - When `true`, the `data` array in the response is sorted according to slots. Within each slot, the items are sorted by their score (default) or metric (if selected). For example, if you have 3 slots of 2 items each, the first 2 items in `data` are from the first slot, the second 2 are from the second slot, and the last 2 are from the third slot.
                              - When `false`, the `data` array in the response is sorted only according to score (default) or metric (if selected). Slots have no effect.

                              The additional `extras.slots` object always shows slots and items as if this setting was `true`.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          personalizeSlotsOrder:
                            type: boolean
                            default: false
                            description: |
                              Sort the slots by average personalized slot score. This parameter applies only to personalized and attribute recommendation campaigns.

                              If you want to set `personalizeSlotsOrder` to `true`, `keepSlotsOrder` must also be `true`.
                          boostingStrategies:
                            type: array
                            description: Recommendation boosting strategies
                            items:
                              type: object
                              description: Boosting strategy allows you to promote or demote specific types of products in recommendation scoring
                              properties:
                                name:
                                  type: string
                                  description: Boosting strategy name
                                condition:
                                  type: string
                                  description: The condition that indicates on which items the boost will be performed. The condition must comply with the rules of creating filters.
                                strength:
                                  type: number
                                  description: How much influence the strategy has. Values less than 1.0 allow you to degrade items that meet the condition, values greater than 1.0 allow you to promote items that meet the condition. A strength with a value of 1.0 does not change the scoring.
                                  format: float
                                  minimum: 0
                                  maximum: 2
                                  default: 1
                              required:
                                - name
                                - condition
                                - strength
                          itemsSource:
                            type: object
                            description: |
                              The source of item ID or IDs for the recommendation context. This parameter can be passed in all recommendations. In recommendations which don't use item context as part of the recommendation model, the context item can be used only to create filters.

                              The item ID source (aggregate or expression) should return a string or an array of strings. If it returns numerical values, the recommendations engine attempts to convert them into strings while processing the request.

                              Alternatively, you can pass the `itemId` or `itemsSource` parameter when making a request to generate a recommendation from this campaign. The parameter overrides the settings defined here.
                            properties:
                              type:
                                type: string
                                enum:
                                  - aggregate
                                  - expression
                                description: |
                                  Type of the source of item ID or IDs for the recommendation context. 

                                  If the items' source type is 'aggregate', the aggregate result will be used as context items. If the items' source type is 'expression', the expression result will be used as context items.
                              id:
                                type: string
                                description: |
                                  ID of the items' source for the recommendation context. If the source's type is 'aggregate', this is the aggregate's ID. If the source's type is 'expression', this is the expression's ID.
                          abTest:
                            type: object
                            description: Information whether campaign is part of an a/b test
                            properties:
                              experimentId:
                                type: integer
                                description: Experiment ID
                              variantId:
                                type: integer
                                description: Variant ID
                              status:
                                type: string
                                enum:
                                  - NotStarted
                                  - Running
                                  - Paused
                                  - Finished
                                description: Status
                              isBaseline:
                                type: boolean
                                description: Information whether campaign is a baseline.
                          crossWorkspaceMode:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Specifies if campaign should support multibrand cross workspace segmentation.
                        required:
                          - title
                          - type
                          - startDate
                          - state
                          - itemsCatalogId
                discriminator:
                  propertyName: type
                  mapping:
                    similar: "#/components/schemas/recommendation-campaigns-SimilarRecommendationCampaignsDefinitionV2"
                    metrics: "#/components/schemas/recommendation-campaigns-MetricsRecommendationCampaignsDefinitionV2"
                    cross-sell: "#/components/schemas/recommendation-campaigns-CrossSellRecommendationCampaignsDefinitionV2"
                    set-complement: "#/components/schemas/recommendation-campaigns-SetComplementRecommendationCampaignsDefinitionV2"
                    last-viewed: "#/components/schemas/recommendation-campaigns-LastViewedRecommendationCampaignsDefinitionV2"
                    personalized: "#/components/schemas/recommendation-campaigns-PersonalizedRecommendationCampaignsDefinitionV2"
                    visually-similar: "#/components/schemas/recommendation-campaigns-VisuallySimilarRecommendationCampaignsDefinitionV2"
                    item-comparison: "#/components/schemas/recommendation-campaigns-ItemComparisonRecommendationCampaignsDefinitionV2"
                    recent-interactions: "#/components/schemas/recommendation-campaigns-RecentInteractionsRecommendationCampaignsDefinitionV2"
                    section: "#/components/schemas/recommendation-campaigns-SectionRecommendationCampaignsDefinitionV2"
                    attribute: "#/components/schemas/recommendation-campaigns-AttributeRecommendationCampaignsDefinitionV2"
                    next-interaction: "#/components/schemas/recommendation-campaigns-NextInteractionRecommendationCampaignsDefinitionV2"
                    external-items: "#/components/schemas/recommendation-campaigns-ExternalItemsRecommendationCampaignsDefinitionV2"
        "500":
          description: An error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  status:
                    type: integer
                    description: Status code
                  error:
                    type: string
                    description: Summary of the error
                  message:
                    type: string
                    description: Description of the problem
                  path:
                    type: string
                    description: URL of the requested resource
                required:
                  - timestamp
                  - status
                  - message
      x-snr-doc-urls:
        - /api-reference/ai-recommendations#tag/Recommendation-campaigns/operation/CreateRecommendationCampaignV2
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |-
            curl --request POST \
              --url https://api.synerise.com/recommendations/v2/campaigns \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
              --header 'content-type: application/json' \
              --data '{"type":"similar","parameters":{"additionalResponseAttributes":["string"],"boostMetric":"string","sortMetric":"string","boostMetricStrength":-100,"shuffleNumItems":0,"personalizedBoostingStrength":0},"title":"string","slug":"string","description":"string","startDate":"string","endDate":"string","state":"draft","filterRules":{"excludePurchasedItems":true,"excludePurchasedItemsSinceDays":0,"elasticExcludePurchasedItems":true,"elasticExcludePurchasedItemsSinceDays":0},"itemsCatalogId":"string","slots":[{"name":"string","itemMin":0,"itemMax":0,"filterRules":{"filters":"string","elasticFilters":"string"},"distinctFilter":{"elastic":true,"filters":[{"field":"string","maxNumItems":0,"levelRangeModifier":0}]},"attribute":{"name":"string","levelRangeModifier":0},"numRows":0,"numItems":0,"useDefaultDistinctFilters":true,"useDefaultItemFilters":true}],"keepSlotsOrder":true,"personalizeSlotsOrder":false,"boostingStrategies":[{"name":"string","condition":"string","strength":1}],"itemsSource":{"type":"aggregate","id":"string"}}'
        - lang: Python
          label: Python
          source: |-
            import http.client

            conn = http.client.HTTPSConnection("api.synerise.com")

            payload = "{\"type\":\"similar\",\"parameters\":{\"additionalResponseAttributes\":[\"string\"],\"boostMetric\":\"string\",\"sortMetric\":\"string\",\"boostMetricStrength\":-100,\"shuffleNumItems\":0,\"personalizedBoostingStrength\":0},\"title\":\"string\",\"slug\":\"string\",\"description\":\"string\",\"startDate\":\"string\",\"endDate\":\"string\",\"state\":\"draft\",\"filterRules\":{\"excludePurchasedItems\":true,\"excludePurchasedItemsSinceDays\":0,\"elasticExcludePurchasedItems\":true,\"elasticExcludePurchasedItemsSinceDays\":0},\"itemsCatalogId\":\"string\",\"slots\":[{\"name\":\"string\",\"itemMin\":0,\"itemMax\":0,\"filterRules\":{\"filters\":\"string\",\"elasticFilters\":\"string\"},\"distinctFilter\":{\"elastic\":true,\"filters\":[{\"field\":\"string\",\"maxNumItems\":0,\"levelRangeModifier\":0}]},\"attribute\":{\"name\":\"string\",\"levelRangeModifier\":0},\"numRows\":0,\"numItems\":0,\"useDefaultDistinctFilters\":true,\"useDefaultItemFilters\":true}],\"keepSlotsOrder\":true,\"personalizeSlotsOrder\":false,\"boostingStrategies\":[{\"name\":\"string\",\"condition\":\"string\",\"strength\":1}],\"itemsSource\":{\"type\":\"aggregate\",\"id\":\"string\"}}"

            headers = {
                'Authorization': "Bearer REPLACE_BEARER_TOKEN",
                'content-type': "application/json"
                }

            conn.request("POST", "/recommendations/v2/campaigns", payload, headers)

            res = conn.getresponse()
            data = res.read()

            print(data.decode("utf-8"))
        - lang: JavaScript
          label: JavaScript
          source: |-
            const data = JSON.stringify({
              "type": "similar",
              "parameters": {
                "additionalResponseAttributes": [
                  "string"
                ],
                "boostMetric": "string",
                "sortMetric": "string",
                "boostMetricStrength": -100,
                "shuffleNumItems": 0,
                "personalizedBoostingStrength": 0
              },
              "title": "string",
              "slug": "string",
              "description": "string",
              "startDate": "string",
              "endDate": "string",
              "state": "draft",
              "filterRules": {
                "excludePurchasedItems": true,
                "excludePurchasedItemsSinceDays": 0,
                "elasticExcludePurchasedItems": true,
                "elasticExcludePurchasedItemsSinceDays": 0
              },
              "itemsCatalogId": "string",
              "slots": [
                {
                  "name": "string",
                  "itemMin": 0,
                  "itemMax": 0,
                  "filterRules": {
                    "filters": "string",
                    "elasticFilters": "string"
                  },
                  "distinctFilter": {
                    "elastic": true,
                    "filters": [
                      {
                        "field": "string",
                        "maxNumItems": 0,
                        "levelRangeModifier": 0
                      }
                    ]
                  },
                  "attribute": {
                    "name": "string",
                    "levelRangeModifier": 0
                  },
                  "numRows": 0,
                  "numItems": 0,
                  "useDefaultDistinctFilters": true,
                  "useDefaultItemFilters": true
                }
              ],
              "keepSlotsOrder": true,
              "personalizeSlotsOrder": false,
              "boostingStrategies": [
                {
                  "name": "string",
                  "condition": "string",
                  "strength": 1
                }
              ],
              "itemsSource": {
                "type": "aggregate",
                "id": "string"
              }
            });

            const xhr = new XMLHttpRequest();
            xhr.withCredentials = true;

            xhr.addEventListener("readystatechange", function () {
              if (this.readyState === this.DONE) {
                console.log(this.responseText);
              }
            });

            xhr.open("POST", "https://api.synerise.com/recommendations/v2/campaigns");
            xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN");
            xhr.setRequestHeader("content-type", "application/json");

            xhr.send(data);
        - lang: Node.js
          label: Node.js
          source: |-
            const http = require("https");

            const options = {
              "method": "POST",
              "hostname": "api.synerise.com",
              "port": null,
              "path": "/recommendations/v2/campaigns",
              "headers": {
                "Authorization": "Bearer REPLACE_BEARER_TOKEN",
                "content-type": "application/json"
              }
            };

            const req = http.request(options, function (res) {
              const chunks = [];

              res.on("data", function (chunk) {
                chunks.push(chunk);
              });

              res.on("end", function () {
                const body = Buffer.concat(chunks);
                console.log(body.toString());
              });
            });

            req.write(JSON.stringify({
              type: 'similar',
              parameters: {
                additionalResponseAttributes: ['string'],
                boostMetric: 'string',
                sortMetric: 'string',
                boostMetricStrength: -100,
                shuffleNumItems: 0,
                personalizedBoostingStrength: 0
              },
              title: 'string',
              slug: 'string',
              description: 'string',
              startDate: 'string',
              endDate: 'string',
              state: 'draft',
              filterRules: {
                excludePurchasedItems: true,
                excludePurchasedItemsSinceDays: 0,
                elasticExcludePurchasedItems: true,
                elasticExcludePurchasedItemsSinceDays: 0
              },
              itemsCatalogId: 'string',
              slots: [
                {
                  name: 'string',
                  itemMin: 0,
                  itemMax: 0,
                  filterRules: {filters: 'string', elasticFilters: 'string'},
                  distinctFilter: {
                    elastic: true,
                    filters: [{field: 'string', maxNumItems: 0, levelRangeModifier: 0}]
                  },
                  attribute: {name: 'string', levelRangeModifier: 0},
                  numRows: 0,
                  numItems: 0,
                  useDefaultDistinctFilters: true,
                  useDefaultItemFilters: true
                }
              ],
              keepSlotsOrder: true,
              personalizeSlotsOrder: false,
              boostingStrategies: [{name: 'string', condition: 'string', strength: 1}],
              itemsSource: {type: 'aggregate', id: 'string'}
            }));
            req.end();
        - lang: PHP
          label: PHP
          source: |-
            <?php

            $request = new HttpRequest();
            $request->setUrl('https://api.synerise.com/recommendations/v2/campaigns');
            $request->setMethod(HTTP_METH_POST);

            $request->setHeaders([
              'Authorization' => 'Bearer REPLACE_BEARER_TOKEN',
              'content-type' => 'application/json'
            ]);

            $request->setBody('{"type":"similar","parameters":{"additionalResponseAttributes":["string"],"boostMetric":"string","sortMetric":"string","boostMetricStrength":-100,"shuffleNumItems":0,"personalizedBoostingStrength":0},"title":"string","slug":"string","description":"string","startDate":"string","endDate":"string","state":"draft","filterRules":{"excludePurchasedItems":true,"excludePurchasedItemsSinceDays":0,"elasticExcludePurchasedItems":true,"elasticExcludePurchasedItemsSinceDays":0},"itemsCatalogId":"string","slots":[{"name":"string","itemMin":0,"itemMax":0,"filterRules":{"filters":"string","elasticFilters":"string"},"distinctFilter":{"elastic":true,"filters":[{"field":"string","maxNumItems":0,"levelRangeModifier":0}]},"attribute":{"name":"string","levelRangeModifier":0},"numRows":0,"numItems":0,"useDefaultDistinctFilters":true,"useDefaultItemFilters":true}],"keepSlotsOrder":true,"personalizeSlotsOrder":false,"boostingStrategies":[{"name":"string","condition":"string","strength":1}],"itemsSource":{"type":"aggregate","id":"string"}}');

            try {
              $response = $request->send();

              echo $response->getBody();
            } catch (HttpException $ex) {
              echo $ex;
            }
        - lang: Java
          label: Java
          source: |-
            HttpResponse<String> response = Unirest.post("https://api.synerise.com/recommendations/v2/campaigns")
              .header("Authorization", "Bearer REPLACE_BEARER_TOKEN")
              .header("content-type", "application/json")
              .body("{\"type\":\"similar\",\"parameters\":{\"additionalResponseAttributes\":[\"string\"],\"boostMetric\":\"string\",\"sortMetric\":\"string\",\"boostMetricStrength\":-100,\"shuffleNumItems\":0,\"personalizedBoostingStrength\":0},\"title\":\"string\",\"slug\":\"string\",\"description\":\"string\",\"startDate\":\"string\",\"endDate\":\"string\",\"state\":\"draft\",\"filterRules\":{\"excludePurchasedItems\":true,\"excludePurchasedItemsSinceDays\":0,\"elasticExcludePurchasedItems\":true,\"elasticExcludePurchasedItemsSinceDays\":0},\"itemsCatalogId\":\"string\",\"slots\":[{\"name\":\"string\",\"itemMin\":0,\"itemMax\":0,\"filterRules\":{\"filters\":\"string\",\"elasticFilters\":\"string\"},\"distinctFilter\":{\"elastic\":true,\"filters\":[{\"field\":\"string\",\"maxNumItems\":0,\"levelRangeModifier\":0}]},\"attribute\":{\"name\":\"string\",\"levelRangeModifier\":0},\"numRows\":0,\"numItems\":0,\"useDefaultDistinctFilters\":true,\"useDefaultItemFilters\":true}],\"keepSlotsOrder\":true,\"personalizeSlotsOrder\":false,\"boostingStrategies\":[{\"name\":\"string\",\"condition\":\"string\",\"strength\":1}],\"itemsSource\":{\"type\":\"aggregate\",\"id\":\"string\"}}")
              .asString();
servers:
  - description: Microsoft Azure EU
    url: https://api.synerise.com
  - description: Microsoft Azure USA
    url: https://api.azu.synerise.com
  - description: Google Cloud Platform
    url: https://api.geb.synerise.com
tags:
  - name: Recommendation campaigns
components:
  securitySchemes:
    JWT:
      type: http
      scheme: bearer
      description: |-
        JWT Bearer token. The header looks like this: `Bearer {JWT}`

        Remember to include the space between 'Bearer' and the token.

        Generate a token via the **Authorization** endpoints.
```
