OneTrust · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Consent & Preferences - Universal Consent & Preference…
12 actions
12 updates
phrasing
extends
openapi/onetrust-data-subjects-v4-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for OneTrust's API. It is a proposal applied on top of the contract, not a document OneTrust publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/rest/api/consent/v4/data-subjects'].delete
$.paths['/rest/api/consent/v4/data-subjects/profiles'].delete
$.paths['/rest/api/consent/v4/datasubjects'].get
$.paths['/rest/api/consent/v4/datasubjects/basic-details'].get
$.paths['/rest/api/consent/v4/datasubjects/details'].get
$.paths['/rest/api/consent/v4/datasubjects/ds-profiles'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles/unordered'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles/{purposeGuid}'].get
$.paths['/rest/api/consent/v4/datasubjects/search-by-element'].post
$.paths['/rest/api/consent/v4/datasubjects/unordered'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Consent & Preferences - Universal Consent & Preference…
version: 1.0.0
extends: openapi/onetrust-data-subjects-v4-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-02'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/rest/api/consent/v4/data-subjects'].delete
update:
x-apievangelist-phrasing:
intent: Delete a data subject
effect: destructive
questions:
- Can I delete a data subject's consent profile entirely?
- Is it possible to keep consent receipts when a data subject is deleted?
instructions:
- text: Delete data subject {identifier}.
slots:
identifier: requestBody.identifier
- text: 'Delete data subject {identifier}, retaining receipts: {retainReceipts}.'
slots:
identifier: requestBody.identifier
retainReceipts: requestBody.retainReceipts
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/data-subjects/profiles'].delete
update:
x-apievangelist-phrasing:
intent: Remove purposes from a data subject
effect: destructive
questions:
- Can I remove just certain purposes from a data subject without deleting them?
- Which purposes can be wiped from a consent profile?
instructions:
- text: Remove purposes {purposes} from data subject {identifier}.
slots:
purposes: requestBody.purposes
identifier: requestBody.identifier
- text: Delete the purpose records {purposes} for {identifier}.
slots:
purposes: requestBody.purposes
identifier: requestBody.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects'].get
update:
x-apievangelist-phrasing:
intent: List data subjects updated in a date range
effect: read
questions:
- Which data subjects were updated between two dates?
- Can I include do-not-call records when listing data subjects?
instructions:
- text: List data subjects updated from {fromDate} to {toDate}.
slots:
fromDate: query.fromDate
toDate: query.toDate
- text: Show sorted data subjects changed between {fromDate} and {toDate}, sorted by {sort}.
slots:
fromDate: query.fromDate
toDate: query.toDate
sort: query.sort
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/basic-details'].get
update:
x-apievangelist-phrasing:
intent: Get a data subject's basic details
effect: read
questions:
- Can I get only a data subject's basic details, such as when it was created and last transacted?
- Can I get just the basic details and data elements for one data subject?
instructions:
- text: Get basic details for data subject {identifier}.
slots:
identifier: header.identifier
- text: Show the created date and data elements of {identifier}.
slots:
identifier: header.identifier
method: generated
generated: '2026-10-02'
- target: $.paths['/rest/api/consent/v4/datasubjects/details'].get
update:
x-apievangelist-phrasing:
intent: Get a data subject's full consent details
effect: read
questions:
- Can I see everything about a data subject, including purposes and email link tokens?
- Does the full data subject view include consent strings and attachments?
instructions:
- text: Get complete details for data subject {identifier}.
slots:
identifier: header.identifier
- text: Fetch full details of {identifier} including consent groups {includeConsentGroups}.
slots:
identifier: header.identifier
includeConsentGroups: query.includeConsentGroups
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/ds-profiles'].get
update:
x-apievangelist-phrasing:
intent: List all purposes for one data subject
effect: read
questions:
- Which purposes has a given person interacted with, and what is each status?
- Can I page through every purpose record for one data subject?
instructions:
- text: List all purpose details for data subject {identifier}.
slots:
identifier: header.identifier
- text: Show every purpose status recorded for {identifier}.
slots:
identifier: header.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles'].get
update:
x-apievangelist-phrasing:
intent: List purpose details across all data subjects
effect: read
questions:
- What is the maximum date range for pulling purpose details across all data subjects?
- Can I filter everyone's purpose records by collection point or status?
instructions:
- text: List purpose details for all data subjects updated between {updatedSince} and {updatedUntil}.
slots:
updatedSince: query.updatedSince
updatedUntil: query.updatedUntil
- text: Show sorted purpose records for purpose {purposeId} changed from {updatedSince} to {updatedUntil}.
slots:
purposeId: query.purposeId
updatedSince: query.updatedSince
updatedUntil: query.updatedUntil
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles/unordered'].get
update:
x-apievangelist-phrasing:
intent: Bulk-pull unordered purpose details
effect: read
questions:
- Is there a faster, unsorted way to export purpose details for all data subjects?
- Can I get an optimized unordered feed of purpose changes by status?
instructions:
- text: Pull the unordered purpose feed from {updatedSince} to {updatedUntil}.
slots:
updatedSince: query.updatedSince
updatedUntil: query.updatedUntil
- text: Fetch optimized unsorted purpose records with status {status} since {updatedSince} until {updatedUntil}.
slots:
status: query.status
updatedSince: query.updatedSince
updatedUntil: query.updatedUntil
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles/{purposeGuid}'].get
update:
x-apievangelist-phrasing:
intent: Get one purpose for a data subject
effect: read
questions:
- What did a person consent to for one specific purpose, and when?
- Can I check a single purpose's preferences for a data subject?
instructions:
- text: Get purpose {purposeGuid} details for data subject {identifier}.
slots:
purposeGuid: path.purposeGuid
identifier: header.identifier
- text: Show the consent date for {identifier} on purpose {purposeGuid}.
slots:
identifier: header.identifier
purposeGuid: path.purposeGuid
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/search-by-element'].post
update:
x-apievangelist-phrasing:
intent: Search data subjects by a data element
effect: read
questions:
- Can I find data subjects by a data element like a phone number or customer ID?
- Does the data element search support continuation tokens for big result sets?
instructions:
- text: Search data subjects where {dataElementName} equals {dataElementValue}.
slots:
dataElementName: requestBody.dataElementName
dataElementValue: requestBody.dataElementValue
- text: Find the data subject whose data element {dataElementName} is {dataElementValue}.
slots:
dataElementName: requestBody.dataElementName
dataElementValue: requestBody.dataElementValue
method: generated
generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/unordered'].get
update:
x-apievangelist-phrasing:
intent: Bulk-pull unordered data subjects
effect: read
questions:
- Is there a high-performance unsorted list of data subjects for a date range?
- Can I skip sorting to export data subjects faster?
instructions:
- text: Pull the optimized unsorted data subject list from {fromDate} to {toDate}.
slots:
fromDate: query.fromDate
toDate: query.toDate
- text: Export unordered data subjects updated since {fromDate} until {toDate}, {size} per page.
slots:
fromDate: query.fromDate
toDate: query.toDate
size: query.size
method: generated
generated: '2026-09-26'