Skip to content

Issues

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

GET /v1/organizations/:orgId/issues

Required role: Member.

Returns a paginated list of issues across all products in the organization.

Query parameters:

Parameter Type Description
page integer Page number (default: 1).
pageSize integer Results per page (default: 25, max: 100).
state "open" | "closed" Filter by state.
severity "high" | "medium" | "low" Filter by severity.
impact "high" | "medium" | "low" Filter by impact.
effort "high" | "medium" | "low" Filter by effort.
priority "critical" | "high" | "medium" | "low" Filter by priority.
source "ablebase" | "github" Filter by source.
productId string Filter to a specific product.
sortField string Field to sort by (e.g. "createdAt", "severity", "priority").
sortDirection "asc" | "desc" Sort direction (default: "desc").

Response:

{
"issues": [...],
"total": 142,
"page": 1,
"pageSize": 25
}

Each issue includes an areas array of associated area objects.


GET /v1/organizations/:orgId/issues/insights

Required role: Member.

Returns aggregated breakdowns of all issues in the organization:

  • By severity, priority, impact, effort, state
  • By conformance level
  • Top 10 requirements by issue count
  • By product

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

Required role: Member.

Accepts the same query parameters as the organization-level list, excluding productId.


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

Required role: Member.

Cannot create an issue in an archived product — returns 409 Conflict.

Request body:

Field Type Required Description
title string Yes Issue title (max 200 characters).
description string | null No Full description (max 2000 characters).
severity "high" | "medium" | "low" | null No Severity level.
impact "high" | "medium" | "low" | null No User impact.
effort "high" | "medium" | "low" | null No Remediation effort estimate.
priority "critical" | "high" | "medium" | "low" | null No Priority.
source "ablebase" | "github" No Source system (default: "ablebase").
sourceUrl string | null No URL of the external issue (e.g. GitHub issue URL).
sourceId string | null No External issue ID.
auditId string | null No ID of the audit this issue was found in.
areaIds string[] No IDs of areas to tag.

Issue numbers are sequential per product, assigned atomically. Returns 201 Created with a Location header.


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

Required role: Member.

:issueNumber is the sequential integer issue number. The response includes an areas array and a functionalNeeds array.


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

Required role: Member.

Request body (all fields optional):

Field Type Description
title string
description string | null
state "open" | "closed"
severity "high" | "medium" | "low" | null
impact "high" | "medium" | "low" | null
effort "high" | "medium" | "low" | null
priority "critical" | "high" | "medium" | "low" | null
sourceUrl string | null
sourceId string | null
auditId string | null
areaIds string[] Replaces the full set of area associations.

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

Required role: Admin or owner.

Returns 204 No Content.


GET /v1/organizations/:orgId/products/:productSlug/issues/:issueNumber/requirements

Required role: Member.

Returns all standard requirements linked to the issue.


PUT /v1/organizations/:orgId/products/:productSlug/issues/:issueNumber/requirements

Required role: Member.

Replaces the full set of requirement links for the issue. Send an empty array to remove all links.

Request body:

Field Type Description
requirementIds string[] IDs of requirements to link.

GET /v1/organizations/:orgId/products/:productSlug/issues/:issueNumber/functional-needs

Required role: Member.

Returns the functional needs linked to the issue.

Response:

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

PUT /v1/organizations/:orgId/products/:productSlug/issues/:issueNumber/functional-needs

Required role: Member.

Replaces the full set of functional need links for the issue. Send an empty array to remove all links. Returns the updated functionalNeeds array.

Request body:

Field Type Description
functionalNeedIds string[] IDs of functional needs to link (max 50). Unknown IDs return 400 Bad Request.

PATCH /v1/organizations/:orgId/issues/bulk

Required role: Member.

Updates up to 100 issues at once.

Request body:

Field Type Description
ids string[] Issue IDs to update (max 100).
data.state "open" | "closed" Optional.
data.severity "high" | "medium" | "low" | null Optional.
data.impact "high" | "medium" | "low" | null Optional.
data.effort "high" | "medium" | "low" | null Optional.
data.priority "critical" | "high" | "medium" | "low" | null Optional.

DELETE /v1/organizations/:orgId/issues/bulk

Required role: Admin or owner.

Request body:

Field Type Description
ids string[] Issue IDs to delete (max 100).