Aller au contenu principal

Développeurs & agents

Construis sur ta voix

API REST et serveur MCP de Kaneme : branche Claude, ChatGPT ou tes scripts sur ta voix — génération dans ton style, score de fidélité, documents — avec les mêmes crédits que l'app.

Démarrage rapide

Trois minutes, un appel. Le score de voix et la lecture ne coûtent aucun crédit : tu peux tout éprouver avant de dépenser quoi que ce soit.

  1. 1Crée ta clé

    Dans Kaneme, Réglages → API & MCP. La clé frq_… s'affiche une seule fois — copie-la tout de suite. Elle ouvre l'API REST et le serveur MCP.

  2. 2Vérifie qu'elle répond

    Cet appel ne coûte rien et dit tout : ton palier, tes crédits restants. S'il renvoie 401, c'est la clé ; s'il renvoie du JSON, tu es prêt.

    Ton premier appel

    curl -H "Authorization: Bearer frq_…" \
      https://kaneme.com/api/v1/me
  3. 3Écris dans ta voix

    Premier appel qui consomme — et tu peux savoir combien AVANT, avec /api/v1/estimate. Pour brancher un agent plutôt qu'un script, passe directement au serveur MCP.

    Générer

    curl -X POST https://kaneme.com/api/v1/generate \
      -H "Authorization: Bearer frq_VOTRE_CLE" \
      -H "Content-Type: application/json" \
      -d '{"prompt": "3 leçons de mon dernier projet client", "type": "draft", "format": "linkedin_post"}'

Trois règles à connaître avant d'intégrer

Une clé, deux portes

La même clé « frq_… » (Réglages → API & MCP) ouvre l’API REST et le serveur MCP. Affichée une seule fois, révocable à tout moment, 5 clés actives max.

Les crédits de l’app, pas un 2e compteur

Générer par API consomme les mêmes crédits que dans l’app — aucun coût caché. Le score de voix et la lecture ne coûtent rien.

Ta voix ne fuit jamais

L’API expose le génome PUBLIC de ta voix (brins actifs, maturité) — jamais ton ADN, tes exemples ni ton guide de style.

Serveur MCP

Ton agent (Claude, ChatGPT…) écrit avec TA voix, vérifie le score, range le résultat dans Kaneme — puis programme la publication via ton outil (Buffer…). Kaneme prépare, tes outils publient.

Endpoint (streamable HTTP)

https://kaneme.com/api/mcp

Connexion depuis Claude Code

claude mcp add --transport http kaneme https://kaneme.com/api/mcp \
  --header "Authorization: Bearer frq_VOTRE_CLE"

Autres clients : tout client MCP qui sait poser un header d'autorisation (ou via le pont mcp-remote).

Outils exposés

get_accountcompte & créditsestimate_costce qu’une action coûtera avant de la lancerlist_voiceslister tes voixget_voicecarte d’une voixcreate_voicecréer une voix (interview ou tes textes)list_voice_assetslire le Coffre d’une voixadd_voice_assety verser une preuve (1 crédit)list_beliefstes convictions (lecture seule)list_subvoicestes sous-voix par canal (lecture seule)score_textfidélité de style (gratuit)verify_authorshippaternité en probabilité (1 crédit)compare_textscomparer à une référence fournie (1 crédit)generate_in_voiceécrire dans ta voiximprove_in_voiceaméliorer un texte dans ta voix (1 crédit)create_projectcréer un projet (mémoire de marque)list_projectslister tes projetsadd_project_contextverser de la matière dans le contexte d’un projet (1 crédit)list_documentslister les documentsget_documentlire un documentcreate_documentcréer un documentupdate_documentcorriger un document existantdelete_documentmettre un document à la corbeillecertify_documentcertifier un document (page publique, 1 crédit)list_radar_brandsvisibilité IA de tes marqueslist_radar_briefsle plan de contenu du Radarplan_radar_briefavancer une recommandation dans le planlist_recipeslister tes recettes (Prompts)run_reciperejouer une recette dans ta voixlist_sourceslire ta boîte de réception « Sources »save_sourcey déposer une trouvaille (gratuit)

Tes recettes deviennent des commandes

Le serveur expose aussi des promptsMCP : chacune de tes recettes apparaît dans le menu de commandes de ton client, avec ses variables en champs à remplir. Tu la lances toi-même, au lieu d'espérer que l'agent y pense. La consigne, elle, reste côté serveur — le prompt appelle run_recipe, il ne recopie pas ton template.

API REST v1

Header Authorization: Bearer frq_… sur chaque appel. Réponses JSON, erreurs explicites (401 clé, 402 crédits, 429 cadence).

GET
/api/v1/me

Palier + crédits du compte

0 crédit
GET
/api/v1/estimate

Ce qu’une action coûtera AVANT de la lancer — sans argument, tout le tarif

0 crédit
GET
/api/v1/voices

Liste tes voix (id, laquelle est active, maturité) — pour choisir laquelle utiliser

