The Privacy Requests API allows partners to automate the processing of consumers’ Data Subject Access Requests related to data stored by ID5. The Data Deletion service handles deletion of any data associated with the consumer, if any.
https://api.id5-sync.com/partners/v1/{PARTNER}/privacy/requests/deletion?token={TOKEN}
HTTP POST with JSON body
Content-Type: application/json; charset=UTF-8
The value {PARTNER}
in the above example url will be replaced by an ID5-provided Partner Number. This value will be static for you once we set you up in our system. You may use the example URL above during testing with the Partner Number 173. If you haven't already been assigned a Partner Number, please contact us to request one.
Name | Required | Description |
---|---|---|
token | x | A permanent security token provided by ID5. Please contact ID5 at support@id5.io for your token. |
Name | Required | Description |
---|---|---|
Email of the consumer that is requesting their data be deleted. Should be in plain text format or a sha256 hash of the email. sha256 should be calculated as per these guidelines. It is required to provide one of the fields: email , id5id , maid , partnerUid . |
||
id5id | ID5 ID of the consumer that is requesting their data be deleted. Should be in encrypted (ID5* ) or decrypted (ID5- ) format. It is required to provide one of the fields: email , id5id , maid , partnerUid . |
|
maid | Mobile Advertising ID (either gaid or idfa ) of the consumer that is requesting their data be deleted. Should be in text format, eg: 580d2b4c-29a5-7a7b-85dc-44132c023ac8 . It is required to provide one of the fields: email , id5id , maid , partnerUid . |
|
partnerUid | Partner specific user ID - the same that is send in pd string under key 5 . It is required to provide one of the fields: email , id5id , maid , partnerUid . |
|
jurisdiction | x | The jurisdiction under which the request was made. See below for possible case-insensitive values |
replyToEmail | Plain text email to which a response message will be sent indicating the results of the request. If no value is provided, no confirmation email will be sent |
jurisdiction
valuesPOST: https://api.id5-sync.com/partners/v1/173/privacy/requests/deletion?token=abc123
{
"email": "cd372fb85148700fa88095e3492d3f9f5beb43e555e5ff26d95f5a6adc36f8e6",
"id5id": "ID5*j0EDhnOeLA7GJ9KXt05cszkCOLRHRyqVRKNx4Wo9iEtZYPIcnd32YHQ9MjAOLR0UWWEhBhCvzGoO5pggW2pX3w",
"maid": "580d2b4c-29a5-7a7b-85dc-44132c023ac8",
"partnerUid": "a-123456789",
"jurisdiction": "GDPR",
"replyToEmail": "joe.consumer@gmail.com"
}
200 OK
Name | Description |
---|---|
id | The job ID of the Data Deletion Request |
{
"id": "a8b6ccc4ee35ddaf5a5bb0f5c696dbd3"
}
{
"error": {
"code": "{CODE}",
"type": "{TYPE}"
"message": "{MESSAGE}",
}
}
HTTP Status Code | Code | Type | Message |
---|---|---|---|
401 | api_token_invalid | authentication_error | No API token provided |
400 | partiner_id_invalid | authentication_error | Invalid partner id {PARTNER_ID} provided |
403 | api_token_not_authorized | authentication_error | Api token {TOKEN} does not have access to this resource |
400 | request_format_invalid | invalid_request_error | application/json; charset=UTF-8 POST required |
400 | request_format_invalid | invalid_request_error | Missing required JSON body |
400 | user_objects_invalid | validation_error | Missing required parameter 'jurisdiction' |
400 | user_objects_invalid | validation_error | Missing one of parameters: ['id5id', 'email', 'maid'] |
400 | user_objects_invalid | validation_error | Provided ID5ID [ID5ID] cannot be decrypted |
400 | user_objects_invalid | validation_error | Provided ID5ID [ID5ID] is not a valid one |
400 | user_objects_invalid | validation_error | Provided maid [MAID] is not a valid one |
403 | api_rate_limit_error | rate_limit_error | Limit of 1 request daily allowed per email has been reached |
403 | api_rate_limit_error | rate_limit_error | Limit of 1 request daily allowed per id5id has been reached |
403 | api_rate_limit_error | rate_limit_error | Limit of 1 request daily allowed per maid has been reached |
403 | api_rate_limit_error | rate_limit_error | Limit of 1 request daily allowed per partnerUid has been reached |
403 | api_rate_limit_error | rate_limit_error | Limit of 1,000 requests daily allowed per partner has been reached |
{
"error": {
"code": "api_token_invalid",
"type": "authentication_error"
"message": "No API token provided",
}
}
HTTP GET
Name | Required | Description |
---|---|---|
PARTNER | x | The Partner Number provided by ID5 used in the Data Deletion Request |
PRIVACY_REQUEST_DELETION_JOB_ID | x | The id from the Data Deletion Request response body |
Name | Required | Description |
---|---|---|
token | x | A permanent security token provided by ID5. Please contact ID5 at support@id5.io for your token. This is the same token as used in the Data Deletion Request |
200 OK
Name | Description |
---|---|
id | The job ID of the Data Deletion request |
jobStatus | The current status of the job. See below for possible values |
processingResult | Result of processing the DSAR. See below for possible values |
emailSentUnixTimestamp | Unix timestamp when reply-to email was sent. Will be null if no email was sent yet (because it was not processed yet or because there was no replyToEmail defined in the request) |
jobStatus
valuesprocessingResult
values{
"id": "a8b6ccc4ee35ddaf5a5bb0f5c696dbd3",
"jobStatus": "SENT",
"processingResult": "DELETE_DELETED",
"emailSentUnixTimestamp": 1661933465437
}
{
"error": {
"code": "{CODE}",
"type": "{TYPE}"
"message": "{MESSAGE}",
}
}
HTTP Status Code | Code | Type | Message |
---|---|---|---|
401 | api_token_invalid | authentication_error | No API token provided |
400 | partiner_id_invalid | authentication_error | Invalid partner id {PARTNER_ID} provided |
403 | api_token_not_authorized | authentication_error | Api token {TOKEN} does not have access to this resource |
400 | user_object_invalid | validation_error | provided job id is not a valid UUID |
404 | user_objects_invalid | invalid_request_error | provided job UUID not found |
500 | internal_id5_error | api_error | Internal error id: {ID} |
{
"error": {
"code": "user_object_invalid",
"message": "provided job UUID not found",
"type": "invalid_request_error"
}
}