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:
| Workflow | When to use | Upload | Status / download |
|---|---|---|---|
| Default project | Quick anonymization with the project resolved from your API key | POST /external/v1/documents/upload (JSON + Base64) | /external/v1/documents/{documentId}/… |
| Project-scoped | Explicit project selection and stored project config | POST /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
- List projects:
GET /external/v1/projects/me - Upload multipart:
POST /external/v1/projects/{projectId}/documentswith form fieldfile - Poll:
GET /external/v1/projects/{projectId}/documents/{documentId}/status - Download:
GET /external/v1/projects/{projectId}/documents/{documentId}/result - Optional PIIs (when
Disable document correctionis disabled for the project):GET /external/v1/projects/{projectId}/documents/{documentId}/result/piis - 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
- Document Processing Status — status values and when to download
- Anonymize Text — plain text in a single request
- Projects — project access and scoping
- API Reference — full endpoint documentation