OneTrust · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Privacy Automation - Data Subject Request (DSR) Automation…
16 actions
16 updates
phrasing
extends
openapi/onetrust-request-queues-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 16
$.info
$.paths['/api/datasubject/v2/requestqueues'].post
$.paths['/api/datasubject/v2/requestqueues/bulkdelete/{language}'].put
$.paths['/api/datasubject/v2/requestqueues/delete-certificate/{requestRefId}'].get
$.paths['/api/datasubject/v2/requestqueues/id/{requestQueueId}/requesthistory'].get
$.paths['/api/datasubject/v2/requestqueues/search/{language}'].post
$.paths['/api/datasubject/v2/requestqueues/status/{requestTraceId}'].get
$.paths['/api/datasubject/v2/requestqueues/{language}'].get
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/comments'].put
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/customfields/{language}'].put
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/language/{language}'].get
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/linkrequest'].put
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/movestages/{language}'].put
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/pausedeadline'].put
$.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/requesthistory'].get
$.paths['/api/datasubject/v2/requestqueues/{templateId}'].post
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 Privacy Automation - Data Subject Request (DSR) Automation…
version: 1.0.0
extends: openapi/onetrust-request-queues-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 15
- target: $.paths['/api/datasubject/v2/requestqueues'].post
update:
x-apievangelist-phrasing:
intent: Create a data subject request (deprecated)
effect: write
questions:
- Is there an older endpoint that creates a DSR without putting the web form template in the path?
- What does the deprecated create-request call accept for the requester's name and email?
instructions:
- text: Use the deprecated create-request endpoint to file a request for {email} with template {templateId} in the body.
slots:
email: requestBody.email
templateId: requestBody.templateId
- text: Submit a legacy DSR for {firstName} {lastName} with trace ID {requestTraceId}.
slots:
firstName: requestBody.firstName
lastName: requestBody.lastName
requestTraceId: requestBody.requestTraceId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/bulkdelete/{language}'].put
update:
x-apievangelist-phrasing:
intent: Bulk delete data subject requests
effect: destructive
questions:
- Can I permanently delete many privacy requests at once by status or date range?
- Does bulk deleting DSRs also remove their subtasks, attachments and results summaries?
instructions:
- text: Permanently delete requests {RequestIDs} in bulk, language {language}.
slots:
RequestIDs: requestBody.RequestIDs
language: path.language
- text: Bulk delete every request with status {Status} created in {CreatedDateRange}, using language {language}.
slots:
Status: requestBody.Status
CreatedDateRange: requestBody.CreatedDateRange
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/delete-certificate/{requestRefId}'].get
update:
x-apievangelist-phrasing:
intent: Get the deletion certificate for a request
effect: read
questions:
- Where can I get proof that a deleted data subject request was actually removed?
- Does the deletion certificate show the retention policy and deletion mode?
instructions:
- text: Get the deletion certificate for deleted request {requestRefId}.
slots:
requestRefId: path.requestRefId
- text: Show when and how request {requestRefId} was deleted.
slots:
requestRefId: path.requestRefId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/id/{requestQueueId}/requesthistory'].get
update:
x-apievangelist-phrasing:
intent: Get a request's audit history by internal ID
effect: read
questions:
- Can I pull a DSR's change history using its numeric request queue ID instead of the reference ID?
- Which field updates show up in the audit trail when I look a request up by internal ID?
instructions:
- text: Get the audit history for request queue ID {requestQueueId}.
slots:
requestQueueId: path.requestQueueId
- text: Show page {page} of field changes for internal request ID {requestQueueId}.
slots:
page: query.page
requestQueueId: path.requestQueueId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/search/{language}'].post
update:
x-apievangelist-phrasing:
intent: Search data subject requests by keyword
effect: read
questions:
- Can I find a privacy request by the data subject's email address or last name?
- What search terms can I use to locate a DSR, like a request ID or first name?
instructions:
- text: Search requests for {term} in language {language}.
slots:
term: requestBody.term
language: path.language
- text: Find DSRs matching {term} created on {createddate}, language {language}.
slots:
term: requestBody.term
createddate: query.createddate
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/status/{requestTraceId}'].get
update:
x-apievangelist-phrasing:
intent: Check creation status of an async request
effect: read
questions:
- Did my asynchronously submitted request actually get created?
- Can I look up the request ID assigned to a submission using its trace ID?
instructions:
- text: Check the creation status for trace ID {requestTraceId}.
slots:
requestTraceId: path.requestTraceId
- text: Get the creation log and request ID for submission {requestTraceId}.
slots:
requestTraceId: path.requestTraceId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{language}'].get
update:
x-apievangelist-phrasing:
intent: List data subject requests
effect: read
questions:
- Which privacy requests are currently open in OneTrust?
- Can I filter the DSR list by status or by modified date?
- Is it possible to leave out requests submitted by internal users when listing?
instructions:
- text: List all requests in language {language}.
slots:
language: path.language
- text: List requests with status {status} modified since {modifieddate}, language {language}.
slots:
status: query.status
modifieddate: query.modifieddate
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/comments'].put
update:
x-apievangelist-phrasing:
intent: Add a comment to a request
effect: write
questions:
- Can I leave an internal-only note on a data subject request?
- Is it possible to attach files when commenting on a DSR?
instructions:
- text: Add the comment {comment} to request {requestQueueRefId}.
slots:
comment: requestBody.comment
requestQueueRefId: path.requestQueueRefId
- text: Post internal note {internalComment} on request {requestQueueRefId}.
slots:
internalComment: requestBody.internalComment
requestQueueRefId: path.requestQueueRefId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/customfields/{language}'].put
update:
x-apievangelist-phrasing:
intent: Update a request's custom fields
effect: write
questions:
- Can I change the custom form fields on an existing privacy request?
- What happens to option keys when I update a DSR's custom fields?
instructions:
- text: Update the custom fields on request {requestQueueRefId} in language {language}.
slots:
requestQueueRefId: path.requestQueueRefId
language: path.language
- text: 'Edit custom field values for request {requestQueueRefId}, mapping option keys to names: {mapOptionKeyToNameKey}, language {language}.'
slots:
requestQueueRefId: path.requestQueueRefId
mapOptionKeyToNameKey: query.mapOptionKeyToNameKey
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/language/{language}'].get
update:
x-apievangelist-phrasing:
intent: Get a data subject request
effect: read
questions:
- Who is the approver on a specific privacy request?
- Can I see the full details of one DSR, including the data subject's name?
instructions:
- text: Get request {requestQueueRefId} in language {language}.
slots:
requestQueueRefId: path.requestQueueRefId
language: path.language
- text: Show me the details and approver of DSR {requestQueueRefId}, language {language}.
slots:
requestQueueRefId: path.requestQueueRefId
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/linkrequest'].put
update:
x-apievangelist-phrasing:
intent: Link or unlink related requests
effect: write
questions:
- Can I connect duplicate privacy requests from the same person to each other?
- Is there a way to unlink a request I linked by mistake?
instructions:
- text: Link request {requestQueueRefId} to requests {LinkRequests}.
slots:
requestQueueRefId: path.requestQueueRefId
LinkRequests: requestBody.LinkRequests
- text: Unlink requests {UnlinkRequests} from request {requestQueueRefId}.
slots:
UnlinkRequests: requestBody.UnlinkRequests
requestQueueRefId: path.requestQueueRefId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/movestages/{language}'].put
update:
x-apievangelist-phrasing:
intent: Move a request to another workflow stage
effect: write
questions:
- How do I move a DSR from verifying identity to in progress?
- Can I record a resolution title when advancing a request to its final stage?
instructions:
- text: Move request {requestQueueRefId} to stage {nextStage}, language {language}.
slots:
requestQueueRefId: path.requestQueueRefId
nextStage: requestBody.nextStage
language: path.language
- text: Advance request {requestQueueRefId} to {nextStage} with resolution {resolutionTitle}, language {language}.
slots:
requestQueueRefId: path.requestQueueRefId
nextStage: requestBody.nextStage
resolutionTitle: requestBody.resolutionTitle
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/pausedeadline'].put
update:
x-apievangelist-phrasing:
intent: Pause or resume a request's deadline
effect: write
questions:
- Can I stop the clock on a privacy request while I wait on the data subject?
- What happens to the deadline when a paused request is resumed?
instructions:
- text: Pause the deadline on request {requestQueueRefId}.
slots:
requestQueueRefId: path.requestQueueRefId
- text: Set deadline paused to {pauseDeadline} on request {requestQueueRefId} with comment {comment}.
slots:
pauseDeadline: requestBody.pauseDeadline
requestQueueRefId: path.requestQueueRefId
comment: requestBody.comment
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{requestQueueRefId}/requesthistory'].get
update:
x-apievangelist-phrasing:
intent: Get a request's audit history by reference ID
effect: read
questions:
- What changed on a data subject request, and when, looking it up by its reference ID?
- Can I see who edited a DSR's fields over time?
instructions:
- text: Get the audit history for request reference {requestQueueRefId}.
slots:
requestQueueRefId: path.requestQueueRefId
- text: Show {size} history entries per page for request reference {requestQueueRefId}.
slots:
size: query.size
requestQueueRefId: path.requestQueueRefId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/datasubject/v2/requestqueues/{templateId}'].post
update:
x-apievangelist-phrasing:
intent: Create a data subject request from a web form
effect: write
questions:
- How do I submit a new DSR against a specific web form template?
- Do web form visibility rules carry over to a request created through the API?
instructions:
- text: Create a request for {email} using web form template {templateId}.
slots:
email: requestBody.email
templateId: path.templateId
- text: File a new {requestTypes} request for {firstName} {lastName} on template {templateId}.
slots:
requestTypes: requestBody.requestTypes
firstName: requestBody.firstName
lastName: requestBody.lastName
templateId: path.templateId
method: generated
generated: '2026-09-26'