---
title: "A11Y Review Queue"
method: GET
path: "/v1/projects/{project_id}/a11y/review/queue"
tags: ["a11y"]
---

# A11Y Review Queue

`GET /v1/projects/{project_id}/a11y/review/queue`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/a11y/review/queue`
- Auth: none declared

Unified a11y moderation view (overrides + gaps) per key x surface x locale.
With group_by_key=true: one entry per key in `key_groups` (cells nested) and
KEY-level rollups (task 1338/PL2); flat `items` is empty in that mode. By default
a11y_untranslated cells are segregated into untranslated_count (task 1345/AC1).

## Path parameters

- `project_id` string, required

## Query parameters

- `version_id` string, nullable
- `surface` string, nullable
- `locale` string, nullable
- `state` string, nullable
- `gap` string, nullable
- `namespace_uuid` string, nullable
- `key_uuid` string, nullable: scope to a single key (detail panel)
- `limit` integer
- `offset` integer
- `reading_level_max_words` integer
- `include_ignored` boolean: include cells suppressed by an approved remediation plan
- `group_by_key` boolean: aggregate by key: one entry per key (key_groups), languages nested, per-key counters; pagination applies to KEYS
- `include_untranslated` boolean: include a11y_untranslated (translation-coverage) cells; default excludes them (segregated into untranslated_count)

## Response `200`

Successful Response

- A11yQueueOut
  - `project_uuid` string, required
  - `version_uuid` string, nullable, required
  - `total` integer, required
  - `by_state` object, required
  - `by_surface` object, required
  - `items` A11yQueueItem[], required
    - `key_uuid` string, required
    - `key_name` string, required
    - `namespace_slug` string, required
    - `key_type` string
    - `surface` string, required
    - `surface_kind` string, required
    - `locale` string, required
    - `state` string, required
    - `value` string, nullable
    - `is_bot` boolean
    - `gap` string, nullable
    - `base_value` string
    - `screenshots` string[]
    - `drift` boolean
    - `ignored` boolean
    - `ignore_reason` string, nullable
    - `reject_reason` string, nullable
  - `key_groups` A11yKeyGroup[], nullable
    - `key_uuid` string, required
    - `key_name` string, required
    - `namespace_slug` string, required
    - `key_type` string
    - `total` integer, required
    - `by_state` object, required
    - `by_surface` object, required
    - `cells` A11yQueueItem[], required
      - `key_uuid` string, required
      - `key_name` string, required
      - `namespace_slug` string, required
      - `key_type` string
      - `surface` string, required
      - `surface_kind` string, required
      - `locale` string, required
      - `state` string, required
      - `value` string, nullable
      - `is_bot` boolean
      - `gap` string, nullable
      - `base_value` string
      - `screenshots` string[]
      - `drift` boolean
      - `ignored` boolean
      - `ignore_reason` string, nullable
      - `reject_reason` string, nullable
  - `untranslated_count` integer
  - `actionable_key_count` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sonenta/apis/sonenta-api.md) · [All operations](https://skmtc.dev/sonenta/apis/sonenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sonenta/apis/sonenta-api/revisions/f853ea49fb05?raw)
