---
title: "Placeholder Plan"
method: POST
path: "/v1/projects/{project_id}/source-health/placeholders/plan"
tags: ["reports"]
---

# Placeholder Plan

`POST /v1/projects/{project_id}/source-health/placeholders/plan`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/source-health/placeholders/plan`
- Auth: none declared

PROPOSE coherent placeholder fixes over SOURCE + TRANSLATIONS (Developer+),
credit-metered (1/key, Sonnet): the AI picks ONE coherent placeholder set per
key and RETURNS a proposed source (unchanged if fine) + each problematic
translation as before->after diffs. Nothing written; cached (re-read + apply
free). Keys the AI can't make coherent are refunded + omitted.

## Path parameters

- `project_id` string, required

## Request body

- PlaceholderPlanProposeIn
  - `key_uuids` string[], nullable
  - `language_codes` string[], nullable
  - `idempotency_key` string, required

## Response `200`

Successful Response

- PlaceholderPlanOut
  - `proposal_id` string, nullable, required
  - `items` PlaceholderPlanItem[], required
    - `key_uuid` string, required
    - `key` string, required
    - `namespace_slug` string, required
    - `source` PlaceholderSourceDiff, required
      - `before` string, required
      - `after` string, required
      - `changed` boolean, required
    - `translations` PlaceholderTransDiff[], required
      - `language` string, required
      - `before` string, required
      - `after` 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)
