---
title: "Compare un texte à une référence FOURNIE (autre auteur collé, ou une autre voix)"
method: POST
path: "/api/v1/compare"
tags: ["Mesure"]
---

# Compare un texte à une référence FOURNIE (autre auteur collé, ou une autre voix)

`POST /api/v1/compare`

## Request

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

## Request body

- object
  - `text` string, required: Texte à comparer.
  - `reference` string: Référence collée telle quelle.
  - `referenceProfileId` string: Ou l’id d’une voix servant de référence.
  - `question` 'q1' | 'q2' | 'human' | 'author': q1 = la voix de la référence contre celle de l’IA (défaut : q1) ; q2 = la même main que la référence plutôt qu’un autre humain, en bêta, mesuré seulement si on le demande. Aliases human/author acceptés.

## Response `200`

Succès.

- ComparisonVerdict
  - `measurement` object
    - `version` 'kaneme.measurement.v1', required
    - `axis` 'q1' | 'q2', required
    - `contrast` string, required
    - `display` string, nullable, required
    - `calibrationLanguage` 'fr' | 'en', required
    - `candidateLanguage` string, required
    - `engine` string, nullable
    - `model` string, required
    - `scoreVersion` string, required
    - `calibrationVersion` string, required
    - `calibrationSource` string, required
    - `limitation` string, required
  - `version` string
  - `axis` 'q1' | 'q2', required
  - `question` 'human' | 'author', required
  - `probability` number, nullable, required
  - `unavailable` 'self_overlap' | 'unsupported_language' | 'voice_language_mismatch' | 'mixed_language' | 'embedding_layer' | 'out_of_distribution' | 'calibration_mismatch'
  - `explanation` object
    - `version` string, required
    - `summary` string, required
    - `caveat` string, required
    - `factors` object[], required
      - `id` 'cadence' | 'registre' | 'structure' | 'lexique', required
      - `label` string, required
      - `status` 'aligned' | 'mixed' | 'different' | 'unmeasured', required
      - `gap` number, nullable, required
      - `detail` string, required
  - `passages` object[]: Présent uniquement avec `unavailable: "mixed_language"` : les phrases écrites dans l’autre langue, avec leurs positions (`start`, `end`) dans le texte jugé. Les corriger ou les retirer, puis relancer.
    - `text` string, required
    - `start` integer, required
    - `end` integer, required
    - `language` 'fr' | 'en', required
  - `language` string
  - `score` number, required
  - `stylometricSimilarity` number, required
  - `label` string
  - `band` 'signature' | 'plausible' | 'ambiguous' | 'foreign': La bande de `label`, en clé stable : `signature`, `plausible`, `ambiguous`, `foreign` (sur q1, `foreign` est une écriture générique ; sur q2, une autre voix). Présent exactement quand `label` l’est. Depuis le contrat 5.3.0.
  - `confidence` string, required
  - `referenceKind` 'text' | 'voice', required
  - `selfOverlap` number, required
  - `creditsUsed` number, required
  - `disclaimer` 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)
