openapi: 3.1.0 info: title: Sitecore CDP REST Audit Decision Models API description: The Sitecore CDP REST API provides synchronous access to retrieve, create, update, and delete data stored in Sitecore Customer Data Platform. It exposes guest profiles, orders, order items, order contacts, order consumers, and data extensions through standard HTTP methods. Developers use this API to build integrations that read or write customer data programmatically, enabling use cases such as audience segmentation, data enrichment, and reporting. Authentication uses HTTP Basic Auth with a client key and API token obtained from the CDP instance settings. Regional server endpoints must be used based on the CDP instance's geographic deployment. version: v2.1 contact: name: Sitecore Support url: https://www.sitecore.com/support termsOfService: https://www.sitecore.com/legal/terms-of-service servers: - url: https://api-engage-eu.sitecorecloud.io description: EU Production Server - url: https://api-engage-us.sitecorecloud.io description: US Production Server - url: https://api-engage-ap.sitecorecloud.io description: Asia-Pacific Production Server - url: https://api-engage-jpe.sitecorecloud.io description: Japan Production Server security: - basicAuth: [] tags: - name: Decision Models description: Endpoints for managing decision models that power programmatic targeting and offer selection logic within Sitecore Personalize. Decision models contain variant configurations and deployment settings. paths: /v1/decision-models: get: operationId: listDecisionModels summary: List decision models description: Retrieves a paginated collection of all decision models configured in the Sitecore Personalize instance. Decision models drive offer selection and targeting logic. Supports search, sorting, and pagination. tags: - Decision Models parameters: - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageOffset' - $ref: '#/components/parameters/sortBy' responses: '200': description: A paginated list of decision models content: application/json: schema: $ref: '#/components/schemas/DecisionModelListResponse' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createDecisionModel summary: Create a decision model description: Creates a new decision model in Sitecore Personalize. Decision models contain items, variant configurations, and deployment settings that control how offers or content are selected for a given audience. tags: - Decision Models requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDecisionModelRequest' responses: '201': description: Decision model created successfully content: application/json: schema: $ref: '#/components/schemas/DecisionModel' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /v1/decision-models/{id}: get: operationId: getDecisionModel summary: Get a decision model description: Retrieves a specific decision model by its unique identifier. Returns the full model including its items, variant configuration, and current deployment status. tags: - Decision Models parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: Decision model details content: application/json: schema: $ref: '#/components/schemas/DecisionModel' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateDecisionModel summary: Update a decision model description: Performs a full replacement update of a decision model. All fields are replaced with the values in the request body. This creates a new revision of the model. tags: - Decision Models parameters: - $ref: '#/components/parameters/resourceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDecisionModelRequest' responses: '200': description: Decision model updated successfully content: application/json: schema: $ref: '#/components/schemas/DecisionModel' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: Unauthorized: description: Authentication credentials are missing or invalid content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: The request body or parameters are invalid content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ErrorResponse: type: object description: An error response body properties: message: type: string description: A human-readable error message statusCode: type: integer description: The HTTP status code errors: type: array description: List of detailed error messages items: type: string CreateDecisionModelRequest: type: object description: Request body for creating or updating a decision model required: - name properties: name: type: string description: The display name of the decision model status: type: string description: The deployment status of the decision model enum: - DRAFT - TEST - PRODUCTION deploymentConfiguration: type: array description: Variant configuration for the decision model items: $ref: '#/components/schemas/VariantConfig' VariantConfig: type: object description: Configuration for a variant within a decision model or flow properties: variantRef: type: string description: The identifier of the variant split: type: integer description: The percentage of traffic allocated to this variant minimum: 0 maximum: 100 DecisionModel: type: object description: A decision model that defines targeting and offer selection logic within Sitecore Personalize properties: ref: type: string description: The unique identifier of the decision model name: type: string description: The display name of the decision model status: type: string description: The current status of the decision model enum: - DRAFT - TEST - PRODUCTION - ARCHIVED revision: type: integer description: The current revision number of the decision model archived: type: boolean description: Whether the decision model has been archived deploymentConfiguration: type: array description: Variant configuration specifying traffic splits and content items: $ref: '#/components/schemas/VariantConfig' createdAt: type: string description: The ISO 8601 timestamp when the model was created format: date-time modifiedAt: type: string description: The ISO 8601 timestamp when the model was last modified format: date-time DecisionModelListResponse: type: object description: A paginated list of decision models properties: items: type: array description: The decision models for the current page items: $ref: '#/components/schemas/DecisionModel' total: type: integer description: Total number of decision models parameters: resourceId: name: id in: path description: The unique identifier of the resource required: true schema: type: string sortBy: name: sort in: query description: Field name and direction to sort results by (e.g., name:asc) required: false schema: type: string pageOffset: name: pageOffset in: query description: Number of records to skip for pagination required: false schema: type: integer minimum: 0 default: 0 pageSize: name: pageSize in: query description: Number of items to return per page required: false schema: type: integer minimum: 1 maximum: 100 default: 20 securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication using a client key as the username and an API token as the password. Credentials are obtained from Sitecore CDP Settings > API access. externalDocs: description: Sitecore CDP REST API Documentation url: https://doc.sitecore.com/cdp/en/developers/api/rest-apis.html