Plagiorism detection API: inviare testo, consultare il rapporto.
Una manciata di endpoint, auth portatore, trasparenza dei prezzi di credito. Costruito per agenzie, pipeline editoriali e strumenti di adesione LMS.
La tua chiave API
Accedi per ottenere la chiave API. Le chiavi vengono fornite con ogni account; i controlli API vengono fatturati in crediti.
IscrivitiPunti finali
POST /api/v1/check/
Inviare un testo per controllare. Restituisce 202 con un check_id. Corpo: JSON con un campo di testo, opzionale booleano profondo.
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>/
Sondaggio per lo stato; quando lo stato è fatto il rapporto completo è incluso: punteggio, tipi di corrispondenza per-sentenza con la fiducia e estratti di fonte, e la lista delle fonti.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Elenca i tuoi controlli recenti, prima di tutto. Parami di query opzionali: limite (1-100, default 20) e stato (queued, done, failed...). Riconcilia le invii e torna il tuo dashboard senza memorizzare ogni check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Esempio di 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"])
Esempio 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));
Prezzi
Identico al sito: 1 credito = 1.000 parole scansionate, arrotondate per ogni controllo; i controlli approfonditi costano doppio. I pacchetti di credito sono validi 365 giorni; gli abbonamenti ricaricano mensilmente e includono l'API ad ogni livello. Nessun livello API separato, nessuna tariffa per posto. Vedere piani e pacchetti
I controlli vengono eseguiti in modo asincrono (il recupero del web reale e limitato richiede 20-45 secondi) - interroga l'endpoint di stato piuttosto che tenere aperta la connessione. HTTP 402 significa crediti insufficienti; la risposta include il costo del controllo.