{"service":"access-scan","endpoints":{"POST /toll/access/scan":{"price_usd":0.05,"price_status":"RULED","request":{"url":"public http/https page URL to scan"}},"POST /toll/access/scan/preflight":{"price":"free","request":{"url":"same body as /scan"},"response":"{servable, reason_class, fence_code, deliverable, price (with price_status RULED), checks, request_fingerprint, valid_for_seconds, disclosure} - servability + fence verdict + price only; no render, no charge, no accessibility signal"},"POST /toll/access/crawl":{"pricing":"computed from the sitemap before payment: $0.05/page for the first 25 pages, $0.02/page beyond, max 50 pages","price_status":"RULED","request":{"url":"site URL (its /sitemap.xml is used)","sitemap_url":"explicit sitemap URL (alternative to url)"}},"POST /toll/access/crawl/preflight":{"price":"free","request":{"url":"same body as /crawl","sitemap_url":"same body as /crawl"},"response":"{servable, reason_class, deliverable, price_preview (exact tiered total from the sitemap), price, checks, request_fingerprint, valid_for_seconds, disclosure} - no page is rendered, no charge"},"GET /toll/access/report/{id}":{"price":"free - the report_id from a paid scan/crawl is the access token"}},"response":{"summary":"verdict-first: violation totals by impact (critical/serious/moderate/minor), rules failed/passed/incomplete, plus a one-line headline","findings":"[{id, impact, description, help, help_url, wcag_tags, nodes (affected-element count), samples (capped element targets/HTML/failure text)}]","incomplete":"checks the tooling could not determine - same shape as findings; these need human review","report_id":"id of the stored report (kept 90 days); fetch it again free at GET /report/{id}","disclosure":"the findings-only disclosure, present in every response","envelope":"fleet metadata envelope: {v, service, as_of, source, grade, max_age_seconds, changes: {supported: false}}"},"rules":["Findings come from automated checks only; a page with zero violations is NOT thereby accessible or compliant - most WCAG criteria cannot be fully tested automatically.","A failed render (timeout, HTTP error, oversized page, redirect to a non-public address) returns an error, never invented findings.","In a crawl, a page that fails to scan is listed with its error and excluded from the totals; if every page fails, the crawl returns an error and stores nothing."],"limitations":["Automated checks find only a subset of accessibility issues: about 57% of issues by volume on average, covering roughly 20-40% of WCAG success criteria (Deque axe-core study; UK GDS/DWP automated-tool evaluations). Checks this tooling cannot determine are reported as incomplete and need human review. This report is findings only - it is not a compliance determination or certification.","Rendering is a headless-Chromium snapshot: content behind logins, paywalls, or user interaction is not scanned, and results can differ slightly across browsers and assistive technologies.","Only the rendered page at scan time is checked; later changes to the page are not reflected in a stored report.","Pages over 25000 DOM nodes and redirects to non-public addresses are refused rather than partially scanned.","Crawls scan same-origin pages listed in the site's sitemap, up to 50 pages; pages not in the sitemap are not discovered.","Stored reports are kept for 90 days. The report_id acts as an access token - treat the report URL as a private link."],"envelope":{"v":1,"service":"access-scan","as_of":"2026-11-14T14:49:31.706Z","source":"access-scan service configuration","grade":"derived","max_age_seconds":300,"changes":{"supported":false}}}