---
title: "Missing Keys Stats"
method: GET
path: "/v1/mcp/projects/{project_id}/missing-keys/stats"
tags: ["mcp"]
---

# Missing Keys Stats

`GET /v1/mcp/projects/{project_id}/missing-keys/stats`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/mcp/projects/{project_id}/missing-keys/stats`
- Auth: none declared

Count-only summary of outstanding missing-key events.

Filters mirror `list_missing_keys` so an LLM paginating that endpoint
can read `total` here and know exactly how many pages remain. One
`$facet` aggregation, no row payloads.

## Path parameters

- `project_id` string, required

## Query parameters

- `namespace` string, nullable
- `language_code` string, nullable
- `status` string, nullable: Defaults to `open` — what the LLM cares about. Pass an explicit status to override; pass `all` to count every status.

## Response `200`

Successful Response

- MissingKeysStats: Lightweight count-only summary of missing-key events. Returned by `GET /v1/mcp/projects/{id}/missing-keys/stats` so an LLM paginating through `list_missing_keys` can see how many rows remain overall (and per language / namespace / status) before deciding when to stop. No payload data — counts only.
  - `project_uuid` string, required
  - `total` integer, required
  - `with_default_value` integer, required
  - `source_missing` integer
  - `by_status` CountBucket[], required
    - `label` string, required
    - `count` integer, required
  - `by_language` CountBucket[], required
    - `label` string, required
    - `count` integer, required
  - `by_namespace` CountBucket[], required
    - `label` string, required
    - `count` integer, 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)
