---
title: "Get List of All Purpose Details by Data Subject"
method: GET
path: "/rest/api/consent/v4/datasubjects/ds-profiles"
tags: ["Data Subjects V4"]
---

# Get List of All Purpose Details by Data Subject

`GET /rest/api/consent/v4/datasubjects/ds-profiles`

Use this API to retrieve a data subject’s purpose details for all purposes. The response will include all purposes that the data subject interacted with along with details such as status, last transaction date, consent date, and purpose preferences.

## Query parameters

- `page` integer
- `size` integer
- `sort` 'lastUpdatedDate,asc' | 'lastUpdatedDate,desc'

## Headers

- `identifier` string, required
- `requestContinuation` string

## Response `200`

OK

- ConsentAPIDataSubjectProfileResponseSliceDto
  - `content` ConsentAPIDataSubjectProfileResponseDto[]
    - `id` string, uuid — Unique Identifier identifying a Purpose
    - `identifier` string — The data subject identifier of the data subject.
    - `lastReceiptId` string, uuid — Unique Identifier identifying a Receipt
    - `name` string — The Purpose name
    - `version` integer — Version of the Purpose
    - `status` string — The status of the purpose for the data subject.
    - `firstTransactionDate` string, date-time — The date and time that the first transaction was written to the database.
    - `lastTransactionDate` string, date-time — The date and time that the last transaction was written to the database.
    - `withdrawalDate` string, date-time — The date and time that the data subject withdrew consent for the purpose.
    - `consentDate` string, date-time — The date and time that the data subject gave their last active consent.
    - `expiryDate` string, date-time — The explicit expiration date after which the purpose is no longer valid and no further consent is collected against it.
    - `totalTransactionCount` integer — The total number of Transactions recorded against this Purpose
    - `topicsList` string[] — The list of topics associated with the purpose.
    - `topics` ConsentAPIDataSubjectProfileTopicResponseDto[] — The details of the topics for which transactions were recorded.
      - `id` string, uuid — Unique Identifier identifying a Purpose Topic
      - `name` string — The name of the topic.
    - `customPreferencesMap` object — The list of purpose preferences associated with the purpose.
    - `customPreferences` ConsentAPIDsProfileCustomPreferenceResponseDto[] — The details of the purpose preferences for which transactions were recorded.
      - `id` string, uuid — The unique identifier of the purpose preference.
      - `name` string — The name of the purpose preference.
      - `options` ConsentAPIDsProfileCustomPreferenceOptionResponseDto[] — List containing the Custom Preference's Options
        - `id` string, uuid — The unique identifiers of the purpose preference options.
        - `name` string — The name of the purpose preference options.
    - `lastTransactionCollectionPointId` string, uuid
    - `lastTransactionCollectionPointVersion` integer
    - `purposeNote` ConsentAPIPurposeNoteResponseDto
      - `noteId` string, uuid — The unique identifier of the reason template.
      - `noteType` 'UNSUBSCRIBE_REASON' — The type of reason template.
      - `noteLanguage` string — The ISO code for the language of the reason template.
      - `noteText` string — The text of the reason template.
      - `isValidNote` boolean — This flag indicates whether the note is a valid reason template.
    - `lastUpdatedDate` string, date-time — The date and time of the latest change to the data subject profile in the database.to any of: Purpose version, Purpose Status, or Topic/Custom Preference selections
    - `lastInteractionDate` string, date-time — The date and time of the data subject's last interaction with the purpose.
    - `attributes` object — The additional attributes associated with the purpose.
    - `geolocation` ConsentAPIDataSubjectGeolocationResponseDto
      - `dataSubjectId` string, uuid — The unique identifier of the data subject.
      - `receiptGuid` string, uuid — The unique identifier of the consent receipt for which geolocation details were sent.
      - `country` string — The country where the consent interaction occurred.
      - `state` string — The state code where the consent interaction occurred.
      - `stateName` string — The name of the state where the consent interaction occurred.
    - `attachments` ConsentAPIDataSubjectAttachmentResponseDto[] — Documents attached to Data Subject Profile
      - `attachmentId` string, uuid — The unique identifier of the file attached to the data subject record.
      - `fileName` string — The name of the file attached to the data subject record.
      - `uploadedBy` string — The name of the user who uploaded the file.
      - `uploadDate` string, date-time — The date and time on which the file was uploaded.
    - `source` ConsentAPIDataSubjectSourceResponseDto
      - `dataSubjectId` string, uuid — The unique identifier of the data subject.
      - `receiptGuid` string, uuid — The unique identifier of the consent receipt for which source details were sent.
      - `sourceType` string — The type of source that captured the consent interaction.
      - `sourceContent` string — The URL or identifier of the source where the consent interaction took place.
  - `number` integer — The page number of the results.
  - `size` integer — The number of results per page.
  - `pageable` ConsentAPIPageableObject
    - `offset` integer
    - `sort` ConsentAPISortObject
      - `empty` boolean
      - `sorted` boolean
      - `unsorted` boolean
    - `pageNumber` integer
    - `paged` boolean
    - `pageSize` integer
    - `unpaged` boolean
  - `last` boolean — Flag indicating whether this is the last page or not.
  - `sort` ConsentAPISortObject
    - `empty` boolean
    - `sorted` boolean
    - `unsorted` boolean
  - `first` boolean
  - `numberOfElements` integer
  - `empty` boolean
  - `requestContinuation` string — The token used to paginate a response if the number of records is more than a page.

## 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.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/versions/21de3aa0b170/schema)
