---
title: "Recommend Surfaces"
method: GET
path: "/v1/projects/{project_id}/recommend-surfaces"
tags: ["reports"]
---

# Recommend Surfaces

`GET /v1/projects/{project_id}/recommend-surfaces`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/recommend-surfaces`
- Auth: none declared

Per-key a11y surface recommendations from the key's type (A11Y_TREATMENTS_BY_TYPE),
flagging which are active + already in the source — the agent's turn-key signal
so it never duplicates the type->treatment mapping. Device surfaces are out of scope.

## Path parameters

- `project_id` string, required

## Query parameters

- `version_id` string, nullable
- `namespace_id` string, nullable
- `key_id` string, nullable
- `only_gaps` boolean: only keys with an active a11y surface absent in source

## Response `200`

Successful Response

- RecommendSurfacesOut
  - `project_uuid` string, required
  - `version_uuid` string, nullable, required
  - `active_a11y_surfaces` string[], required
  - `keys_scanned` integer, required
  - `keys_with_gaps` integer, required
  - `gaps_by_surface` object, required
  - `items` RecommendedKey[], required
    - `key_uuid` string, required
    - `key_name` string, required
    - `namespace_slug` string, required
    - `type` string, required
    - `base_role` string, required
    - `recommended_surfaces` SurfaceRecommendation[], required
      - `surface` string, required
      - `active` boolean, required
      - `present_in_source` boolean, required
    - `has_gap` boolean, required

## 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)
