---
title: "Promote Missing Key"
method: POST
path: "/v1/mcp/projects/{project_id}/missing-keys/promote"
tags: ["mcp"]
---

# Promote Missing Key

`POST /v1/mcp/projects/{project_id}/missing-keys/promote`

## Request

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

Promote missing-events that carry a REAL default value into project keys (task 745).

For each event with `has_default_value`, create the project key (in the
production version) with the captured default as its source-language value —
which auto-resolves the open event (via `_ensure_key` → resolve_open_missing).
Events without a real default error per item (no source to seed); unknown /
cross-project uuids and vanished namespaces also error per item. Idempotent:
an already-existing key returns created=false (and still resolves the event).
The plan key-cap is a whole-batch gate (mirrors create_keys_bulk).

## Path parameters

- `project_id` string, required

## Request body

- PromoteMissingIn
  - `uuids` string[], required: Missing-event uuids to promote into project keys (single or bulk).

## Response `200`

Successful Response

- PromoteMissingOut
  - `results` PromoteMissingResult[], required
    - `uuid` string, required
    - `status` string, required
    - `key_uuid` string, nullable
    - `key_name` string, nullable
    - `namespace_slug` string, nullable
    - `created` boolean, nullable
    - `error` BulkItemError
      - `code` string, required
      - `message` string, required
  - `summary` BulkSummary, required
    - `total` integer, required
    - `ok` integer, required
    - `errors` integer, required
    - `created` integer
    - `updated` integer
    - `unchanged` 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)
