Once the status of the original DSR indicates there are files available to download, it is possible to get a list of these files for download.
GET
/v1/data-subject-request/{id}/download-keysIn your request headers, pass authorization: Bearer <<token>>.
If you're self-hosting Sombra, also add the request header x-sombra-authorization: Bearer <<sombraInternalKey>>. You can read more about request authorization here.
Requires scope:
View the Request Compilation
authorizationstringAn API key generated from the Transcend dashboard: https://app.transcend.io/infrastructure/api-keys. |
x-sombra-authorizationstringThe Sombra internal key. This header is only needed for self-hosted Sombra gateways. See https://docs.transcend.io/docs/dsr-automation/api-integration/authentication#authenticating-to-sombra |
content-typestringSpecify content-type: application/json for a JSON response from the Transcend API. |
limitnumberdefault:25min:0The maximum number of file keys to return on this page. |
offsetnumberdefault:0min:0The pagination offset. |
200 (OK)
application/jsonThis request was found. Responds with a paginated list of files and their metadata. To download the file, make a separate request for each file using their `downloadKey` from this response.
Response Body
totalCountnumber(required)Total number of files available for download. |
nodesarray<object>(required)List of files available for download. |
_linksobject(required)Pagination information |
Response Body Example
Sample response:
{
"totalCount": 25,
"nodes": [
{
"downloadKey": "superlongstring1",
"error": null,
"mimetype": "text/plain",
"size": 16,
"fileName": "Personal identifier/Name.txt",
"dataPoint": {
"id": "bd7a415c-0367-455f-bb6d-7f1b5c391bdc",
"title": null,
"description": null,
"name": "ActionItemUsers",
"metadata": {
"references": [
"https://docs.transcend.io/docs/privacy-requests/connecting-data-systems/internal-data-systems"
]
},
"slug": "actionItemUsers",
"encryption": null,
"path": [
"transcend",
"public"
],
"dataSilo": {
"id": "709b0a9d-d489-4eed-ab1f-747a5a6867d7",
"title": "Database",
"description": "Integrate with your own databases, such as Amazon Redshift or PostgreSQL.",
"type": "database",
"outerType": null
}
}
},
{
"downloadKey": "superlongstring2",
"error": null,
"mimetype": "application/json",
"size": 3124,
"fileName": "User online activities/usage.json",
"dataPoint": {
"id": "f7d01243-4918-4045-813f-e53945774ea1",
"title": {
"id": "3eed04de-8308-4d47-bc40-11bd26b67ff1",
"defaultMessage": "Email Address"
},
"description": {
"id": "3e8c9597-a4ca-4368-9836-86701d210550",
"defaultMessage": "The email we have associated with the account."
},
"name": "email",
"metadata": {
"references": [
"https://docs.transcend.io/docs/silo-server"
]
},
"slug": "email",
"encryption": null,
"path": [],
"dataSilo": {
"id": "222d8172-b05a-4d55-89a4-af0e240fd290",
"title": "Transcend Users",
"description": "Send a webhook to a server and POST back through our API.",
"type": "server",
"outerType": null
}
}
},
{
"downloadKey": "superlongstring3",
"error": null,
"mimetype": "video/mp4",
"size": 456711231,
"fileName": "User profile/mymovie.mp4",
"dataPoint": {
"id": "bd7a415c-0367-455f-bb6d-7f1b5c391bdc",
"title": null,
"description": null,
"name": "ActionItemUsers",
"metadata": {
"references": [
"https://docs.transcend.io/docs/privacy-requests/connecting-data-systems/internal-data-systems"
]
},
"slug": "actionItemUsers",
"encryption": null,
"path": [
"transcend",
"public"
],
"dataSilo": {
"id": "709b0a9d-d489-4eed-ab1f-747a5a6867d7",
"title": "Database",
"description": "Integrate with your own databases, such as Amazon Redshift or PostgreSQL.",
"type": "database",
"outerType": null
}
}
}
],
"_links": {
"self": "/v1/data-subject-request/da13d328-3f9d-40d5-9312-9f4fcf3ad0d2/download-keys?limit=3&offset=3",
"prev": "/v1/data-subject-request/da13d328-3f9d-40d5-9312-9f4fcf3ad0d2/download-keys?limit=3&offset=0",
"next": "/v1/data-subject-request/da13d328-3f9d-40d5-9312-9f4fcf3ad0d2/download-keys?limit=3&offset=6"
}
}
400 (Bad Request)
application/jsonWhile this request passed authentication, the input is malformed. Please double-check that your code conforms to our API specification.
401 (Unauthorized)
application/jsonThere was a problem authenticating your request. This may be an issue with the Transcend API key ("authorization" header), or the Sombra API key ("x-sombra-authorization" header used for self-hosted gateways only).
413 (Request Entity Too Large)
application/jsonThe request body is too large. JSON and raw bodies must be less than 50MB. URL encoded bodies must be less than 30MB.
429 (Too Many Requests)
application/jsonYou are sending requests too quickly and have hit our rate limit. If you hit this, you'll need to throttle your request velocity or try again later.
Response Headers
Retry-Afterinteger |
X-RateLimit-Limitinteger |
X-RateLimit-Remaininginteger |
X-RateLimit-Resetinteger |
500 (Internal Server Error)
application/jsonA 5xx error means there is either an issue with your self-hosted gateway, or a Transcend server is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.
502 (Bad Gateway)
application/jsonAn upstream service on Transcend's side is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.