API REST Info-Score
Intégrez la certification informationnelle dans vos outils en quelques lignes. API JSON simple, documentée, versionnée.
Base URL
Toutes les requêtes doivent utiliser HTTPS. Le contenu retourné est en application/json; charset=utf-8.
X-API-Version indique la version utilisée dans chaque réponse.
Authentification
Toutes les requêtes doivent inclure votre clé API dans l'en-tête Authorization.
Authorization: Bearer is_sk_votre_cle_api
La clé API est disponible dans votre tableau de bord après inscription. Elle identifie votre compte et est liée à votre facturation.
Codes d'erreur
| HTTP | Code erreur | Description |
|---|---|---|
400 | invalid_request | Paramètres manquants ou invalides |
401 | unauthorized | Clé API absente ou invalide |
402 | insufficient_credits | Solde insuffisant pour cette opération |
404 | not_found | Évaluation ou certificat introuvable |
422 | content_too_short | Contenu inférieur à 200 mots — non évaluable |
429 | rate_limited | Trop de requêtes (max 60 / minute) |
500 | internal_error | Erreur serveur — réessayez dans quelques instants |
Format des erreurs
{
"error": {
"code": "insufficient_credits",
"message": "Votre solde est insuffisant.",
"details": {
"balance": 0.30,
"required": 1.00
}
}
}
Endpoints
Soumet un contenu à l'évaluation RUB. Retourne le score sur les 12 critères, le grade et les justifications.
Corps de la requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| url | string |
optionnel * | URL publique du contenu à évaluer |
| text | string |
optionnel * | Texte brut du contenu (min. 200 mots) |
| title | string |
optionnel | Titre du contenu (utilisé si text est fourni) |
| language | string |
optionnel | Code ISO 639-1 (défaut : fr). Supporte : fr, en, es, de |
| with_certificate | boolean |
optionnel | Si true, génère un certificat JSON signé (+0,50 €). Défaut : false |
* L'un des deux paramètres url ou text est obligatoire.
Exemple de requête (cURL)
curl -X POST https://api.info-score.org/v1/evaluate \
-H "Authorization: Bearer is_sk_votre_cle_api" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.lemonde.fr/science/article/exemple",
"language": "fr",
"with_certificate": false
}'
Réponse
{
"id": "eval_01J8X4K7Q2MWNVF3HB9CKPZGRD",
"status": "completed",
"created_at": "2026-04-12T14:32:07Z",
"url": "https://www.lemonde.fr/science/article/exemple",
"title": "Réchauffement climatique : les données du GIEC 2025",
"language": "fr",
"score": {
"total": 77.6,
"grade": "B",
"grade_label": "Fiable",
"dimensions": {
"R": { "score": 79.2, "weight": 0.45 },
"U": { "score": 80.0, "weight": 0.25 },
"B": { "score": 73.3, "weight": 0.30 }
}
},
"criteria": {
"R1": { "note": 2, "coefficient": 3, "points": 6,
"justification": "Les affirmations s'appuient sur le rapport GIEC AR6. Quelques chiffres non sourcés." },
"R2": { "note": 3, "coefficient": 3, "points": 9,
"justification": "Sources primaires citées avec liens vers les publications originales." },
"R3": { "note": 2, "coefficient": 2, "points": 4,
"justification": "Marges d'incertitude mentionnées, intervalles de confiance non reportés." },
"R4": { "note": 2, "coefficient": 2, "points": 4,
"justification": "Contexte temporel présent. Comparaisons géographiques insuffisantes." },
"R5": { "note": 3, "coefficient": 1, "points": 3,
"justification": "Affirmations vérifiables depuis les sources fournies." },
"U1": { "note": 3, "coefficient": 2, "points": 6,
"justification": "Article bien structuré, vocabulaire technique défini." },
"U2": { "note": 2, "coefficient": 2, "points": 4,
"justification": "Analyse descriptive. Des recommandations pratiques seraient bienvenues." },
"U3": { "note": 2, "coefficient": 1, "points": 2,
"justification": "Périmètre couvert. Quelques lacunes sur les politiques d'adaptation." },
"B1": { "note": 2, "coefficient": 3, "points": 6,
"justification": "Points de vue critiques mentionnés mais rapidement." },
"B2": { "note": 3, "coefficient": 2, "points": 6,
"justification": "Auteur identifié, affiliation déclarée, aucun conflit d'intérêts apparent." },
"B3": { "note": 2, "coefficient": 2, "points": 4,
"justification": "Ton factuel. Un passage légèrement alarmiste." },
"B4": { "note": 3, "coefficient": 1, "points": 3,
"justification": "Contribution positive au débat public." }
},
"raw_points": 57,
"max_points": 87,
"engine": "victoria-v2",
"certificate": null
}
Récupère les résultats d'une évaluation existante par son identifiant. Toutes les évaluations publiques sont accessibles gratuitement.
Paramètre de chemin
| Paramètre | Type | Description |
|---|---|---|
| id | string |
Identifiant de l'évaluation (format eval_*) |
Exemple
curl https://api.info-score.org/v1/score/eval_01J8X4K7Q2MWNVF3HB9CKPZGRD \ -H "Authorization: Bearer is_sk_votre_cle_api"
Réponse (résumé)
{
"id": "eval_01J8X4K7Q2MWNVF3HB9CKPZGRD",
"status": "completed",
"created_at": "2026-04-12T14:32:07Z",
"url": "https://www.lemonde.fr/science/article/exemple",
"title": "Réchauffement climatique : les données du GIEC 2025",
"score": {
"total": 77.6,
"grade": "B",
"grade_label": "Fiable"
}
}
Récupère le certificat JSON signé d'une évaluation. Le certificat doit avoir été demandé lors de l'évaluation (with_certificate: true) ou via une commande séparée.
Paramètre de requête optionnel
| Paramètre | Type | Description |
|---|---|---|
| format | string |
json (défaut) ou pdf (certification Premium uniquement) |
Exemple
curl https://api.info-score.org/v1/certificate/eval_01J8X4K7Q2MWNVF3HB9CKPZGRD \ -H "Authorization: Bearer is_sk_votre_cle_api"
Réponse
{
"certificate": {
"id": "cert_01J8X4KBNJRW5PVTQ7DFHM23SY",
"evaluation_id": "eval_01J8X4K7Q2MWNVF3HB9CKPZGRD",
"issued_at": "2026-04-12T14:32:18Z",
"expires_at": "2027-04-12T14:32:18Z",
"issuer": "Association Info-Score",
"subject": {
"url": "https://www.lemonde.fr/science/article/exemple",
"title": "Réchauffement climatique : les données du GIEC 2025",
"content_hash": "sha256:a3f4b2c1d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3"
},
"grade": "B",
"score": 77.6,
"version": "1.0",
"signature": "is_sig_MEQCIBNkQ7mP2vX4wR9jKL1mNqAp3...",
"public_url": "https://info-score.org/cert/cert_01J8X4KBNJRW5PVTQ7DFHM23SY",
"badge_url": "https://api.info-score.org/v1/badge/cert_01J8X4KBNJRW5PVTQ7DFHM23SY.svg"
}
}
Intégrer le badge sur votre site
<!-- Badge dynamique Info-Score -->
<a href="https://info-score.org/cert/cert_01J8X4KBNJRW5PVTQ7DFHM23SY"
target="_blank" title="Certifié Info-Score — Grade B">
<img src="https://api.info-score.org/v1/badge/cert_01J8X4KBNJRW5PVTQ7DFHM23SY.svg"
alt="Info-Score Grade B" height="20">
</a>
Retourne les statistiques globales de la plateforme. Données mises à jour toutes les heures.
Paramètres de requête optionnels
| Paramètre | Type | Description |
|---|---|---|
| since | string |
Date ISO 8601 — filtre les stats depuis cette date |
| domain | string |
Filtre par domaine source (ex : lemonde.fr) |
Exemple
curl "https://api.info-score.org/v1/stats?since=2026-01-01" \ -H "Authorization: Bearer is_sk_votre_cle_api"
Réponse
{
"total_evaluations": 12470,
"average_score": 62.4,
"grade_distribution": {
"A": { "count": 1547, "percentage": 12.4 },
"B": { "count": 3005, "percentage": 24.1 },
"C": { "count": 3579, "percentage": 28.7 },
"D": { "count": 2407, "percentage": 19.3 },
"E": { "count": 1397, "percentage": 11.2 },
"N": { "count": 535, "percentage": 4.3 }
},
"dimension_averages": {
"R": 61.0, "U": 68.0, "B": 57.0
},
"last_updated": "2026-04-12T06:00:00Z"
}
Exemples de code
Des exemples d'intégration sont disponibles sur GitHub pour les langages les plus courants.
Python
import httpx
client = httpx.Client(
base_url="https://api.info-score.org/v1",
headers={"Authorization": "Bearer is_sk_votre_cle_api"}
)
response = client.post("/evaluate", json={
"url": "https://www.lemonde.fr/article/exemple",
"language": "fr"
})
result = response.json()
print(f"Grade : {result['score']['grade']} — Score : {result['score']['total']}/100")
JavaScript / TypeScript
const response = await fetch('https://api.info-score.org/v1/evaluate', {
method: 'POST',
headers: {
'Authorization': 'Bearer is_sk_votre_cle_api',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://www.lemonde.fr/article/exemple',
language: 'fr',
}),
});
const { score } = await response.json();
console.log(`Grade ${score.grade} — ${score.total}/100`);
cURL (minimal)
curl -X POST https://api.info-score.org/v1/evaluate \
-H "Authorization: Bearer is_sk_votre_cle_api" \
-H "Content-Type: application/json" \
-d '{"url":"https://exemple.fr/article","language":"fr"}'
pip install info-score) en cours de développement. Contributions bienvenues sur github.com/Info-Score/info-score.
Prêt à intégrer Info-Score ?
Première évaluation offerte. Créez votre compte en 2 minutes.