---
title: "Get Universal Consent Purposes"
method: GET
path: "/cfw/cmp/v1/uc-purposes"
tags: ["UC Purposes"]
---

# Get Universal Consent Purposes

`GET /cfw/cmp/v1/uc-purposes`

Use this API to retrieve the required interface attributes to be rendered for Universal Consent Purposes.

## Headers

- `OT-CDN-Location` 'cdn.cookielaw.org' | 'cdn-apac.onetrust.com' | 'cdn.au.onetrust.com' | 'cdn-ukwest.onetrust.com' | 'cookie-cdn.cookiepro.com' | 'otcc-demo.otprivacy.com' | 'otcc-training.onetrust.com', required — The location of the CDN.
- `OT-App-Id` string, required — The unique identifier for the app or domain.
- `OT-Device-Type` 'mobile' | 'ctv', required — The type of device.
- `OT-SDK-Version` string, required — The published version of the app or domain.
- `OT-SDK-Identification` string, nullable — The OT SDK identification.
- `OT-Language` string, nullable — The language in which the user interface should be displayed.
- `OT-Country-Code` string, nullable — The country code from which the user is accessing the app or website.
- `OT-Region-Code` string, nullable — The region code from which the user is accessing the app or website.
- `OT-Fetch-Type` 'APP_DATA_ONLY' | 'APP_DATA_AND_PROFILE' | 'APP_DATA_AND_SYNC_PROFILE', nullable — The type of data to download.
- `OT-Consent-String` string, nullable — The encoded consent string that contains the interface's metadata.
- `OT-Identifier` string, nullable — The unique identifier for the data subject.
- `OT-Identifier-Type` string, nullable — The identifier type associated with the unique identifier in OT-Identifier header
- `OT-Identifier-UpdateType` 'Rename-Identifier', nullable
- `OT-Sync-Profile-Auth` string, nullable — The JSON Web Token (JWT) generated using Public Keys within the OneTrust application.
- `OT-Platform` 'Apple' | 'Android', nullable — To handle platform-specific features like ATT (App Tracking Transparency for Apple) or GoogleAdId (for Android) in a structured way, you can send the platform type in the parameters of an API or request.
- `OT-Exclude-Html-Tags` boolean, nullable — This is specifically to unbold the vendor numbers only.

## Response `200`

Success

- object
  - `errors` object[]
    - `code` 'SUCCESS' | 'ERROR_CODE_TEXT_RESOURCE_NOT_FOUND' | 'ERROR_CODE_NO_CONTENT' | 'ERROR_CODE_BLOB_LOCATIONS_UNAVAILABLE' | 'ERROR_CODE_INVALID_LOCATION' | 'ERROR_CODE_INVALID_COUNTRY_OR_REGION' | 'ERROR_CODE_INVALID_DEVICE_TYPE' | 'ERROR_CODE_INVALID_FETCH_TYPE' | 'ERROR_CODE_INVALID_CONSENT_REQUEST' | 'ERROR_CODE_HTTP_IF_NONE_MATCHED' | 'ERROR_CODE_SYNC_GROUP' | 'ERROR_CODE_FAILURE' | 'ERROR_CODE_DEFAULT_PURPOSE_STATUS' | 'ERROR_CODE_INVALID_OT_CONSENT_STRING' | 'ERROR_CODE_GENERIC_ERROR' | 'ERROR_CODE_MISSING_REQUIRED_HEADER' | 'ERROR_CODE_NO_ACCESS' | 'ERROR_CODE_INVALID_INTERACTION_TYPE' | 'ERROR_CODE_INVALID_CONTENT_TYPE_HEADER' | 'ERROR_IDENTIFIER_MISMATCH' | 'ERROR_UCP_NOT_CONFIGURED' | 'ERROR_CODE_INVALID_TC_STRING' | 'ERROR_GOOGLE_ADS_DISABLED' | 'ERROR_CODE_CONSENT_LOGGING' | 'ERROR_CODE_INVALID_REQUEST_BODY' | 'ERROR_CODE_UNSUPPORTED_VERSION' | 'ERROR_CODE_INVALID_AGE_RANGE' | 'ERROR_CODE_EMPTY_CONSENT', required
    - `message` 'Not Found' | 'No content' | 'success' | 'Unable to fetch data for the specified Application ID. Please check your configurations.' | 'Invalid location' | 'Invalid country code or region code. If you want to skip validation, please set the header 'OT-Geolocation-Skip-Validation' to true.' | 'Invalid Device Type' | 'Invalid Fetch type' | 'Missing either or all of TenantId or Identifier or Authorization' | 'If-None-Match' | 'syncGroup' | 'failure' | 'NO_CONSENT' | 'Invalid OT consent string' | 'Something went wrong' | 'No access to this resource' | 'Invalid Interaction Type' | 'Content-Type header should be application/json' | 'Input Identifier does not match with one in consent string' | 'The UC Purposes API call was successful, but no data is available for display.' | 'UC Purposes is disabled.' | 'Error decoding TC string, default consent is returned.' | 'Google Ads is disabled.' | 'Consent Logging has failed, please retry in sometime and if issue still persists please reach out to support team.' | 'Error parsing request body' | 'The published version is not supported. Please publish a newer version.' | 'The upper bound of the age range must be greater than lower bound.' | 'At least one purpose consent is required.', required
  - `warnings` object[]
    - `code` 'WARNING_CODE_PUBLISHED_VERSION_MISMATCH', required
    - `message` 'Requested data for the OT-SDK-Version does not match the published version on the OneTrust server. The latest published version will be returned instead.', required
  - `ucPurposesData` object
    - `general` object
      - `pageHeader` string
      - `cpOptionsTitle` string
    - `summary` object
      - `description` object
        - `text` string, required
      - `title` object
        - `text` string, required
    - `purposes` object[], required
      - `id` string, required
      - `label` string, required
      - `description` string, required
      - `consentStatus` number, required
      - `lastConsentedDate` string
      - `version` number, required
      - `consentLifeSpan` number, required
      - `createdDate` string, required
      - `lastModifiedDate` string, required
      - `detail` string, nullable, required
      - `expiryDateType` string, required
      - `order` number, required
      - `customPreferences` object[], required
        - `id` string, required
        - `name` string, required
        - `description` string, required
        - `displayAs` string, required
        - `options` object[], required
          - `id` string, required
          - `consentStatus` number, required
          - `label` string, required
          - `order` number, required
          - `isDefault` boolean, required
      - `attributes` object — Custom data points and characteristics to define and describe various elements tied to a universal consent purpose
      - `reconsent` boolean, required
  - `storageKeys` object
    - `OT_GroupConsents` object
    - `OT_GroupLIConsents` object
    - `OT_SdkConsents` object
    - `OT_GeneralVendorsConsents` object
    - `OT_UCPConsents` object
    - `OT_LastConsentedDate` string

## Other responses

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

---

[API](https://skmtc.net/onetrust/apis/platform-access-management.md) · [All operations](https://skmtc.net/onetrust/apis/platform-access-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onetrust/platform-access-management/revisions/21de3aa0b170/schema)
