Skip to content

Standards

import { Aside } from ‘@astrojs/starlight/components’;

GET /v1/organizations/:orgId/standards

Required role: Member.

Returns all standards visible to the organization: global built-in standards plus any custom standards the organization has created.

Response:

{
"standards": [
{
"id": "...",
"name": "WCAG 2.2",
"slug": "wcag-2-2",
"description": "...",
"source": "built_in",
"editable": false,
"organizationId": null,
"cumulative": true,
"levels": [
{ "id": "a", "name": "Level A", "sortOrder": 0 },
{ "id": "aa", "name": "Level AA", "sortOrder": 1 },
{ "id": "aaa", "name": "Level AAA", "sortOrder": 2 }
],
"createdAt": "...",
"updatedAt": "..."
}
]
}

POST /v1/organizations/:orgId/standards

Required role: Admin or owner.

Request body:

Field Type Required Description
name string Yes Standard name.
description string | null No Optional description.
levels array No Ordered conformance levels. Each item: { name: string, description?: string }.
cumulative boolean No Whether meeting a higher level implies all lower levels (default: false).

Returns 201 Created.


PATCH /v1/organizations/:orgId/standards/:standardSlug

Required role: Admin or owner. Built-in standards cannot be updated.

Request body (all fields optional):

Field Type Description
name string
description string | null
levels array Replaces the full set of levels. Removing a level that is referenced by products, organizations, or audits clears those references.
cumulative boolean

DELETE /v1/organizations/:orgId/standards/:standardSlug

Required role: Admin or owner. Built-in standards cannot be deleted.

Clears any references to this standard on organizations, products, and audits. Returns 204 No Content.


POST /v1/organizations/:orgId/standards/:standardSlug/duplicate

Required role: Admin or owner.

Creates an editable custom copy of any standard, including built-in ones. The copy includes all requirement groups and requirements. Returns 201 Created.


GET /v1/organizations/:orgId/standards/:standardSlug/requirements

Required role: Member.

Query parameters:

Parameter Type Description
version string Filter by version tag.
level string Filter by conformance level ID.

POST /v1/organizations/:orgId/standards/:standardSlug/requirements

Required role: Admin or owner. Custom standards only.

Request body:

Field Type Required Description
name string Yes Short criterion title.
description string | null No Full description.
url string | null No Link to an external reference.
level string | null No Conformance level ID this requirement belongs to.
versions string[] No Version tags (e.g. ["2.1", "2.2"]).
aiTestable boolean No Whether this can be evaluated by automated tooling.
groupId string | null No Requirement group to place this in.
metadata object No Arbitrary key/value metadata.

PATCH /v1/organizations/:orgId/standards/:standardSlug/requirements/:requirementId

Required role: Admin or owner. Custom standards only.

Accepts the same fields as the create body, all optional.


DELETE /v1/organizations/:orgId/standards/:standardSlug/requirements/:requirementId

Required role: Admin or owner. Custom standards only.

Returns 204 No Content.


POST /v1/organizations/:orgId/standards/:standardSlug/groups

Required role: Admin or owner. Custom standards only.

Request body:

Field Type Required Description
name string Yes Group name.
description string | null No Optional description.
parentId string | null No Parent group ID for nested groups. Circular references are rejected.

PATCH /v1/organizations/:orgId/standards/:standardSlug/groups/:groupId

Required role: Admin or owner. Custom standards only.

Accepts the same fields as the create body, all optional.


DELETE /v1/organizations/:orgId/standards/:standardSlug/groups/:groupId

Required role: Admin or owner. Custom standards only.

Returns 204 No Content.


GET /v1/functional-needs

Required role: Any authenticated user.

Returns the built-in functional needs taxonomy, ordered by sort order. This list is global rather than organization-scoped, and it is read-only: there are no create, update, or delete endpoints.

Response:

{
"functionalNeeds": [
{ "id": "...", "slug": "without-vision", "name": "Without vision", "url": "..." }
]
}