Skip to main content

Anonymize Documents

Use the REST API to anonymize documents (PDF, DOC/DOCX, and images: JPG, JPEG, PNG, BMP).

Authenticate every request with your API key. Credits are consumed when processing documents — check pricing and usage in app.doccape.de.

Workflows

There are two document workflows:

WorkflowWhen to useUploadStatus / download
Default projectQuick anonymization with the project resolved from your API keyPOST /external/v1/documents/upload (JSON + Base64)/external/v1/documents/{documentId}/…
Project-scopedExplicit project selection and stored project configPOST /external/v1/projects/{projectId}/documents (multipart)/external/v1/projects/{projectId}/documents/{documentId}/…

Discover project IDs with GET /external/v1/projects/me. Read active config with GET /external/v1/documents/default-config or GET /external/v1/projects/{projectId}/config.

File limits: accepted types are PDF, DOC, DOCX, and images in JPG, JPEG, PNG, or BMP format. Maximum upload size is 200MB. Base64 encoding expands payload size by about 4/3, so keep raw files well under the limit for the default JSON upload.

Polling: after upload, poll status every 5–10 seconds until a terminal status. On transient 429 / network errors, retry with backoff. Do not retry indefinitely on 403 credit/license failures.

Default project workflow

1. Convert a document to Base64

On Windows (PowerShell):

[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\your\file")) | Out-File -FilePath "C:\path\to\save\fileBase64.txt"

On Linux / macOS:

base64 -i "path-to-your-file" -o "path-to-your-output-file"

2. Upload a document

Upload the Base64 content with POST /external/v1/documents/upload:

curl 'https://app.doccape.de/api/external/v1/documents/upload' \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"content": "insert_your_base64_string_here"
}'

3. Check document status

Poll GET /external/v1/documents/{documentId}/status until a terminal status:

curl 'https://app.doccape.de/api/external/v1/documents/1/status' \
--header 'Authorization: Bearer YOUR_API_KEY'

4. Download the processed document

Once status is COMPLETED, download via GET /external/v1/documents/{documentId}/result. The response is binary (application/octet-stream) with a Content-Disposition filename:

curl 'https://app.doccape.de/api/external/v1/documents/{documentId}/result' \
--header 'Authorization: Bearer YOUR_API_KEY' \
-o anonymized-document

5. Clean up

Delete processed documents with DELETE /external/v1/documents/{documentId}:

curl 'https://app.doccape.de/api/external/v1/documents/{documentId}' \
--request DELETE \
--header 'Authorization: Bearer YOUR_API_KEY'

Project-scoped workflow

  1. List projects: GET /external/v1/projects/me
  2. Upload multipart: POST /external/v1/projects/{projectId}/documents with form field file
  3. Poll: GET /external/v1/projects/{projectId}/documents/{documentId}/status
  4. Download: GET /external/v1/projects/{projectId}/documents/{documentId}/result
  5. Optional PIIs (when Disable document correction is disabled for the project): GET /external/v1/projects/{projectId}/documents/{documentId}/result/piis
  6. Delete when finished: DELETE /external/v1/projects/{projectId}/documents/{documentId}

Example multipart upload:

curl 'https://app.doccape.de/api/external/v1/projects/1/documents' \
--request POST \
--header 'Authorization: Bearer YOUR_API_KEY' \
--form 'file=@"/path/to/your/file.pdf"'

Next steps