Skip to main content

Portal — GDPR

GDPR compliance endpoints supporting Article 17 (Right to Erasure) and Article 20 (Right to Data Portability).

All endpoints require JWT bearer authentication.

Data export (Article 20)​

POST /api/portal/data-export​

Request an export of all your organization's data. The export is generated asynchronously as a content-addressed S3 archive.

POST https://api.pdfcanon.com/api/portal/data-export

Response — 202 Accepted​

{
"exportId": "e1f2a3b4-c5d6-7890-abcd-ef1234567890",
"status": "pending",
"requestedAt": "2026-01-15T10:00:00Z"
}

GET /api/portal/data-export/{id}/status​

Check the status of a data export request.

GET https://api.pdfcanon.com/api/portal/data-export/{id}/status

Response — 200 OK​

{
"exportId": "e1f2a3b4-...",
"status": "completed",
"requestedAt": "2026-01-15T10:00:00Z",
"completedAt": "2026-01-15T10:05:00Z"
}

GET /api/portal/data-export/{id}/download​

Download the completed export archive via a presigned URL.

GET https://api.pdfcanon.com/api/portal/data-export/{id}/download

Response — 302 Found​

Redirects to a presigned S3 URL for the export archive.

Error responses​

StatusDescription
400Export is not yet complete
404Export request not found

Content erasure (Article 17)​

POST /api/portal/erasure​

Request erasure of all stored PDF artifacts (originals, normalized outputs, reports) for your organization. Content references are tracked across organizations to ensure shared content is only deleted when no other organization references it.

POST https://api.pdfcanon.com/api/portal/erasure

Response — 200 OK​

{
"status": "scheduled",
"message": "Content erasure has been scheduled."
}

Account deletion (Article 17)​

DELETE /api/portal/data​

Request full account deletion with a 72-hour cooling-off period. During this period, the deletion can be cancelled. After the cooling-off period, the account and all associated data are permanently deleted.

DELETE https://api.pdfcanon.com/api/portal/data

Response — 202 Accepted​

{
"status": "pending",
"cancellableUntil": "2026-01-18T10:00:00Z",
"message": "Account deletion scheduled. You have 72 hours to cancel."
}

GET /api/portal/data-deletion/status​

Check the status of a pending account deletion.

GET https://api.pdfcanon.com/api/portal/data-deletion/status

Response — 200 OK​

{
"status": "pending",
"requestedAt": "2026-01-15T10:00:00Z",
"cancellableUntil": "2026-01-18T10:00:00Z"
}

DELETE /api/portal/data-deletion/cancel​

Cancel a pending account deletion (only during the 72-hour cooling-off period).

DELETE https://api.pdfcanon.com/api/portal/data-deletion/cancel

Response — 200 OK​

{
"status": "cancelled",
"message": "Account deletion has been cancelled."
}

Error responses​

StatusDescription
400Cooling-off period has expired
404No pending deletion request found