Reference
API reference
The whole corpus is public JSON under /v1 — no keys, no rate cards, open cross-origin access. Read the WCAG registry, the LAKA model and its 700 analysis cells, the example rules and the source register; validate your own rule documents against the published schema.
Base URL: https://wcag.bowtiekreative.com · Machine description: OpenAPI 3.1 · Agent guide: /llms.txt
Endpoints
| Method | Path | What it returns |
|---|---|---|
GET |
/v1 |
This index |
GET |
/v1/health |
Liveness and corpus counts |
GET |
/v1/openapi.json |
OpenAPI 3.1 description of this API |
GET |
/v1/manifest |
Package manifest, inventory and validation report |
GET |
/v1/model |
The LAKA model: levels, variables, lenses and the 50-cell base grid |
GET |
/v1/criteria |
The 55 WCAG 2.2 A/AA criteria — filter by level, principle or q |
GET |
/v1/criteria/{id} |
One criterion, e.g. 1.4.3, with sources and related rules |
GET |
/v1/cells |
The 700 LAKA analysis cells — filter by level, variable or lens |
GET |
/v1/cells/{id} |
One analysis cell, e.g. L0-I01-M01 |
GET |
/v1/rules |
The schema-validated example rules |
GET |
/v1/rules/{id} |
One example rule, in full |
GET |
/v1/schema |
The JSON Schema for a rule document |
GET |
/v1/evidence-template |
The untested-evidence record template |
GET |
/v1/sources |
The primary source register |
GET |
/v1/docs |
The package documents |
GET |
/v1/docs/{slug} |
One document, as markdown |
GET |
/v1/validation-report |
The package structural validation report |
POST |
/v1/validate |
Validate a rule document against the schema |
POST |
/v1/evaluate |
Alias of /v1/validate |
Filtering the registry
The criteria list accepts level (A or AA), principle (Perceivable, Operable, Understandable, Robust) and free-text q:
GET /v1/criteria?level=AA&principle=Operable
GET /v1/criteria/1.4.3
Querying the analysis cells
The 700 cells filter by level (change level), variable (internal variable) and lens (measurement lens), with limit/offset paging:
GET /v1/cells?level=Baseline&variable=Object
GET /v1/cells?lens=Detectability&limit=20
Validating a rule
POST a JSON rule document to /v1/validate. It is checked against the published schema — required fields, expression shapes, enumerations, and the honesty constraints (covers_full_criteria must be false; execution_status must be "NOT_TESTED"). The response reports valid plus a list of errors with JSON paths.
{
"id": "LAKA-WCAG-EXAMPLE-RULE",
"version": "1.0.0",
"authority": "wcag_requirement",
"source_refs": [
"SC-2.4.11"
],
"wcag_refs": [
{
"criterion_id": "2.4.11",
"level": "AA"
}
],
"covers_full_criteria": false,
"execution_status": "NOT_TESTED"
}
curl -X POST https://wcag.bowtiekreative.com/v1/validate \
-H 'content-type: application/json' \
--data @my-rule.json
Caching & access
Read endpoints are cacheable and served with permissive cross-origin headers. There is no authentication and no usage charge — this is a free public reference.