Record delete work orders work-order-endpoint
Use the /workorder
endpoint in the Data Hygiene API to create, view, and manage record delete work orders in ۶Ƶ Experience Platform. Work orders let you control, monitor, and track data removal across datasets to help you maintain data quality and support your organization’s data governance standards.
Getting started
Before you begin, see the overview to learn about required headers, how to read sample API calls, and where to find related documentation.
Quotas and processing timelines quotas
Record delete work orders are subject to daily and monthly identifier submission limits, determined by your organization’s license entitlement. These limits apply to both UI- and API-based record delete requests.
Monthly submission entitlement by product quota-limits
The following table shows identifier submission limits by product and entitlement level. For each product, the monthly cap is the lesser of two values: a fixed identifier ceiling or a percentage-based threshold tied to your licensed data volume.
Record delete work order capacity is a shared service. Your monthly cap reflects the highest entitlement across Real-Time CDP, ۶Ƶ Journey Optimizer, Customer Journey Analytics, and any applicable Shield add-ons.
Processing timelines for identifier submissions sla-processing-timelines
After submission, record delete work orders are queued and processed based on your entitlement level.
If your organization requires higher limits, contact your ۶Ƶ representative for an entitlement review.
List record delete work orders list
Retrieve a paginated list of record delete work orders for data hygiene operations in your organization. Filter results using query parameters. Each work order record includes the action type (such as identity-delete
), status, related dataset and user details, and audit metadata.
API format
GET /workorder
The following table describes the query parameters available for listing record delete work orders.
search
type
identity-delete
).status
Enum:
received
, validated
, submitted
, ingested
, completed
, failed
author
displayName
description
workorderId
sandboxName
*
to include all sandboxes.fromDate
toDate
to be set.toDate
fromDate
to be set.filterDate
page
limit
orderBy
+
or -
prefix for ascending/descending. Example: orderBy=-datasetName
.properties
Request
The following request retrieves all completed record delete work orders, limited to two per page:
curl -X GET \
"https://platform.adobe.io/data/core/hygiene/workorder?status=completed&limit=2" \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Response
A successful response returns a paginated list of record delete work orders.
{
"results": [
{
"workorderId": "DI-1729d091-b08b-47f4-923f-6a4af52c93ac",
"orgId": "9C1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-4cfabf02-c22a-45ef-b21f-bd8c3d631f41",
"action": "identity-delete",
"createdAt": "2034-03-15T11:02:10.935Z",
"updatedAt": "2034-03-15T11:10:10.938Z",
"operationCount": 3,
"targetServices": [
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "a.stark@acme.com <a.stark@acme.com> BD8C3D631F41@acme.com",
"datasetId": "a7b7c8f3a1b8457eaa5321ab",
"datasetName": "Acme_Customer_Exports",
"displayName": "Customer Identity Delete Request",
"description": "Scheduled identity deletion for compliance"
}
],
"total": 1,
"count": 1,
"_links": {
"next": {
"href": "https://platform.adobe.io/workorder?page=1&limit=2",
"templated": false
},
"page": {
"href": "https://platform.adobe.io/workorder?limit={limit}&page={page}",
"templated": true
}
}
}
The following table describes the properties in the response.
results
workorderId
orgId
bundleId
action
createdAt
updatedAt
operationCount
targetServices
status
received
,validated
, submitted
, ingested
, completed
, and failed
.createdBy
datasetId
datasetName
displayName
description
total
count
_links
next
href
(string) and templated
(boolean) for the next page.page
href
(string) and templated
(boolean) for page navigation.Create a record delete work order create
To delete records associated with one or more identities from a single dataset or all datasets, make a POST request to the /workorder
endpoint.
Work orders are processed asynchronously and appear in the work order list after submission.
API format
POST /workorder
Request
The following request deletes all records associated with specified email addresses from a particular dataset.
curl -X POST \
https://platform.adobe.io/data/core/hygiene/workorder \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"displayName": "Acme Loyalty - Customer Data Deletion",
"description": "Delete all records associated with the specified email addresses from the Acme_Loyalty_2023 dataset.",
"action": "delete_identity",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"namespacesIdentities": [
{
"namespace": {
"code": "email"
},
"IDs": [
"alice.smith@acmecorp.com",
"bob.jones@acmecorp.com",
"charlie.brown@acmecorp.com"
]
}
]
}'
The following table describes the properties for creating a record delete work order.
displayName
description
action
delete_identity
.datasetId
ALL
to target all datasets. Datasets must have a primary identity or identity map. If an identity map exists, it will be present as a top-level field named identityMap
.Note that a dataset row may have many identities in its identity map, but only one can be marked as primary.
"primary": true
must be included to force the id
to match a primary identity.namespacesIdentities
An array of objects, each containing:
namespace
: An object with acode
property specifying the identity namespace (e.g., “email”).IDs
: An array of identity values to delete for this namespace.
Identity namespaces provide context to identity data. You can use standard namespaces provided by Experience Platform or create your own. To learn more, see the identity namespace documentation and the .
Response
A successful response returns the details of the new record delete work order.
{
"workorderId": "DI-95c40d52-6229-44e8-881b-fc7f072de63d",
"orgId": "8B1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-c61bec61-5ce8-498f-a538-fb84b094adc6",
"action": "identity-delete",
"createdAt": "2035-06-02T09:21:00.000Z",
"updatedAt": "2035-06-02T09:21:05.000Z",
"operationCount": 1,
"targetServices": [
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "c.lannister@acme.com <c.lannister@acme.com> 7EAB61F3E5C34810A49A1AB3@acme.com",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"datasetName": "Acme_Loyalty_2023",
"displayName": "Loyalty Identity Delete Request",
"description": "Schedule deletion for Acme loyalty program dataset"
}
The following table describes the properties in the response.
workorderId
orgId
bundleId
action
createdAt
updatedAt
operationCount
targetServices
status
createdBy
datasetId
ALL
.datasetName
displayName
description
identity-delete
in API responses. If the API changes to use a different value (such as delete_identity
), this documentation will be updated accordingly.Retrieve details for a specific record delete work order lookup
Retrieve information for a specific record delete work order by making a GET request to /workorder/{WORKORDER_ID}
. The response includes action type, status, associated dataset and user information, and audit metadata.
API format
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}
Request
curl -X GET \
https://platform.adobe.io/data/core/hygiene/workorder/DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Response
A successful response returns the details of the specified record delete work order.
{
"workorderId": "DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427",
"orgId": "3C7F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-dbe3ffad-cb0b-401f-91ae-01c189f8e7b2",
"action": "identity-delete",
"createdAt": "2037-01-21T08:25:45.119Z",
"updatedAt": "2037-01-21T08:30:45.233Z",
"operationCount": 3,
"targetServices": [
"ajo",
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "g.baratheon@acme.com <g.baratheon@acme.com> C189F8E7B2@acme.com",
"datasetId": "d2f1c8a4b8f747d0ba3521e2",
"datasetName": "Acme_Marketing_Events",
"displayName": "Marketing Identity Delete Request",
"description": "Scheduled identity deletion for marketing compliance"
}
The following table describes the properties in the response.
workorderId
orgId
bundleId
action
createdAt
updatedAt
operationCount
targetServices
status
createdBy
datasetId
datasetName
displayName
description
Update a record delete work order
Update the name
and description
for a record delete work order by making a PUT request to the /workorder/{WORKORDER_ID}
endpoint.
API format
PUT /workorder/{WORKORDER_ID}
The following table describes the parameter for this request.
{WORK_ORDER_ID}
Request
curl -X PUT \
https://platform.adobe.io/data/core/hygiene/workorder/DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data"
}'
The following table describes the properties you can update.
name
description
Response
A successful response returns the updated work order request.
{
"workorderId": "DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb",
"orgId": "7D4E2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-12abcf45-32ea-45bc-9d1c-8e7b321cabc8",
"action": "identity-delete",
"createdAt": "2038-04-15T12:14:29.210Z",
"updatedAt": "2038-04-15T12:30:29.442Z",
"operationCount": 2,
"targetServices": [
"profile",
"datalake"
],
"status": "received",
"createdBy": "b.tarth@acme.com <b.tarth@acme.com> 8E7B321CABC8@acme.com",
"datasetId": "1a2b3c4d5e6f7890abcdef12",
"datasetName": "Acme_Marketing_2024",
"displayName": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data",
"productStatusDetails": [
{
"productName": "Data Management",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Identity Service",
"productStatus": "success",
"createdAt": "2024-06-12T20:36:09.020832Z"
},
{
"productName": "Profile Service",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Journey Orchestrator",
"productStatus": "success",
"createdAt": "2024-06-12T20:12:19.843199Z"
}
]
}
workorderId
orgId
bundleId
action
createdAt
updatedAt
operationCount
targetServices
status
received
,validated
, submitted
, ingested
, completed
, and failed
.createdBy
datasetId
datasetName
displayName
description
productStatusDetails
An array listing the current status of downstream processes for the request. Each object contains:
productName
: The name of the downstream service.productStatus
: The current processing status from the downstream service.createdAt
: The timestamp when the most recent status was posted by the service.
This property is available after the work order is submitted to downstream services to begin processing.