Introduction & Overview #
This document explains the specifications of the PREP Checker API.
The Checker workflow for a PDF document involves two main steps:
- Upload file to Checker- Start the checker process by uploading the PDF file.
- Fetch the status & Download report- Retrieve the current processing status and results.
API Endpoints
-
Upload File to Checker
Endpoint: POST
/pdf-content/pdf/accessibility-check-init/- Initiates the checker process for the PDF.
- Returns a unique SourceId associated with the uploaded file.
-
Check Request Status & Download Report
Endpoint: POST
/pdf-content/pdf/check-status/- Retrieves the current status of the checker process.
- Returns the checker results in JSON format for the given file.
- Provides a downloadable URL of the checker report (if completed).
Base URL #
API Endpoints (Base URL)
BASE_URL = "https://api-pdfservice.continualengine.com"
Authentication #
Every request must include these headers:
- api-id: <your_api_id>
- app-key: <your_app_key>
Initiate Accessibility Check #
Initiate Accessibility Check
Endpoint
POST {BASE_URL}/pdf-content/pdf/accessibility-check-init/
Python Example
import requests
import json
BASE_URL = “https://api-pdfservice.continualengine.com”
headers = {
“api-id”: “”,
“app-key”: “”,
“Accept”: “application/json, text/plain, */*”
}
files = {
“pdf1”: open(“/path/to/your.pdf”, “rb”)
}
response =
requests.post(f”{BASE_URL}/pdf-content/pdf/accessibility-check-init/”, headers=headers, files=files)
print(response.json())
cURL Example
curl --location
“https://api-pdfservice.continualengine.com/pdf-content/pdf/accessibility-c heck-init/” \
–header “api-id: ” \
–header “app-key: ” \
–form ‘pdf1=@”/path/to/your.pdf”‘
Sample Response:
| Response JSON | Status code |
|---|---|
| {“message”: “ok”, “source_id”: 1423} | 200 |
Check Request Status #
Check Request Status
Endpoint
POST {BASE_URL}/pdf-content/pdf/check-status/
Python Example
import requests
import json
BASE_URL = “https://api-pdfservice.continualengine.com”
headers = {
“api-id”: “”,
“app-key”: “”,
“Accept”: “application/json, text/plain, */*”
}
data = {
“action”: “doc-checker”,
“source_id”: “”
}
response = requests.post(f”{BASE_URL}/pdf-content/pdf/check-status/”, headers=headers, data=data)
print(response.json())
cURL Example
curl –location
“https://api-pdfservice.continualengine.com/pdf-content/pdf/check-status/” \
–header “api-id: ” \
–header “app-key: ” \
–form ‘action=”doc-checker”‘ \
–form ‘source_id=””‘
Sample Response
| Status | Response JSON | HTTP Status Code |
|---|---|---|
| In Progress | {“file_id”: “”, “status”: “in-progress”, “result”: {}} | 200 |
| Completed | {“file_id”: “”, “status”: “completed”, “result”: {“checkerData”: []}, “file_url” : } | 200 |
| Failed | {“status”: “failed”, “error”: “Internal error.”} | 417 |
Workflow #
- Call Initiate Accessibility Check → get source_id.
- Poll Check Status with that source_id until status = completed.
- The response JSON includes the key file_url, which contains a direct S3 link to the downloadable report. (Note: This link will expire.)
Error Codes #
Error Codes
PREP can respond with errors with the below codes.
| Error | Response JSON | Status code |
|---|---|---|
| Resource exhausted | {“status”: “failed”, “error”: “Either out of resource quota or reaching rate limiting”} | 429 |
| Forbidden | {“status”: “failed”: “error”: “Forbidden”} | 403 |
| Bad Request | {“status”: “failed”: “error”: “Invalid argument”} | 400 |
| Internal error | {“status”: “failed”, “error”: “Internal error.”} | 500 |
Libraries (Dependencies) #
Whether you are using Python, JavaScript, Java, Ruby, or any other language, you can integrate with our API using the standard HTTP POST method.
Support #
You can reach out to the below contacts in case you have questions.
rajat.prakash@continualengine.com / shubham.doval@continualengine.com / support@continualengine.com