AccessibleDocs API Integration Guide

This guide explains how to upload documents to AccessibleDocs for accessibility processing, receive completion notifications, and download the final accessible document. It includes all necessary endpoints, request/response formats, and workflow steps.

Accessibility Services for Non-Public Enterprises

Our solution allows non-public enterprises to host the accessibility system on their premises, enhancing digital accessibility and ensuring compliance with WCAG standards.

API Integration Guide

Guide explanation how to work with AccessibleDocs API.

All API requests must include your API key in the headers:
You can obtain your API key and webhook secret key (used for validating incoming webhook requests) from your AccessibleDocs dashboard under:

https://platform.accessibledocs.ai/ → Settings → API Integration 
x-api-key: YOUR_API_KEY

Set up a webhook to receive status updates when a file has completed processing.

Endpoint

POST /v1/admin/company/webhooks

Request Body

{
   “event”: “file_processed”,
   “url”: “https://yourdomain.com/webhook-endpoint”
}

Response

[
  {
     “id”: “abc123”,
     “event”: “file_processed”,
     “url”: “https://yourdomain.com/webhook-endpoint”
  }
]

Create a file record and receive a secure URL for uploading the document.

Endpoint

POST /v1/external/user/files

Request Body

{
   “name”: “file_processed”,
   “size”: 1048576,
   “mime”: “file_processed”,
   “comment”: “Optional comment for fixer”,
   “tags”: [“tag-id-1”, “tag-id-2”],
   “purchaseOrderId”: “optional-id-if-needed”,
   “excludeWatermark”: false,
   “additionalNotification”: {
      “email”: “[email protected]
  }
}

Response

{
   “id”: “file_123”,
   “name”: “file.pdf”,
   “size”: 1048576,
   “tags”: [“tag-id-1”, “tag-id-2”],
   “state”: “in_progress”,
   “owner”: {
      “userid”: “user001”,
      “firstName”: “John”,
      “lastName”: “Doe”,
  },
   “extension”: “pdf”,
   “pageCount”: 0,
   “comments”: [],
   “createdAt”: “2025-06-12T13:24:57.402Z”,
   “updatedAt”: “2025-06-12T13:24:57.402Z”,
   “excludeWatermark”: false,
   “refunded”: false,
   “publiclyAvailable”: false,
   “uploadUrl”: “https://upload.accessibledocs.ai/ …”,

}

Upload the document binary using the uploadUrl from the previous step.

Example (cURL)

curl -X PUT \-H “Content-Type: application/pdf” \–data-binary @“file.pdf” \“https://upload.accessibledocs.ai/ …”

Any webhook sent from AccessibleDocs will include a secret key header (x-webhook-signature) for security purposes.
To verify authenticity, you must:

Step 1

Use the secret webhook key from the platform (available under: 
https://platform.accessibledocs.ai/ → Settings → API Integration) to create your own HMAC-SHA256 signature of the received JSON payload.

Step 2

Compare your generated signature with the x-webhook-signature header sent in the webhook request.

If they match, the request is valid and came from AccessibleDocs.
Once the document is completed (**only one event type currently: **“), AccessibleDocs 
will send a POST request to your webhook URL.

Webhook Payload

{
   “event”: “file_processed”,
   “file”: {
      “id”: “file_123”,
      “name”: “file.pdf”,
},
   “owner”: {
      “id”: “user_001”,
}

}

Retrieve a temporary download link for the processed file.

Endpoint

POST /v1/external/admin/company/files/{id}/processed/create-get-url

Response

{
   “url”: “https://download.accessibledocs.ai/file_123 …”,
   “name”: “file-accessible.pdf”
}

List All Files

GET /v1/external/admin/company/files 
Supports filters: user IDs, tags, name, pagination, and sorting.

Get File Details

GET /v1/external/admin/company/files/{id}

View Webhooks

GET /v1/admin/company/webhooks

Get File Details

DELETE /v1/admin/company/webhooks/{id} 
Returns: 204 No Content

Step 1 →

Register a webhook for file_processed

Step 2 →

Register file metadata and receive uploadUrl

Step 3 →

Upload the file to uploadUrl

Step 4 →

Wait for webhook callback

Step 5 →

Use the file ID to request the download URL

Step 6 →

Download the processed file

Reach Out for Accessibility Support!

* Fields marked with an asterisk are We’re here to help! Whether you have questions, need support, or want to discuss your needs, feel free to reach out. Our team is ready to assist you and ensure you have the best experience possible. fields.