For Developers

Accessibility scanning for
your CI/CD pipeline

REST API, CLI tool, and GitHub Actions integration. Scan any URL for WCAG 2.2 violations and get structured results in seconds. 100 free scans per month — no credit card required.

curl
$ curl -X POST https://scanable.dev/api/v1/scan \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your-site.com"}'

{
  "score": 72,
  "summary": {
    "totalViolations": 23,
    "critical": 2, "serious": 5, "moderate": 12, "minor": 4
  },
  "violations": [ ... ]
}

REST API

POST a URL, get structured JSON back with score, violations, severity breakdown, affected elements, and WCAG criteria.

  • 100 free scans/month
  • Bearer token auth
  • Rate limit headers
API Documentation

CLI Tool

Coming soon

Run accessibility scans from your terminal. Zero install with npx. Local scanning with Puppeteer or API mode for speed.

  • npx scanable
  • JSON / CSV output
  • --threshold 80 for CI

npm package publishing soon. Use the API in the meantime.

CI/CD

Coming soon

Fail builds on accessibility regressions. Use the API in CI scripts today, or wait for the CLI with built-in threshold flags.

  • GitHub Actions ready
  • Exit code 1 on failure
  • Works with any CI system
Integration Guide

Get started in 30 seconds

1

Get your API key

curl
curl -X POST https://scanable.dev/api/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'
2

Scan any URL

javascript
const res = await fetch("https://scanable.dev/api/v1/scan", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk_live_your_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "https://your-site.com" }),
});
const { score, violations } = await res.json();
console.log(`Score: ${score}/100, ${violations.length} issues`);
3

Add to GitHub Actions

yaml
# .github/workflows/accessibility.yml
name: Accessibility Check
on: [pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - name: Run accessibility scan
        run: |
          SCORE=$(curl -s -X POST https://scanable.dev/api/v1/scan \
            -H "Authorization: Bearer ${{ secrets.SCANABLE_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{"url": "https://your-site.com"}' | jq '.score')
          echo "Score: $SCORE"
          [ "$SCORE" -ge 80 ] || (echo "Score below 80" && exit 1)

API Pricing

Start free. Scale when you need to. All plans include the full JSON response with violations, severity, and WCAG criteria.

Free

$0forever

100 scans/mo

  • All violations (summary)
  • Score + severity breakdown
  • WCAG criteria per rule
  • No credit card
Get API Key

Starter

$19/month

1,000 scans/mo

  • Everything in Free
  • Fix instructions per element
  • Affected HTML + selectors
  • $0.019 per scan
Coming soon

Growth

$49/month

5,000 scans/mo

  • Everything in Starter
  • Fix instructions included
  • $0.0098 per scan
  • Bulk scanning
Coming soon

Scale

$149/month

25,000 scans/mo

  • Everything in Growth
  • Fix instructions included
  • $0.006 per scan
  • Dedicated support
Coming soon

Need a one-time compliance report instead? Get a PDF report for $19

Why developers choose ScanAble

Powered by axe-core

The same engine used by Google, Microsoft, and Deque. WCAG 2.2 Level AA with best practices.

Weighted scoring

Not just pass/fail. Score 0-100 weighted by severity — critical issues count 10x more than minor ones.

Simple auth

Bearer token in the header. No OAuth complexity. Generate a key with one API call.

Works offline

CLI runs locally with Puppeteer — no API key needed. Use API mode for speed when you want it.

5x cheaper at scale

Most accessibility APIs charge $0.025-0.12 per scan. ScanAble starts at $0.006/scan at volume. Same data, better price.

CI-native

Exit code 1 when score drops below threshold. JSON output for machine parsing. Built for pipelines.

Start scanning for free

100 free API scans per month. No credit card required. Get your key in one request.