API Reference
Integrate Adaline into your workflow with our REST API.
Overview
The Adaline API lets you integrate accessibility scanning into your existing workflows. All endpoints use REST conventions and return JSON responses.
Base URL: https://api.adaline.ink
Authentication
All API requests require an API key passed in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.adaline.ink/api/scans
Getting Your API Key
- Go to Settings > API
- Click Generate API Key
- Copy and securely store your key
API keys have the same permissions as your account. Keep them secret.
Endpoints
List Scans
GET /api/scans
Returns a paginated list of your scans.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (default: 1) |
limit | number | Results per page (default: 20, max: 100) |
status | string | Filter by status: queued, processing, complete, failed |
Example Response:
{
"scans": [
{
"id": "scan_abc123",
"filename": "annual-report.pdf",
"status": "complete",
"score": 85,
"issues_count": 12,
"created_at": "2025-03-15T10:30:00Z"
}
],
"total": 45,
"page": 1,
"limit": 20
}
Create Scan
POST /api/scans
Upload a document for scanning. Use multipart/form-data for file uploads or JSON for URL scanning.
File Upload:
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.pdf" \
-F "label=Q4 Annual Report" \
https://api.adaline.ink/api/scans
URL Scan:
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "label": "Homepage"}' \
https://api.adaline.ink/api/scans
Get Scan
GET /api/scans/:id
Returns details for a specific scan, including the full report when complete.
Get Report
GET /api/scans/:id/report
Returns the detailed accessibility report for a completed scan.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
format | string | Response format: json (default), csv, pdf |
Delete Scan
DELETE /api/scans/:id
Permanently deletes a scan and its report.
Rate Limits
- 100 requests per minute for read operations (GET)
- 10 requests per minute for write operations (POST, DELETE)
Rate limit headers are included in every response:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1710500000
Error Responses
All errors return a consistent JSON structure:
{
"error": {
"code": "invalid_file_type",
"message": "Only PDF, DOCX, PPTX, and XLSX files are supported."
}
}
| HTTP Status | Meaning |
|---|---|
| 400 | Bad request -- check your parameters |
| 401 | Unauthorized -- check your API key |
| 404 | Not found -- the resource doesn't exist |
| 429 | Rate limited -- slow down |
| 500 | Server error -- try again later |
Webhooks
You can configure a webhook URL to receive notifications when scans complete:
- Go to Settings > API > Webhooks
- Enter your webhook endpoint URL
- Select which events to receive
Webhook payloads are POST requests with a JSON body containing the scan details.