The API for accessible PDFs
Accessful's REST API audits and remediates PDFs according to PDF/UA-2 directly from your systems: submit documents, track status, retrieve results - asynchronously, with webhooks and batch processing of thousands of documents.
Six endpoints for the entire document lifecycle
Upload, status query, download and deletion – that’s all the integration needs. Base URL: https://api.accessful.de/api/v1/upload-service.
Every request is authenticated via the X-API-Key header.
| Method | Path | Purpose |
|---|---|---|
POST | /pdf/upload | Upload PDF file and start processing |
POST | /pdf/upload-by-url-list | Pass multiple documents via URL list |
GET | /job-status/{caseId} | Query the processing status of an operation |
GET | /download/{caseId} | Download remediated PDF |
DELETE | /delete/{caseId} | Delete individual document |
DELETE | /delete | Delete multiple documents in one call (batch) |
How to integrate Accessful in four steps
-
Submit documents
Submit individual PDFs to POST /pdf/upload or entire document collections through POST /pdf/upload-by-url-list. You receive a caseId for every document.
-
Process asynchronously
Processing runs asynchronously. Query the progress via GET /job-status/{caseId} or be notified via webhook.
-
Get result
Once the status is “completed”, download the PDF remediated in line with PDF/UA-2 through GET /download/{caseId}.
-
Delete data
After processing, delete documents individually using DELETE /delete/{caseId} or collectively using a batch call - you retain data sovereignty.
Your system stays informed automatically
Instead of polling for status, receive notifications automatically: Accessful sends a webhook event to your endpoint for every status change, signs every delivery and retries it automatically if delivery fails.
The six events
-
case.queuedDocument accepted and queued, including its queue position and estimated wait time -
case.runningProcessing is ongoing -
case.completedResult is available for download -
case.failedProcessing failed -
case.canceledProcess aborted -
case.quota_exceededQuota exceeded
Reliability built in
- HMAC-SHA256 signature in the header
X-Accessful-Signature(Format t=<unix>,v1=<hex>) - Up to 10 automatic retries with exponential backoff
- Idempotency through the header
X-Accessful-Event-Id– duplicate deliveries can be identified reliably
Example of a delivery
X-Accessful-Event-Id: 9f2c81d4…
X-Accessful-Signature: t=1760082300,v1=5f8a3c…
{
"id": "9f2c81d4…",
"type": "case.completed",
"apiVersion": "2026-06-26",
"occurredAt": "2026-07-10T09:41:27Z",
"data": {
"caseId": "b7f3…",
"fileName": "annual-report.pdf",
"jobStatus": "completed"
}
} For case.queued, data also contains queuePosition, queueTotal and estimatedWaitSeconds.
Typical integration scenarios
-
DMS/ECM
Newly filed documents are automatically checked and corrected - accessible, before anyone requests them or redistributes them.
-
CRM
Offers, policies and customer letters from your CRM are automatically checked and corrected according to PDF/UA-2 before sending - without any additional work steps in sales.
-
Contract management
Contracts and attachments are prepared according to PDF/UA-2 before dispatch or publication - with an audit-ready report as proof.
-
Archive systems
You can upgrade existing documents in batches using a URL list: thousands of archive PDFs in one go, without manual uploading.
-
Web portals
PDFs that visitors download from your portal are automatically checked and corrected in advance according to PDF/UA-2: upload when publishing, delivery after completion of the correction.
-
Batch processes
Nightly jobs submit entire document collections. Webhooks report every status change without polling.
Accessful for AI agents
If AI agents control your document processes, they should be able to use Accessful directly. For this purpose, Accessful provides an agent skill for download with which agents control the API - from upload to retrieval of the corrected result.
Everything else is in the developer documentation
-
Quick start
The fastest way to the first API call: authentication, upload and status query step by step.
Open Quickstart -
Webhooks
All six events, signature verification and retry behaviour explained in detail.
Open webhooks documentation -
API reference
All endpoints, parameters and responses for reference during implementation.
Open API reference
Technical questions about the API
How do I authenticate requests to the Accessful API?
Each request includes your API key in the X-API-Key HTTP header. The Quickstart in the API documentation.
Does the API work synchronously or asynchronously?
Asynchronous: The upload returns a caseId. You can query the progress via GET /job-status/{caseId} - or you can be informed about every status change via webhook, from case.queued to case.completed.
Can I delete uploaded documents via the API?
Yes. You can delete individual documents using DELETE /delete/{caseId}, and several documents can be deleted collectively using the batch endpoint DELETE /delete. This means data storage remains completely in your hands.
How do I know that a webhook really comes from Accessful?
Every delivery is signed using HMAC-SHA256: The header X-Accessful-Signature contains timestamp and signature in the format t=<unix>,v1=<hex>. This allows you to check the origin and integrity of each message - details in the Webhooks documentation.
Start with the first API call.
The documentation takes you from the API key to the first remediated PDF. Or discuss your integration architecture directly with us.