docs / endpoint

POST /v1/page/accessibility

Axe accessibility scan of a single page — violations, keyboard-navigation checks, honest scan status.

Credits: 2 credits per call. Timeout: 120s

Parameters

NameTypeRequiredDefaultDescription
url string required Absolute http(s) page URL to scan. Required, max 2048 chars.

Request

→ requestPOST /v1/page/accessibility
POST /v1/page/accessibility HTTP/1.1
Authorization: Bearer sof_live_your_key_here
Content-Type: application/json

{
  "url": "https://seojuice.io/"
}

Response

Wrapped in the standard envelope -- id, object, created_at, elapsed_ms, cache, credits -- documented once on The Contract. The body below is a real envelope with this endpoint's data shape; values vary per request, and a marks an array cut short for display.

← response200
{
  "id": "acce_25u5ilugjx57hjvskxbjti5h",
  "request_id": "req_aewplvzx7zc57jyw74p5i3ab4m",
  "object": "accessibility",
  "created_at": "2026-08-09T07:21:04Z",
  "elapsed_ms": 180,
  "cache": "miss",
  "credits": {
    "charged": 2,
    "balance": 9857
  },
  "data": {
    "url": "https://seojuice.io/",
    "status": "complete",
    "violations": [
      {
        "id": "color-contrast",
        "impact": "serious",
        "help": "Elements must meet minimum color contrast ratio thresholds",
        "help_url": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
        "nodes_count": 77
      }
    ],
    "passes_count": 23,
    "incomplete_count": 1,
    "keyboard": {
      "interactive_total": 100,
      "reached": 95,
      "focus_trap": false,
      "has_skip_link": false
    },
    "engine": {
      "axe_version": "4.10.3"
    }
  }
}

Response fields

What each field in data (above) means.

FieldDescription
data.url The URL you requested.
data.status Scan outcome: "complete" (axe + keyboard walk both ran), "partial" (axe ran, the keyboard walk was skipped or truncated), or "blocked" (no work product -- refunded automatically).
data.violations Axe rule violations found on the page, one entry per rule.
data.violations[].id Axe rule id, e.g. "color-contrast".
data.violations[].impact Axe severity for this rule: minor, moderate, serious, or critical.
data.violations[].help One-line description of what the rule requires.
data.violations[].help_url Deque University reference page for the rule.
data.violations[].nodes_count How many elements on the page violate this rule.
data.passes_count Number of axe rules the page passed.
data.incomplete_count Number of rules axe could not conclusively evaluate.
data.keyboard Keyboard-navigation walk results.
data.keyboard.interactive_total Interactive elements found on the page.
data.keyboard.reached How many of them keyboard focus could reach.
data.keyboard.focus_trap true if focus got stuck somewhere it couldn't leave.
data.keyboard.has_skip_link true if the page offers a skip-to-content link.
data.engine Scanner version info.
data.engine.axe_version The axe-core version that produced this scan.