Skip to main content

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

  1. Go to Settings > API
  2. Click Generate API Key
  3. 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:

ParameterTypeDescription
pagenumberPage number (default: 1)
limitnumberResults per page (default: 20, max: 100)
statusstringFilter 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:

ParameterTypeDescription
formatstringResponse 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 StatusMeaning
400Bad request -- check your parameters
401Unauthorized -- check your API key
404Not found -- the resource doesn't exist
429Rate limited -- slow down
500Server error -- try again later

Webhooks

You can configure a webhook URL to receive notifications when scans complete:

  1. Go to Settings > API > Webhooks
  2. Enter your webhook endpoint URL
  3. Select which events to receive

Webhook payloads are POST requests with a JSON body containing the scan details.

2026 — Adaline Help | Part of the Adaline ecosystem