Skip to content

API Reference

The Ablebase API is a JSON REST API. All resource endpoints are versioned under /v1. Authentication endpoints are served at /api/auth/* by Better Auth.

https://<your-domain>/v1

All /v1 endpoints require an active session cookie obtained via the auth endpoints. See Authentication for details.

  • IDs: Organization IDs and resource IDs are UUIDs. Products, areas, and standards are identified by a URL slug. Audits, issues, and risks are identified by a sequential number scoped to their product.
  • Request body: application/json.
  • Successful responses: 200 OK with a JSON body, or 201 Created with a Location header pointing to the new resource.
  • Empty responses: 204 No Content (e.g. deletes).
  • Error responses: JSON with an error object. See Errors below.
  • Dates: All timestamps are ISO 8601 strings in UTC.

Error responses have the following shape:

{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}
CodeHTTP statusMeaning
VALIDATION_ERROR400Request body or query parameter failed validation.
UNAUTHORIZED401No valid session.
FORBIDDEN403Authenticated but lacking the required role.
NOT_FOUND404Resource does not exist.
CONFLICT409Operation not allowed in the current state (e.g. creating in an archived product).
INTERNAL_ERROR500Unexpected server error.
ScopeLimit
Global100 requests / minute
Sign-in5 attempts / 10 minutes
Sign-up3 attempts / hour
Password reset3 attempts / hour

Exceeding a limit returns 429 Too Many Requests.

Authentication

Session-based auth and GitHub OAuth.

Products

Create and manage products.

Areas

Subdivide products into areas.

Audits

Run and track accessibility audits.

Issues

Track and bulk-manage accessibility issues.

Risks

Identify and materialize accessibility risks.

Standards

Manage standards, groups, and requirements.

Saved Views

Persist filter and sort state as named views.