Skip to content

Products

GET /v1/organizations/:orgId/products

Required role: Member.

Query parameters:

ParameterTypeDescription
archived"true" | "false"Filter by archive state. Defaults to active (non-archived) products.

Response:

{
"products": [
{
"id": "...",
"name": "My Product",
"slug": "my-product",
"description": null,
"standardId": "wcag-2-2",
"conformanceLevel": "aa",
"auditFrequency": 12,
"isPinned": false,
"archivedAt": null,
"organizationId": "...",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
]
}

POST /v1/organizations/:orgId/products

Required role: Admin or owner.

Request body:

FieldTypeRequiredDescription
namestringYesProduct name (max 100 characters).
descriptionstringNoOptional description.

A URL slug is generated automatically from the name. Returns 201 Created with a Location header.


GET /v1/organizations/:orgId/products/:productSlug

Required role: Member.


PATCH /v1/organizations/:orgId/products/:productSlug

Required role: Admin or owner.

Request body (all fields optional):

FieldTypeDescription
namestringNew name. Regenerates the slug.
descriptionstring | nullDescription.
standardIdstring | nullOverride the org’s default standard.
conformanceLevelstring | nullOverride the org’s default conformance level.
auditFrequency0 | 3 | 6 | 12 | nullMonths between audits. 0 or null = no schedule.

DELETE /v1/organizations/:orgId/products/:productSlug

Required role: Admin or owner.

Permanently deletes the product and all associated areas, audits, issues, and risks. Returns 204 No Content.


POST /v1/organizations/:orgId/products/:productSlug/archive

Required role: Admin or owner.

Marks the product and all its areas as archived. No new audits, issues, or risks can be created while archived. Idempotent — archiving an already-archived product succeeds.


POST /v1/organizations/:orgId/products/:productSlug/unarchive

Required role: Admin or owner.

Restores the product and all its areas. Idempotent.


POST /v1/organizations/:orgId/products/:productSlug/pin

Required role: Member.

Pins the product for the current user. Pin state is personal.


POST /v1/organizations/:orgId/products/:productSlug/unpin

Required role: Member.