Plagiarisme detektering API: indsende tekst, meningsmåling rapporten.
En håndfuld endpoints, bærer auth, transparent kredit prisfastsættelse. Bygget til agenturer, redaktionelle rørledninger og LMS-tilstødende værktøjer.
Din API- nøgle
Log på for at få din API-nøgle. Nøgler kommer med hver konto; API-checks faktureres i kreditter.
Tilmeld digEndpoints
POST /api/v1/check/
Indsend en tekst til kontrol. Returnerer 202 med et check_id. Body: JSON med et tekstfelt, valgfri dyb boolean.
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>/
Poll for status; når status er gjort den fulde rapport er inkluderet: score, per-sentance match typer med tillid og kildeuddrag, og kildelisten.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Liste dine seneste kontroller, nyeste først. Valgfri forespørgselsparamer: grænse (1- 100, standard 20) og status (kørt, gjort, mislykkedes...). Reconcile indsendelser og tilbage din egen instrumentbræt uden at gemme hver check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Python- eksempel
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"])
JavaScript- eksempel
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));
Prissætning
Identisk til webstedet: 1 kredit = 1.000 ord scannet, rundet op pr. check; dyb kontrol koster dobbelt. Kreditpakker er gyldige 365 dage; abonnementer genopfyldning månedligt og inkluderer API på alle niveauer. Ingen separate API-niveau, ingen per-sæder gebyrer. Se planer og pakker
Kontrol køre asynkront (real, rate-begrænset webhentning tager 20-45 sekunder) - poll status endpoint snarere end at holde forbindelsen åben. HTTP 402 betyder utilstrækkelige kreditter; svaret omfatter, hvad kontrollen ville koste.