Skip to content

Set a manual WCAG review state

PUT
/v1/sites/{id}/a11y-manual-checks
curl --request PUT \
--url https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/a11y-manual-checks \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '{ "sc": "2.1.4", "status": "verified", "note": "No character-key shortcuts on the site." }'

Record a manual review state for a WCAG success criterion automation can’t test (e.g. 2.1.4 Character Key Shortcuts): verified, not_applicable, or failed, each with an optional note. Upserts — setting a criterion again replaces its state.

A documentation/audit layer only: manual states never affect the score or verdict. They surface in the report’s manualChecks and overlay the coverage matrix.

id
required
string format: uuid

The site’s UUID.

Media typeapplication/json
object
sc
required

The WCAG success criterion, e.g. 2.1.4.

string
status
required
string
Allowed values: verified not_applicable failed
note

An optional note for the audit trail.

string | null
Example
{
"sc": "2.1.4",
"status": "verified",
"note": "No character-key shortcuts on the site."
}

The state was recorded.

Media typeapplication/json
object
ok
required
boolean
Example
{
"ok": true
}

sc is missing or status is invalid.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "status must be verified, not_applicable, or failed"
}

Missing or invalid credentials.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "invalid api key"
}

No site with that id is visible to the caller.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "site not found"
}