---
title: "Plan Missing Key Resolution"
method: POST
path: "/v1/projects/{project_id}/missing-keys/{event_uuid}/plan"
tags: ["missing"]
---

# Plan Missing Key Resolution

`POST /v1/projects/{project_id}/missing-keys/{event_uuid}/plan`

## Request

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

PREVIEW AI translations of a missing event's source into target languages
(Developer+). Credit-metered — credit_cost(tier) per delivered target language
(standard=1, premium=4); undelivered languages are refunded. Writes NOTHING:
the caller creates the key + applies the approved values client-side. Idempotent
+ cached on idempotency_key (a re-call returns the same preview for free).

422 no_source_value when the SDK reported no default text — the UI must collect
a source string before offering AI translation.

## Path parameters

- `event_uuid` string, required
- `project_id` string, required

## Request body

- MissingPlanIn
  - `tier` 'standard' | 'premium'
  - `language_codes` string[], required
  - `idempotency_key` string, required

## Response `200`

Successful Response

- MissingPlanOut
  - `event_uuid` string, required
  - `key` string, required
  - `namespace_slug` string, required
  - `source` string, required
  - `source_language` string, nullable, required
  - `translations` MissingPlanTranslation[], required
    - `language_code` string, required
    - `value` string, required
  - `credits_charged` integer, required
  - `credits_refunded` 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)
