Démarrer
- Créez un compte sur l'application.
- Ouvrez Réglages → Clés d'API et créez une clé. Elle n'est affichée qu'une seule fois: nous n'en conservons qu'une empreinte, jamais la clé elle-même.
- Utilisez-la dans l'en-tête
Authorization.
Adresse de base
https://challenger-ia-chatbot.vercel.app/api/v1
Authentification
Authorization: Bearer cia_live_votre_cle_ici
Crédits
Les appels débitent le même solde que l'application: un seul portefeuille, deux usages. Chaque réponse renvoie le solde restant, dans le corps et dans l'en-tête X-Credits-Remaining.
| Opération | Coût | Pourquoi |
|---|---|---|
/challenge | 1 crédit | Une génération |
/factcheck | 2 crédits | Recherche web et analyse de sources |
/analyze | 1 crédit | Une analyse structurée |
Limite de débit : 60 appels par minute et par clé. Au-delà, l'API répond 429 avec un délai de réessai.
POST /v1/challenge
Soumet une thèse et renvoie une contradiction argumentée.
| Paramètre | Type | Description |
|---|---|---|
these | chaîne, requis | La thèse à challenger. 3 à 4000 caractères. |
persona | chaîne | architect, opponent (défaut), arbiter, strategist |
friction | chaîne | doux, moyen (défaut), extreme |
contexte | chaîne | Contexte additionnel facultatif. |
Exemple
curl -X POST https://challenger-ia-chatbot.vercel.app/api/v1/challenge \
-H "Authorization: Bearer cia_live_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"these": "Le télétravail réduit la productivité des équipes.",
"persona": "opponent",
"friction": "extreme"
}'Réponse
{
"reponse": "## Ta thèse, au plus fort\n…",
"persona": "opponent",
"friction": "extreme",
"credits_consommes": 1,
"credits_restants": 148,
"usage": { "jetons_entree": 412, "jetons_sortie": 763 }
}POST /v1/factcheck
Vérifie une affirmation et renvoie un verdict à quatre dimensions, séparées à dessein.
| Paramètre | Type | Description |
|---|---|---|
affirmation | chaîne, requis | 3 à 2000 caractères. |
recherche_web | booléen | Recherche de sources. Défaut true. |
Les quatre dimensions
| Champ | Valeurs | Ce qu'il mesure |
|---|---|---|
fact | vrai · probable_vrai · inconnu · non_verifie · inconcluant · probable_faux · faux | Conclusion factuelle |
risk | safe · faible · modere · dangereux · critique | Impact d'une croyance erronée |
consensus | fort · modere · debattu · controverse · marginal | État de l'accord dans le champ |
confidence | speculatif · faible · plausible · eleve · quasi_certain | Robustesse des preuves |
Notez également que consensus n'est pas fact: une affirmation peut faire l'objet d'un consensus fort tout en étant fausse, et inversement. Les confondre est l'erreur la plus fréquente en vérification factuelle.
Exemple
curl -X POST https://challenger-ia-chatbot.vercel.app/api/v1/factcheck \
-H "Authorization: Bearer cia_live_votre_cle" \
-H "Content-Type: application/json" \
-d '{ "affirmation": "Nous n utilisons que 10 % de notre cerveau." }'Réponse
{
"affirmation": "Nous n utilisons que 10 % de notre cerveau.",
"verdict": {
"fact": "faux",
"risk": "faible",
"consensus": "fort",
"confidence": "quasi_certain"
},
"resume": "Affirmation contredite par l imagerie cérébrale…",
"analyse": "…",
"limites": "…",
"contre_hypotheses": "…",
"base": "sources",
"sources": [ { "n": 1, "titre": "…", "url": "https://…" } ],
"credits_consommes": 2,
"credits_restants": 146
}POST /v1/analyze
Analyse la qualité de raisonnement d'un texte : biais et réflexes solides, avec citation de l'extrait concerné.
| Paramètre | Type | Description |
|---|---|---|
texte | chaîne, requis | 20 à 8000 caractères. |
Les catégories sont fermées : douze biais et dix réflexes solides. Toute clé hors taxonomie est écartée de la réponse, ce qui garantit un contenu exploitable programmatiquement.
Réponse
{
"biais": [
{
"code": "generalisation_abusive",
"libelle": "Généralisation abusive",
"extrait": "tous les jeunes pensent que…",
"explication": "Une catégorie entière est caractérisée à partir d un cas."
}
],
"forces": [
{ "code": "demande_preuve", "libelle": "Exigence de preuves", "extrait": "…", "explication": "…" }
],
"synthese": "Le raisonnement tient sur…",
"credits_consommes": 1,
"credits_restants": 145
}Codes d'erreur
| Code | Identifiant | Signification |
|---|---|---|
| 400 | parametre_invalide | Paramètre manquant ou hors limites. |
| 401 | api_key_manquante | En-tête d'autorisation absent. |
| 401 | api_key_invalide | Clé inconnue ou mal formée. |
| 401 | api_key_revoquee | Clé révoquée depuis vos réglages. |
| 402 | credits_insuffisants | Solde épuisé. Rechargez depuis votre compte. |
| 405 | methode_non_autorisee | Utilisez POST. |
| 429 | trop_de_requetes | Plus de 60 appels par minute. |
| 502 | reponse_illisible | Le modèle n'a pas produit une sortie exploitable. |
| 503 | service_indisponible | Indisponibilité temporaire. |
Toutes les erreurs suivent le même format :
{ "erreur": "credits_insuffisants", "message": "Crédits épuisés. Rechargez depuis votre compte." }Exemple d'intégration
// Node.js — la clé reste cote serveur
const r = await fetch('https://challenger-ia-chatbot.vercel.app/api/v1/factcheck', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CHALLENGER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ affirmation: texteAVerifier }),
});
const d = await r.json();
if (!r.ok) {
if (d.erreur === 'credits_insuffisants') { /* alerter l equipe */ }
throw new Error(d.message);
}
// Les valeurs etant fermees, aucun seuil arbitraire a definir
if (d.verdict.fact === 'faux' && d.verdict.risk !== 'safe') {
signalerContenuTrompeur(d.resume, d.sources);
}Ce que nous nous engageons à faire
- Sources traçables — chaque vérification cite ses sources.
- Aucun chiffre fabriqué — le moteur refuse toute précision non sourçable.
- Vos données ne servent pas à entraîner un modèle.
- Coûts explicites — le solde restant figure dans chaque réponse.
Limites actuelles
L'API est en version 1 et le restera de manière compatible : aucun champ existant ne sera retiré sans nouvelle version. Elle ne propose pas encore de diffusion en flux, de traitement par lots ni de webhooks. Si l'un de ces besoins est bloquant pour vous, écrivez-nous — les premiers intégrateurs orientent la suite.
Une question, un volume important ou un besoin particulier : contact@stariax.tech.