---
title: "Update Data Subject's Preferences in a Preference Center"
method: PUT
path: "/api/consentmanager/v1/preferencecenters/{prefcenterId}/datasubjects/preferences"
tags: ["Preference Centers"]
---

# Update Data Subject's Preferences in a Preference Center

`PUT /api/consentmanager/v1/preferencecenters/{prefcenterId}/datasubjects/preferences`

## Request

- Base URL: `https://hostname`
- URL: `https://hostname/api/consentmanager/v1/preferencecenters/{prefcenterId}/datasubjects/preferences`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://{hostname}/api/access/v1/oauth/token` scopes: `CONSENT`

Use this API to update the data subject's preferences within a Preference Center.

> 🗒 Things to Know
> 
> - Pascal case is required for all parameters. For example, use `DsDataElements` instead of `dsDataElements`.

## Path parameters

- `prefcenterId` string, uuid, required

## Query parameters

- `identifier` string

## Headers

- `identifier` string

## Request body

- ConsentPreferencesUniversalConsentPreferenceManagDataSubjectPreferencesRequestDto
  - `Purposes` ConsentPreferencesUniversalConsentPreferenceManagDataSubjectPurposesRequestDto[], required: List of Data Subject Purposes with their consent status
    - `Id` string, uuid, required: Unique Identifier of the Purpose
    - `Topics` ConsentPreferencesUniversalConsentPreferenceManagDataSubjectTopicsDto[]: List of Topics associated with the Purpose and their consent status
      - `Id` string, uuid
    - `CustomPreferences` ConsentPreferencesUniversalConsentPreferenceManagDataSubjectCustomPreferencesDto[]: List of custom preferences associated with the Purpose
      - `Id` string, uuid
      - `Options` ConsentPreferencesUniversalConsentPreferenceManagDataSubjectCustomPreferenceOptionDto[]
        - `Id` string, uuid
  - `DsDataElements` object: Map of Data Subject Elements and their values. Maximum supported characters for a data element value is 750.
  - `Language` string: The preferred language of the Data Subject in BCP 47 format
  - `dsDataElements` object

## Response `200`

OK - Successfully updated data subject's preferences.

- ConsentPreferencesUniversalConsentPreferenceManagDataSubjectPreferencesResponseDto
  - `Purposes` ConsentPreferencesUniversalConsentPreferenceManagDataSubjectPurposesResponseDto[]: List of Purposes with their updated consent status for the Data Subject
    - `messages` string[]: List of status messages related to the Purpose update operation
    - `Id` string, uuid: Unique identifier for the Purpose that was updated
    - `Status` boolean: Indicates whether the Purpose update was successful
    - `ReceiptGuid` string, uuid: Unique identifier for the receipt of this update operation
  - `Language` string: The preferred language of the Data Subject in BCP 47 format

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests. For more information, see [API Rate Limits](https://developer.onetrust.com/onetrust/reference/rate-limits-overview).
- `500`: Internal Server Error

---

[API](https://skmtc.dev/onetrust/apis/consent-preferences-universal-consent-preference-management.md) - [All operations](https://skmtc.dev/onetrust/apis/consent-preferences-universal-consent-preference-management/llms.txt) - [OpenAPI document](https://skmtc.dev/onetrust/apis/consent-preferences-universal-consent-preference-management/revisions/fe4a0697ec9d?raw)