0 crédit
GET
/api/v1/voice

Carte d’UNE voix : génome public, maturité, calibrage

0 crédit
POST
/api/v1/voices

Crée une voix (interview, ou tes vrais textes — provenance:"human" exigée)

3 crédits
GET
/api/v1/voice/assets

Le COFFRE d’une voix : ce avec quoi tu prouves (preuves, cas clients, témoignages…)

0 crédit
POST
/api/v1/voice/assets

Verse une preuve au Coffre — kind requis, provenance:"human" exigée sur les preuves

1 crédits
GET
/api/v1/voice/beliefs

Tes convictions : les positions injectées à chaque génération (lecture seule)

0 crédit
GET
/api/v1/voice/subvoices

Tes sous-voix par canal — pourquoi un texte sort autrement selon le format

0 crédit
POST
/api/v1/score

Fidélité de style 0-100 — ne dit PAS qui a écrit

0 crédit
POST
/api/v1/verify

Paternité en PROBABILITÉ calibrée — toi vs un autre humain, ou toi vs une IA

1 crédits
POST
/api/v1/compare

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

1 crédits
POST
/api/v1/generate

Écrit dans ta voix (draft, outline, section, challenge, bar-test, workflow)

1-2 crédits
POST
/api/v1/improve

Réécrit un TEXTE EXISTANT dans ta voix (passe corrective) — « améliore ce contenu »

1 crédits
GET
/api/v1/projects

Liste tes projets — pour savoir où ranger

0 crédit
POST
/api/v1/projects

Crée un projet (mémoire de marque) relié à une voix

0 crédit
POST
/api/v1/sources

Ajoute au CONTEXTE d’un projet (recherche web, notes) — nourrit le RAG, pas l’onglet Sources

1 crédits
GET
/api/v1/sources/inbox

Lit l’onglet Sources : ta matière à trier (inbox · saved · used · archived)

0 crédit
POST
/api/v1/sources/inbox

Dépose une trouvaille dans l’onglet Sources — gratuit, réversible, c’est toi qui tries

0 crédit
GET
/api/v1/documents

Liste tes documents

0 crédit
POST
/api/v1/documents

Crée un document (Markdown, voix, canal, provenance)

0 crédit
GET
/api/v1/documents/{id}

Lit un document (texte + HTML)

0 crédit
PATCH
/api/v1/documents/{id}

Corrige un document existant plutôt que d’en créer un second

0 crédit
DELETE
/api/v1/documents/{id}

Met le document à la corbeille (restaurable 30 jours)

0 crédit
POST
/api/v1/certify

Émet le certificat PUBLIC d’un document (« ce texte signe ma voix »)

1 crédits
GET
/api/v1/radar/brands

Visibilité de tes marques dans les réponses des IA (score, progression)

0 crédit
GET
/api/v1/radar/briefs

Le plan de contenu : ce qu’il reste à écrire, avec l’angle et le plan

0 crédit
PATCH
/api/v1/radar/briefs/{id}

Avance une recommandation (draft · planned · published)

0 crédit
GET
/api/v1/recipes

Tes recettes (Prompts) et le catalogue Kaneme

0 crédit
POST
/api/v1/recipes/{id}/run

Rejoue une recette sur un texte, dans ta voix

1-2 crédits

Savoir ce que ça coûte avant de payer

GET /api/v1/estimate rend le tarif complet et, si tu passes ?operation=…, le prix de cette action confronté à ton solde (affordable). Le montant annoncé sort du même calculque le montant débité — pas d'une table tenue à part, qui finirait par mentir.

conditional: trueveut dire que l'opération est gratuite si elle ne produit rien: moteur qui s'abstient, texte qui n'a rien d'objectif à corriger, certificat refusé. C'est la règle des crédits à la valeur — un prix annoncé sec te ferait renoncer à une vérification qui ne t'aurait rien coûté. Estimation, pas réservation : seule l'exécution débite.

Lire une liste en entier

Chaque liste rend nextCursor. Tant qu'il n'est pas null, il reste des éléments : rappelle le même endpoint avec ?cursor=…. Nul = tu as tout vu — et cette fois c'est une information, pas une supposition. Le curseur est opaque : recopie-le, ne le fabrique pas. Un curseur illisible est refusé (400) plutôt qu'ignoré, sinon tu boucleras sur la première page en croyant avancer.

Rejouer un appel sans le payer deux fois

Ajoute Idempotency-Key: <ton identifiant> sur les écritures (/generate, /improve, /documents, /voices, /projects, /sources, /certify, /recipes/{id}/run). Si un appel reste sans réponse, retente avec la même clé : tu récupères la réponse du premier, marquée idempotentReplay, sans second débit ni second document. Clé valable 24 h.

La même clé sur une demande différenteest refusée (422) plutôt que rejouée : mieux vaut un refus lisible qu'une réponse qui ne correspond pas. Les mesures (/score, /verify, /compare) n'en prennent pas — une clé y masquerait une re-mesure volontaire.

