adaline.report API Reference
Complete REST API documentation for the Adaline Report compliance scanning service.
Base URL
https://api.adaline.report
Authentication
Requests are authenticated with an API key in the X-API-Key header:
X-API-Key: your-api-key
Contact us to obtain an API key.
Error Format
{
"detail": "Error description"
}
HTTP status codes: 400 (validation), 401 (unauthorized), 404 (not found), 429 (rate limited), 500 (server error).
Scanning
POST /api/v1/scan
Upload a document for compliance scanning. Send as multipart/form-data.
| Field | Type | Required |
|---|---|---|
| file | file | Yes |
| tiers | string | No (default: "1") |
Supported formats: PDF, DOCX, PPTX, HTML, Markdown, LaTeX.
# Scan a PDF document
curl -X POST https://api.adaline.report/api/v1/scan \
-H "X-API-Key: your-api-key" \
-F "file=@document.pdf"
# Scan with specific tiers
curl -X POST https://api.adaline.report/api/v1/scan \
-H "X-API-Key: your-api-key" \
-F "file=@document.pdf" \
-F "tiers=1,2"
Returns:
{
"report_id": "uuid",
"overall_score": 87.5,
"grade": "B",
"compliant": false,
"total_passed": 9,
"total_checks": 12,
"categories": { ... },
"checks": [ ... ]
}
Reports
GET /api/v1/reports
List all reports. Supports pagination.
| Param | Type | Default |
|---|---|---|
| page | number | 1 |
| page_size | number | 20 |
# List reports (first page)
curl https://api.adaline.report/api/v1/reports \
-H "X-API-Key: your-api-key"
# List with pagination
curl "https://api.adaline.report/api/v1/reports?page=2&page_size=10" \
-H "X-API-Key: your-api-key"
GET /api/v1/reports/:id
Get a specific report with full check details, category scores, and issue list.
curl https://api.adaline.report/api/v1/reports/REPORT_ID \
-H "X-API-Key: your-api-key"
DELETE /api/v1/reports/:id
Delete a report.
curl -X DELETE https://api.adaline.report/api/v1/reports/REPORT_ID \
-H "X-API-Key: your-api-key"
Report Sharing
POST /api/v1/reports/:id/share
Create a shareable link for a report.
Returns: { share_id, share_url }
# Create a share link
curl -X POST https://api.adaline.report/api/v1/reports/REPORT_ID/share \
-H "X-API-Key: your-api-key"
GET /api/v1/shared/:share_id
View a shared report (no authentication required).
# View shared report (no auth needed)
curl https://api.adaline.report/api/v1/shared/SHARE_ID
Tags
GET /api/v1/tags
List all tags.
curl https://api.adaline.report/api/v1/tags \
-H "X-API-Key: your-api-key"
POST /api/v1/tags
Create a tag.
| Field | Type | Required |
|---|---|---|
| name | string | Yes |
| color | string | No |
curl -X POST https://api.adaline.report/api/v1/tags \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"name": "needs-review", "color": "red"}'
DELETE /api/v1/tags/:id
Delete a tag.
curl -X DELETE https://api.adaline.report/api/v1/tags/TAG_ID \
-H "X-API-Key: your-api-key"
POST /api/v1/tags/:tag_id/reports/:report_id
Add a tag to a report.
curl -X POST https://api.adaline.report/api/v1/tags/TAG_ID/reports/REPORT_ID \
-H "X-API-Key: your-api-key"
DELETE /api/v1/tags/:tag_id/reports/:report_id
Remove a tag from a report.
curl -X DELETE https://api.adaline.report/api/v1/tags/TAG_ID/reports/REPORT_ID \
-H "X-API-Key: your-api-key"
Health
GET /health
Returns: { "status": "ok", "service": "adaline-report-api" }
curl https://api.adaline.report/health
GET /api/v1/status
Returns service status with database and storage connectivity.
curl https://api.adaline.report/api/v1/status
Compliance Checks
The scanner runs 12 checks across 6 weighted categories:
| Category | Weight | Checks |
|---|---|---|
| Document Structure | 25% | Language set, title set, headings present, heading hierarchy, list structure |
| Images & Media | 20% | Image alt text, figure alt text, figure captions |
| Tables | 15% | Table headers marked |
| Tagged PDF Structure | 15% | PDF structure tags present |
| Forms | 10% | Form field labels |
| Navigation | 5% | Bookmarks for long documents |
Grading Scale
| Grade | Score |
|---|---|
| A | 95 - 100% |
| B | 85 - 94% |
| C | 70 - 84% |
| D | 50 - 69% |
| F | Below 50% |
A document is considered compliant at 95% or above (Grade A).
Severity Levels
- Critical -- Must fix for compliance (e.g., missing alt text, no document language)
- Major -- Significant accessibility barrier (e.g., skipped heading levels)
- Minor -- Best practice improvement (e.g., untyped list)