> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alignr.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List standards

> Requires `detection_rule.read`. Results are scoped to the authenticated tenant. This reference is generated from source; consult the authenticated live schema for deployment-specific availability.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/standards
openapi: 3.1.0
info:
  title: Alignr API
  version: 0.1.0
  description: >-
    Selected read operations. Generated from the Alignr application; no tenant
    data is included.
servers:
  - url: https://api.alignr.io
security: []
paths:
  /api/v1/standards:
    get:
      tags:
        - Standards
      summary: List standards
      description: >-
        Requires `detection_rule.read`. Results are scoped to the authenticated
        tenant. This reference is generated from source; consult the
        authenticated live schema for deployment-specific availability.
      operationId: list_standards_api_v1_standards_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardPage'
      security:
        - BearerAuth: []
components:
  schemas:
    StandardPage:
      properties:
        items:
          items:
            $ref: '#/components/schemas/StandardRead'
          type: array
          title: Items
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        pageSize:
          type: integer
          title: Pagesize
        totalPages:
          type: integer
          title: Totalpages
      type: object
      required:
        - items
        - total
        - page
        - pageSize
        - totalPages
      title: StandardPage
    StandardRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        tenantId:
          type: string
          format: uuid
          title: Tenantid
        name:
          type: string
          title: Name
        slug:
          type: string
          title: Slug
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        enabled:
          type: boolean
          title: Enabled
        isSystem:
          type: boolean
          title: Issystem
        version:
          type: integer
          title: Version
        controlCount:
          type: integer
          title: Controlcount
        manualCheckCount:
          type: integer
          title: Manualcheckcount
          default: 0
        organizationCount:
          type: integer
          title: Organizationcount
        rollup:
          $ref: '#/components/schemas/EvaluationRunStatusCounts'
        createdAt:
          type: string
          format: date-time
          title: Createdat
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
      type: object
      required:
        - id
        - tenantId
        - name
        - slug
        - enabled
        - isSystem
        - version
        - controlCount
        - organizationCount
        - rollup
        - createdAt
        - updatedAt
      title: StandardRead
      description: >-
        `GET /standards`, `GET /standards/{id}`, `PATCH /standards/{id}`,

        `POST /standards/{id}/copy` (`Standard` in
        `frontend/src/types/standards.ts`).


        `controlCount`/`organizationCount` are not columns — `controlCount` is
        this

        standard's own control count, and `organizationCount` is how many
        organisations

        have actually had a control from this standard evaluated at least once
        (a

        freshly created or copied standard is legitimately `0`, per the Clients
        tab's

        own "not applied to any organization yet" empty state — it is not the
        tenant's

        total organisation count, which every standard would then share and
        which

        would never legitimately answer `0`).


        `rollup` is the five-status breakdown across every organisation's latest

        evaluation of every control belonging to this standard — the Standards
        list

        page's five-segment status bar, computed the same way

        `control_evaluation_service.rollup_statuses` already computes it for one

        evaluation run, just over `latest_evaluations(standard_id=...)` instead.
    EvaluationRunStatusCounts:
      properties:
        pass:
          type: integer
          title: Pass
          default: 0
        fail:
          type: integer
          title: Fail
          default: 0
        noData:
          type: integer
          title: Nodata
          default: 0
        notCovered:
          type: integer
          title: Notcovered
          default: 0
        notApplicable:
          type: integer
          title: Notapplicable
          default: 0
      type: object
      title: EvaluationRunStatusCounts
      description: >-
        The five `control_status` values' counts, aggregated over a set of

        evaluations. Unlike `ComplianceGridRead.rollup` (a single worst-case
        status

        for one organisation, per `frontend/src/features/organization-detail/

        compliance/ComplianceTab.tsx`'s own note), this is the literal breakdown
        a

        "rollup"/"statusCounts" name promises — used both by

        `EvaluationRunRead.statusCounts` (one run) and `StandardRead.rollup` /

        `StandardOrganizationRead.rollup` (the latest evaluation per control,
        across

        a standard's organisations or one organisation's controls respectively).
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: An Alignr API key.

````