Le Coffre — et pourquoi une preuve s'atteste

Trois endroits différents, à ne pas confondir : /sources/inbox est ta boîte de réception (gratuite, tu tries), /sourcesnourrit la mémoire d'un projet (ce dont tu parles), et /voice/assets est le Coffre d'une voix : ce avec quoi tu prouves.

kindest requis et fermé (preuve · cas_client · temoignage · resultat · histoire) — c'est lui qui distingue une preuve d'une note. Sur les quatre types de preuve, provenance:"human" est exigée : cette matière sera citée comme vérifiable, donc elle doit être réelle. Un agent n'invente pas un cas client à ta place.

Tes convictions et tes sous-voixse lisent, mais ne s'écrivent pas depuis l'API : une conviction posée par un agent n'est pas une conviction, et activer une sous-voix change tous tes textes sur ce canal. Ces deux gestes restent les tiens, dans l'app.

Créer une voix — et pourquoi la provenance compte

POST /api/v1/voices compile une nouvelle voix. Deux modes : mode:"interview" (une transcription questions/réponses) ou mode:"samples" (de vrais textes déjà écrits, qui deviennent la cadence de référence de la voix, réinjectée à chaque génération).

En interview, ton agent mène l’entretien lui-même— express (~5 questions) ou complet (~15) — puis passe la transcription à compiler. Côté MCP, le script des questions vit dans la description de l’outil create_voice : l’agent a de quoi poser les bonnes questions, une à la fois.

Le mode samples exige provenance:"human". Ce n’est pas une formalité : une voix ancrée sur de l’IA n’est plus ta voix, c’est une IA-en-voix qui se mesurerait elle-même. Un agent ne doit jamais y coller un texte qu’il vient de générer — s’il n’est pas de ta main, c’est le mode interview qui convient. Sans l’attestation, l’appel est refusé, pas dégradé en silence.

Deux nombres, deux questions

/score mesure une fidélité de style : ce texte sonne-t-il travaillé et personnel ? Il ne dit pas qui a écrit — un texte de quelqu’un d’autre peut obtenir 90. /verify répond à la question d’auteur, et rend une probabilité calibrée plutôt qu’un score :question="author" (toi vs un autre humain) ou question="human" (toi vs une IA qui t’imite). Un même score ne vaut pas la même probabilité selon la question.

probability peut valoir null avec un champ unavailable : c’est une abstention assumée quand la mesure ne peut pas trancher — à traiter comme « vérification impossible », jamais comme un score de zéro. Dans ce cas aucun crédit n’est débité. Et c’est un indice, jamais une preuve opposable : face à un texte machine retravaillé pour passer, le haut de l’échelle sur-promet (96 % annoncé, 88 % réel — mesuré, publié sur /methode).

Écrire, ou améliorer ce qui existe déjà

/generate PART d’un sujet et rédige dans ta voix. /improvePART d’un texte déjà écrit — celui que ton agent vient de produire — et le réécrit dans ta voix : « améliore ce contenu avec ma voix ». C’est une passe corrective bornée (elle corrige les défauts constatés, préserve le fond et la longueur) et renvoie le texte + le score avant/après. Rien à corriger ? Le texte revient inchangé, sans débit.

/comparerépond à « ce texte est-il de la même main que celui-ci ? » contre une référence que TU fournis — un autre auteur collé, ou une autre de tes voix. Même honnêteté que /verify : probabilité calibrée, abstention si la mesure ne tranche pas, plancher hors de ton genre.

Un projet, sa mémoire, sa preuve

/projects crée un projet relié à une voix ; /sources y verse ce que ton agent a trouvé (recherche web, notes) — le texte est vectorisé et récupéré ensuite par le RAG. Il suffit alors de passer projectId à /generatepour écrire en héritant de cette mémoire. La boucle « cherche, range, écris » s’enchaîne entièrement depuis ton agent.

/certify émet la page publiqued’un document — « ce texte signe ma voix ». Elle n’est délivrée que si la paternité est réellement mesurée et affirmée : sinon le certificat est refusé, sans débit. Le public ne voit qu’une bande (label + affirmation), jamaisde score. À n’appeler que sur ta demande : ça publie.

Exemple — écrire un post LinkedIn dans ta voix

curl -X POST https://kaneme.com/api/v1/generate \
  -H "Authorization: Bearer frq_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "3 leçons de mon dernier projet client", "type": "draft", "format": "linkedin_post"}'

format (optionnel) cadre le canal : linkedin_post, newsletter, blog, thread, tweet_short, instagram, tiktok_script, marketing_page (page de vente), academic_article (article académique).

Générations : 1 crédit (types rapides) à 2 crédits (draft, outline, section) — mêmes poids que l'app, détail sur la page crédits.

Prêt à brancher ton agent ?

Crée ta clé dans les réglages. L'accès API est une offre Kaneme distincte, proposée prochainement.

Créer ma clé API