---
title: "/2026-01/marketing-solutions/product-sets/{product-set-id}"
method: PATCH
path: "/2026-01/marketing-solutions/product-sets/{product-set-id}"
tags: ["Reco"]
---

# /2026-01/marketing-solutions/product-sets/{product-set-id}

`PATCH /2026-01/marketing-solutions/product-sets/{product-set-id}`

## Request

- Base URL: `https://api.criteo.com`
- URL: `https://api.criteo.com/2026-01/marketing-solutions/product-sets/{product-set-id}`
- Auth: OAuth 2
  - Authorization code: `https://api.criteo.com/oauth2`
  - Client credentials
  - Token URL: `https://api.criteo.com/oauth2/token` scopes: `MarketingSolutions_Reco_Manage`
- TypeScript: <https://skmtc.dev/criteo/apis/criteo-api/docs/2026-01/marketing-solutions/product-sets/:product-set-id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Patch an existing product set

## Path parameters

- `product-set-id` string, required

## Request body

- ValueResourceInputOfPatchProductSetRequest: A top-level object that encapsulates a Criteo API request for a single value
  - `data` ValueResourceOfPatchProductSetRequest: A top-level object that encapsulates a Criteo API response for a single value
    - `attributes` PatchProductSetRequest: Entity to update a product set
      - `isDraft` boolean, nullable: [optional] New value of product set segment status (draft or active)
      - `minimumNumberOfProducts` integer, nullable: [optional] New minimum number of products of the product set to be patched. This is used to determine if the rules are valid!
      - `name` string: [optional] New name that will be associated to the product set
      - `rules` ProductSetRule[]: [optional] New rules that will be associated to the product set
        - `field` 'OBSOLETE_Extradata' | 'Category1' | 'Category2' | 'Category3' | 'ExternalItemId' | 'SalePrice' | 'Brand' | 'CustomLabel0' | 'CustomLabel1' | 'CustomLabel2' | 'CustomLabel3' | 'CustomLabel4', nullable: The field on which we want to apply the rule
        - `operator` 'IsIn' | 'IsNotIn' | 'Between' | 'NotBetween' | 'LessThan' | 'GreaterThan', nullable: The operator used with the field
        - `values` string[], nullable: The values on which we want to apply the rule
    - `type` string

## Response `200`

Product set modified successfully

- ResourceOutcomeOfProductSet: A class implementing the response of the Criteo API as described in API Guild Guidelines with a single entity as body
  - `data` ResourceOfProductSet, nullable: A class that represents an entity in a guild compliant way
    - `attributes` ProductSet, nullable: Encapsulate a group of product
      - `clientType` 'Unknown' | 'CGrowth' | 'CMax', required: The client type of the product set
      - `creationDate` string, required: The creation date of the product set (UTC time in ISO8601 format). Example: "02/25/2022 14:51:26". Can be null if the value isn't available.
      - `datasetId` string, required: The dataset to which the product set belong
      - `id` string, nullable
      - `isFallbackAllowed` boolean
      - `keepVariantProducts` boolean, required
      - `minimumNumberOfProducts` integer, required: Minimum amount of products that should match the product set to consider it valid. Greater or equal than one.
      - `name` string, required: The name of the product set
      - `numberOfProducts` integer, nullable, required: The number of products matching the product set. Can be null for newly created product set.
      - `rules` ProductSetRule[], required: The rules identifying the product belonging to the set
        - `field` 'OBSOLETE_Extradata' | 'Category1' | 'Category2' | 'Category3' | 'ExternalItemId' | 'SalePrice' | 'Brand' | 'CustomLabel0' | 'CustomLabel1' | 'CustomLabel2' | 'CustomLabel3' | 'CustomLabel4', nullable: The field on which we want to apply the rule
        - `operator` 'IsIn' | 'IsNotIn' | 'Between' | 'NotBetween' | 'LessThan' | 'GreaterThan', nullable: The operator used with the field
        - `values` string[], nullable: The values on which we want to apply the rule
      - `status` 'Unknown' | 'Draft' | 'Pending' | 'Valid' | 'Invalid' | 'Deleted', required: The status of the product set
    - `id` string, nullable
    - `type` string, nullable
  - `errors` CommonProblem[], nullable
    - `code` string, nullable: A machine-readable error code, expressed as a string value.
    - `detail` string, nullable: A human-readable explanation specific to this occurrence of the problem
    - `instance` string, nullable: A URI that identifies the specific occurrence of the problem.
    - `source` object, nullable: A machine-readable structure to reference to the exact location(s) causing the error(s)
    - `stackTrace` string, nullable
    - `title` string, nullable: A short human-readable description of the problem type
    - `traceId` string, nullable: The request correlation ID this problem comes from.
    - `traceIdentifier` string, nullable: The request correlation ID this problem comes from. (deprecated, use traceId instead)
    - `type` 'unknown' | 'access-control' | 'authentication' | 'authorization' | 'availability' | 'deprecation' | 'quota' | 'validation', nullable: The problem's category.
  - `warnings` CommonProblem[], nullable
    - `code` string, nullable: A machine-readable error code, expressed as a string value.
    - `detail` string, nullable: A human-readable explanation specific to this occurrence of the problem
    - `instance` string, nullable: A URI that identifies the specific occurrence of the problem.
    - `source` object, nullable: A machine-readable structure to reference to the exact location(s) causing the error(s)
    - `stackTrace` string, nullable
    - `title` string, nullable: A short human-readable description of the problem type
    - `traceId` string, nullable: The request correlation ID this problem comes from.
    - `traceIdentifier` string, nullable: The request correlation ID this problem comes from. (deprecated, use traceId instead)
    - `type` 'unknown' | 'access-control' | 'authentication' | 'authorization' | 'availability' | 'deprecation' | 'quota' | 'validation', nullable: The problem's category.

---

[API](https://skmtc.dev/criteo/apis/criteo-api.md) - [All operations](https://skmtc.dev/criteo/apis/criteo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/criteo/apis/criteo-api/revisions/c1721589426a?raw)
