---
title: "Kaneme corrige un TEXTE EXISTANT dans ta voix (coût dérivé du barème) — « améliore ce contenu »"
method: POST
path: "/api/v1/improve"
tags: ["Écriture"]
---

# Kaneme corrige un TEXTE EXISTANT dans ta voix (coût dérivé du barème) — « améliore ce contenu »

`POST /api/v1/improve`

## Request

- Base URL: `https://kaneme.com`
- URL: `https://kaneme.com/api/v1/improve`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `text` string, required: Texte à reprendre.
  - `profileId` string: Voix visée. Par défaut, la voix active du compte.

## Response `200`

Succès.

- ImproveResult
  - `review` object
    - `version` 'kaneme.revision-review.v2', required
    - `original` string, required
    - `proposed` string, required
    - `decision` 'pending_author', required
    - `measurementState` 'requires_measurement', required
    - `checks` object[], required
      - `kind` 'numbers' | 'negation' | 'quotes' | 'protected' | 'meaning', required
      - `detail` string, required
    - `limitation` string, required
  - `profileId` string, required
  - `text` string, required
  - `improved` boolean, required: Measured: true only when the same deterministic review, before and after, shows the text closer to the voice with no gap made worse.
  - `reason` 'already_aligned' | 'too_short' | 'no_reference' | 'out_of_domain' | 'not_closer' | 'unmeasured': Set when improved is false. No pass (0 credits): already_aligned, too_short, no_reference, out_of_domain. After a pass: not_closer (unchanged or worse) or unmeasured (see verification.abstention).
  - `recommended` 'original' | 'revised' | 'undecided', required: The version the review recommends keeping: revised when the form review finds it closer and no integrity check flags it; original when an integrity check flags it; undecided otherwise — the form review is not conclusive, so measure both versions (verify_authorship) before choosing.
  - `creditsUsed` number, required
  - `scoreBefore` object, required
    - `score` number, required
    - `scored` boolean, required
    - `confidence` string, required
  - `scoreAfter` object, nullable, required
    - `score` number, required
    - `scored` boolean, required
    - `confidence` string, required
  - `directives` string[], required
  - `verification` object, nullable, required
    - `version` 'kaneme.correction-verification.v2', required
    - `status` 'aligned' | 'improved_with_remaining_gaps' | 'unchanged' | 'regressed' | 'unmeasured', required
    - `abstention` 'too_short' | 'no_reference' | 'out_of_domain' | 'language_changed', nullable, required
    - `scoreDelta` number, required
    - `resolvedCount` integer, required
    - `remainingDirectives` string[], required
    - `newDirectives` string[], required
    - `limitation` string, required
  - `provenance` object, required
    - `version` 'kaneme.generation-provenance.v1', required
    - `checked` integer, required
    - `grounded` integer, required
    - `unsourcedCount` integer, required
    - `firstPersonCount` integer, required
    - `unsourced` object[], required
      - `text` string, required
      - `kind` 'number' | 'percent' | 'amount' | 'year' | 'entity', required
      - `origin` 'unsourced', required
      - `originLabel` string, required
      - `sentence` string, required
      - `firstPerson` boolean, required
    - `note` string, required

## Other responses

- `400`: Requête invalide (champ manquant, borne dépassée, curseur illisible).
- `401`: Clé absente, invalide ou révoquée.
- `402`: Crédits insuffisants, OU surface non ouverte à ce compte. code = "subscription_required" : L’API et le MCP se paient en crédits, et ce compte n’en a plus. Recharge ton solde pour réactiver ta clé. code = "credits_exhausted" : lire `window` pour savoir quoi faire (recharger, attendre la période, demander à un admin de relever le budget, relever le plafond de la clé).
- `404`: Ressource introuvable.
- `409`: Conflit d’état ou de clé d’idempotence.
- `422`: Le moteur s’abstient ou le corpus est insuffisant.
- `429`: Cadence dépassée (code « rate_limited »). La réponse porte X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Window et Retry-After — attends la fenêtre indiquée : un retry immédiat la prolonge. Les plafonds appliqués sont dans x-kaneme-rate-limits. Quand le refus vient d’un plafond PAR OPÉRATION (générer, créer un document ou un projet, déposer une source), ces nombres sont ceux de CETTE opération, pas ceux de la surface.
- `500`: Erreur interne.
- `503`: Service ou compteur temporairement indisponible.

---

[API](https://skmtc.dev/kaneme/apis/kaneme-api.md) · [All operations](https://skmtc.dev/kaneme/apis/kaneme-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaneme/apis/kaneme-api/revisions/752895651cd0?raw)
