---
title: "Entretien d’une voix existante : lire les questions, préparer la synthèse, l’appliquer après accord"
method: POST
path: "/api/v1/voice/interview"
tags: ["Voix"]
---

# Entretien d’une voix existante : lire les questions, préparer la synthèse, l’appliquer après accord

`POST /api/v1/voice/interview`

## Request

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

## Request body

- object
  - `profileId` string, required: Voix à compléter : elle existe déjà (create_voice).
  - `answers` object[]: Réponses de l’auteur, mot pour mot : [{ questionId, answer }]. Prépare une synthèse sans toucher la voix.
    - `questionId` string, required
    - `answer` string, required
  - `applyPreviewId` string: Synthèse relue à appliquer (previewId rendu à l’étape précédente).
  - `ownerApproved` boolean: Doit valoir true avec applyPreviewId, après accord direct de l’auteur.

## Response `200`

Succès.

- VoiceInterview
  - `profileId` string, required
  - `step` 'questions' | 'preview' | 'applied', required
  - `language` 'fr' | 'en', required
  - `questions` object[], required
    - `id` 'audience' | 'experience' | 'conviction' | 'nuance' | 'refusals' | 'boundaries' | 'evidence' | 'priorities', required
    - `question` string, required
    - `status` 'todo' | 'answered' | 'skipped' | 'known', required
    - `answer` string, nullable, required
  - `nextQuestionId` 'audience' | 'experience' | 'conviction' | 'nuance' | 'refusals' | 'boundaries' | 'evidence' | 'priorities', nullable, required
  - `preview` object, nullable, required
    - `previewId` string, required
    - `contributions` object[], required
      - `questionId` 'audience' | 'experience' | 'conviction' | 'nuance' | 'refusals' | 'boundaries' | 'evidence' | 'priorities', required
      - `identity` string[], required
      - `aversions` string[], required
      - `rules` string[], required
      - `beliefs` object[], required
        - `statement` string, required
        - `nuance` string, nullable, required
  - `applied` object, nullable, required
    - `declarations` number, required
    - `proposedBeliefs` number, required
  - `nextAction` 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)
