Rephrase

Documentation API

API Rephrase

Humanisez vos textes IA depuis vos scripts, vos produits, vos automatisations (n8n, Make, Zapier). Mêmes crédits qu’en web, pas d’abonnement supplémentaire.

TL;DR

  1. 1. Créez un compte et achetez un pack de crédits.
  2. 2. Générez une clé API depuis /dashboard/api-keys.
  3. 3. Envoyez votre texte en POST sur /v1/api/humanize avec le header Authorization: Bearer rph_live_....
  4. 4. Recevez le texte humanisé en JSON. Coût : 1 crédit par tranche de 100 mots.

1. URL de base

Toutes les requêtes publiques partent de :

https://api.rephrase.fr

Tous les endpoints API sont préfixés /v1/api/. L’API est versionnée : la v1 est stable et engage un support d’au moins 12 mois après toute évolution breaking.

2. Authentification

L’API utilise des clés API Bearer. Créez-en une depuis votre espace, copiez-la une seule fois (elle ne sera plus jamais affichée), puis injectez-la dans chaque requête :

Authorization: Bearer rph_live_xxxxxxxxxxxxxxxxxxxxxxxx

Format des clés : rph_live_ suivi de 48 caractères hex. Les clés sont uniques et révocables à tout moment depuis votre espace.

Ne jamais exposer votre clé côté client. Toute requête vers l’API doit partir d’un backend que vous contrôlez. Une clé fuitée dans un bundle JavaScript doit être révoquée immédiatement.

3. Humaniser un texte

POST/v1/api/humanize

Paramètres (body JSON)

ChampTypeRequisDescription
inputTextstringrequisTexte à humaniser (3 à 8 000 mots).
presetSlugstringoptionnelSlug d’un preset. Voir GET /v1/public/presets.
customVoiceIdnumberoptionnelID d’une plume personnalisée. Créez-la via POST /v1/api/voices.

Exemple curl

curl -X POST https://api.rephrase.fr/v1/api/humanize \
  -H "Authorization: Bearer rph_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "inputText": "Il est important de noter que...",
    "presetSlug": "web_article_seo"
  }'

Exemple Node.js (fetch)

js
const res = await fetch('https://api.rephrase.fr/v1/api/humanize', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.REPHRASE_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    inputText: 'Votre texte IA ici...',
    presetSlug: 'web_article_seo'
  })
});

if (!res.ok) {
  const err = await res.json();
  throw new Error(err.error);
}

const data = await res.json();
console.log(data.output);

Exemple Python (requests)

python
import os, requests

resp = requests.post(
    'https://api.rephrase.fr/v1/api/humanize',
    headers={
        'Authorization': f'Bearer {os.environ["REPHRASE_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'inputText': 'Votre texte IA ici...',
        'presetSlug': 'web_article_seo'
    }
)

resp.raise_for_status()
print(resp.json()['output'])

Réponse (200 OK)

json
{
  "humanizationId": 12345,
  "output": "Votre texte, humanisé et prêt à publier.",
  "creditsUsed": 3,
  "wordCount": 287,
  "balance": 197,
  "modelUsed": "gpt-4.1-mini"
}
Refund automatique : si la génération échoue côté fournisseur (timeout, 5xx), les crédits sont remboursés. La réponse sera 502 provider_error avec { refunded: 3 }.

4. Gestion des plumes

Une plume (Custom Voice) est une signature stylistique extraite de 3 à 5 de vos textes. Une fois créée, réutilisez-la dans chaque humanisation via customVoiceId.

Créer une plume

POST/v1/api/voicescoût : 1 crédit d’analyse
curl -X POST https://api.rephrase.fr/v1/api/voices \
  -H "Authorization: Bearer rph_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "moi-linkedin",
    "samples": [
      "Premier texte que j\'ai écrit, 100+ mots...",
      "Deuxième texte...",
      "Troisième texte..."
    ]
  }'

Contraintes : 3 à 5 samples, 300 mots minimum au total. Les textes sont chiffrés au repos (AES-256-GCM) et ne sont jamais envoyés à un sous-traitant au-delà de l’analyse initiale.

Lister vos plumes

GET/v1/api/voices

5. Consulter les crédits

GET/v1/api/me/credits
json
{
  "balance": 197,
  "lifetime_purchased": 500,
  "lifetime_used": 303,
  "lifetime_gifted": 3
}

6. Codes d’erreur

Code HTTPerrorSignification
400invalid_bodyBody invalide ou manquant.
400text_too_shortTexte de moins de 3 mots.
400text_too_longTexte de plus de 8 000 mots.
401unauthorizedClé API invalide, manquante ou révoquée.
402insufficient_creditsSolde insuffisant pour cette requête.
422content_filterContenu refusé par le filtre de modération du fournisseur. Pas de refund.
429rate_limitedTrop de requêtes sur la clé. Attendez 60 secondes.
502provider_errorÉchec du fournisseur IA. Les crédits sont remboursés automatiquement.
500internal_errorErreur inattendue côté Rephrase. Signalez-nous.

7. Rate limits

30 requêtes par minute et par clé API, tous endpoints confondus. En cas de dépassement, l’API renvoie 429 rate_limited.

Les headers de réponse standard RateLimit-Limit, RateLimit-Remaining et RateLimit-Reset (draft IETF) sont exposés. Pour un usage à fort volume, parallélisez en plusieurs clés (1 par service/script).

8. Bonnes pratiques

  • Stockez la clé dans une variable d’environnement, jamais dans le code source ou dans un dépôt git. Utilisez process.env.REPHRASE_API_KEY ou l’équivalent.
  • Une clé par service, pas une clé partagée. Si un service est compromis, vous révoquez seulement la sienne.
  • Toujours vérifier le code HTTP avant de traiter la réponse. En cas de 502 provider_error, retry après 2-3 secondes (les crédits ont déjà été remboursés).
  • Batch vos requêtes en série, pas en parallèle massif. 30 req/min, c’est 1 toutes les 2 secondes. Pour 1000 textes, prévoyez ~35 minutes.
  • Surveillez votre solde via GET /v1/api/me/credits dans vos jobs long-running, pour anticiper un 402 insufficient_credits.

Prêt à intégrer Rephrase ?

3 crédits offerts à l’inscription pour tester votre intégration avant d’acheter.

Créer un compte