CatéGPT
Documentation

API à clé — réponses sourcées

L'API CatéGPT génère des réponses sourcées sur la foi catholique : chaque affirmation importante renvoie à une référence vérifiée. Idéale pour intégrer l'assistant dans une application, un back-office ou un bot.

ℹ️
Les API du calendrier liturgique sont gratuites et sans clé — seule la génération de réponses, décrite ici, en demande une. Pour ajouter le chat à un site sans coder, utilisez plutôt le widget et les plugins.

URL de base

https://categpt.chat

Authentification

L'API s'authentifie par clé API (jeton Bearer).

  1. Créez un compte sur https://categpt.chat.
  2. Ouvrez la page Développeur de votre compte.
  3. Générez une clé API (cgpt_live_…). Elle n'est affichée qu'une seule fois — copiez-la immédiatement.
  4. Envoyez-la dans l'en-tête Authorization.
Authorization: Bearer cgpt_live_votreCle
⚠️
Ne publiez jamais votre clé secrète côté navigateur ni dans un dépôt public. Traitez-la comme un mot de passe. La console « Essayer » de cette page garde votre clé dans votre navigateur uniquement (localStorage) — elle ne transite que dans l’appel lui-même, comme avec curl.

Crédits & facturation

L'usage est prépayé : créditez votre compte, puis chaque réponse est débitée. Le montant facturé correspond au coût du modèle multiplié par un coefficient (~2×) — il est renvoyé dans usage.billed_usd de chaque réponse. Une réponse n'est générée que si le solde est positif ; sinon l'API répond 402 avec votre solde.

Générer une réponse — POST /api/v1/answer

POST /api/v1/answer
Content-Type: application/json
Authorization: Bearer cgpt_live_…

Paramètres (corps JSON)

ChampTypeRequisDescription
questionstringouiLa question (1 à 4000 caractères).
modestringnonquick (défaut) ou academic.
levelstringnonchild, teen, catechesis, general (défaut), academic, priest.
languagestringnonCode langue à 2 lettres (fr, en…). Détecté sinon.

Exemple de requête

curl -X POST https://categpt.chat/api/v1/answer \
  -H "Authorization: Bearer cgpt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Que dit le Catéchisme sur l’Eucharistie ?",
    "mode": "academic",
    "level": "general"
  }'
POST/api/v1/answerEssayer

Générer une réponse sourcée à une question libre.

curl -X POST "https://categpt.chat/api/v1/answer" \
  -H "Authorization: Bearer cgpt_live_…" \
  -H "Content-Type: application/json" \
  -d '{"question":"Que dit le Catéchisme sur l’espérance ?","mode":"quick","level":"general"}'
Renseignez votre clé API pour envoyer.

Réponse

{
  "answer": "…texte avec des marqueurs [1], [2]…",
  "references": [
    {
      "source_type": "catechism",
      "title": "Catéchisme de l’Église catholique",
      "citation": "CEC 1373-1377",
      "url": "https://www.vatican.va/…",
      "verified": true,
      "language": "fr"
    }
  ],
  "usage": { "prompt_tokens": 1234, "completion_tokens": 567, "billed_usd": 0.012 },
  "language": "fr"
}
CléDescription
answerLa réponse, avec ses marqueurs numérotés [1], [2]
referencesLes références, dans l'ordre des marqueurs : type de source, titre, citation, URL, verified (le lien a été contrôlé) et langue.
usageJetons consommés et montant débité (billed_usd).
languageLangue effective de la réponse.

Types de sources (source_type)

bible, catechism, council, pontifical, canon_law, social_doctrine, church_father, church_doctor, other.

Question sur la fête du jour — POST /api/v1/feast/ask

Même authentification, mêmes quotas et même facturation que /api/v1/answer — mais la question est d'abord enrichie du contexte liturgique du jour (fête, couleur, lectures, description — et, quand le jour en dispose, la fête du Vetus Ordo Missae avec sa classe et le propre de sa messe, source Divinum Officium), comme le chat de la page « Saint du jour ».

POST /api/v1/feast/ask
Content-Type: application/json
Authorization: Bearer cgpt_live_…
ChampTypeRequisDescription
questionstringouiLa question (1 à 4000 caractères).
datestringnonJour YYYY-MM-DD (défaut : aujourd'hui, UTC).
localestringnonLangue de la réponse (fr, en…). Détectée sinon.
modestringnonquick (défaut) ou academic.
levelstringnonComme /api/v1/answer.
curl -X POST https://categpt.chat/api/v1/feast/ask \
  -H "Authorization: Bearer cgpt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Qui fête-t-on aujourd’hui et pourquoi ?",
    "locale": "fr"
  }'
POST/api/v1/feast/askEssayer

Poser une question ancrée sur la fête du jour.

curl -X POST "https://categpt.chat/api/v1/feast/ask" \
  -H "Authorization: Bearer cgpt_live_…" \
  -H "Content-Type: application/json" \
  -d '{"question":"Qui fête-t-on aujourd’hui et pourquoi ?","mode":"quick","level":"general"}'
Renseignez votre clé API pour envoyer.

La réponse a le même format que /api/v1/answer (answer, references, usage, language), plus le champ date du jour liturgique utilisé.

Exemples

JavaScript (fetch)

const res = await fetch("https://categpt.chat/api/v1/answer", {
  method: "POST",
  headers: {
    "Authorization": "Bearer cgpt_live_xxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ question: "Qui était saint Augustin ?" }),
});
const data = await res.json();
console.log(data.answer, data.references);

Python (requests)

import requests

r = requests.post(
    "https://categpt.chat/api/v1/answer",
    headers={"Authorization": "Bearer cgpt_live_xxx"},
    json={"question": "Qui était saint Augustin ?"},
)
data = r.json()
print(data["answer"])

Limites de débit

Jusqu'à 60 requêtes par minute et par clé — quota partagé entre /api/v1/answer et /api/v1/feast/ask. Au-delà, l'API renvoie 429.

Erreurs

Code HTTPerror.codeSignification
400invalid_requestRequête mal formée.
401invalid_api_keyClé absente ou invalide.
402insufficient_creditsSolde de crédits épuisé (la réponse porte balance).
429rate_limitedTrop de requêtes.
502upstream_errorErreur du modèle en amont.

Les erreurs sont renvoyées au format { "error": { "code": "…" } }.

Un 502 upstream_error porte en plus un booléen retryable. Il vaut true pour une cause passagère — un débit dépassé, un délai amont — et false lorsqu'une intervention humaine est nécessaire de notre côté : réessayer ne peut alors pas aboutir, et une nouvelle tentative immédiate ne fait qu'ajouter du bruit. Nous ne divulguons pas la cause elle-même.

💡
Bonnes pratiques. Mettez en cache les réponses fréquentes, gérez le code 402 en rechargeant vos crédits, et affichez toujours les references à côté de la réponse pour la transparence.

Spécification OpenAPI

Toute l'API est décrite dans une spécification OpenAPI 3.1, importable dans Postman, Insomnia ou un générateur de clients :

https://categpt.chat/api/openapi

Aller plus loin

API à clé — réponses sourcées · CatéGPT