API de détection de plagiat: soumettre le texte, sondager le rapport.
Quelques points d'arrêt, auth auth, prix de crédit transparent. Construit pour les agences, les pipelines de rédaction et les outils LMS-adjacent.
Votre clé API
Connectez-vous pour obtenir votre clé API. Les clés sont fournies avec chaque compte; les vérifications API sont facturées en crédits.
InscriptionPoints de fin
POST /api/v1/check/
Soumettre un texte pour vérification. Renvoie 202 avec check_id. Corps: JSON avec un champ de texte, booléen profond optionnel.
curl -X POST https://plagiarism.free/api/v1/check/ \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "The text you want to check..."}'
GET /api/v1/check/<check_id>/
Sondage pour déterminer l'état; lorsque l'état est fait, le rapport complet est inclus : score, types de correspondance par phrase avec confiance et extraits de source, et la liste des sources.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Listez vos vérifications récentes, les plus récentes en premier. Params de requête optionnels: limite (1-100, par défaut 20) et état (queue, fait, échoué...). Reconcile les soumissions et replace votre propre tableau de bord sans stocker chaque check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Exemple de python
import time
import requests
API = "https://plagiarism.free/api/v1/check/"
HEADERS = {"Authorization": "Bearer YOUR_KEY"}
r = requests.post(API, json={"text": open("essay.txt").read()}, headers=HEADERS)
check_id = r.json()["check_id"]
while True:
report = requests.get(f"{API}{check_id}/", headers=HEADERS).json()
if report["status"] in ("done", "failed"):
break
time.sleep(3)
print(report["score_pct"], "% matched")
for source in report["sources"]:
print(source["pct_of_document"], source["url"])
Exemple de JavaScript
const API = "https://plagiarism.free/api/v1/check/";
const headers = { "Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json" };
const { check_id } = await fetch(API, {
method: "POST", headers, body: JSON.stringify({ text })
}).then(r => r.json());
let report;
do {
await new Promise(res => setTimeout(res, 3000));
report = await fetch(`${API}${check_id}/`, { headers }).then(r => r.json());
} while (!["done", "failed"].includes(report.status));
Prix
Identique au site : 1 crédit = 1 000 mots numérisés, arrondis par chèque; les contrôles profonds coûtent deux fois plus cher. Les packs de crédit sont valides 365 jours; les abonnements rechargent chaque mois et incluent l'API à tous les niveaux. Voir les plans et les paquets
Contrôles effectués asynchronement (réel, la recherche en ligne limitée à taux prend 20-45 secondes) - sondage le paramètre d'état plutôt que de tenir la connexion ouverte. HTTP 402 signifie des crédits insuffisants; la réponse inclut ce que la vérification coûterait.