Plagiat-detekto API: sendi tekston, enketi la raporton.
Manpleno da finpunktoj, portanta aŭtentigo, travidebla kredita prezo. Konstruita por agentejoj, redaktaj kanaloj kaj LMS- apudaj iloj.
Via API-ŝlosilo
Salutu por ricevi vian API-ŝlosilon. Ŝlosiloj venas kun ĉiu konto; API-kontroloj estas fakturataj per kreditoj.
SubskribiFinpunktoj
POST /api/v1/check/
Sendu tekston por kontroli. Redonas 202 kun check_ id. Korpo: JSON kun tekstkampo, opcia profunda buleo.
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>/
Laŭ la ĵurnalo, la celo de la projekto estas: "alporti al la publiko la plej bonajn informojn pri la mondo, kun la plej bonaj informoj pri la mondo, kun la plej bonaj informoj pri la mondo, kun la plej bonaj informoj pri la mondo".
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Listigi viajn lastajn kontrolojn, plej nova unue. Opciaj serĉparametroj: limigo (1- 100, defaŭlte 20) kaj stato (envico, farita, malsukcesa...). Konciligu senditojn kaj redonu vian propran stirtablon sen konservi ĉiun check_ id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Pitona ekzemplo
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"])
Ĝavoskripta ekzemplo
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));
Prezoj
Identaj al la retejo: 1 kredito = 1000 vortoj skanitaj, rondigitaj per kontrolo; profundaj kontroloj kostas duoble. Kreditpakaĵoj validas 365 tagojn; abonoj reŝarĝas ĉiumonate kaj inkluzivas la API ĉe ĉiu nivelo. Neniu aparta API-nivelo, neniu per-seĝo-kotizo. Vidu planojn kaj pakaĵojn
Kontroloj estas rulitaj nesinkrone (reala, rapideco- limigita retpreno daŭras 20- 45 sekundojn) - enketi la statofinpunkton anstataŭ teni la konekton malfermita. HTTP 402 signifas ne sufiĉan krediton; la respondo inkluzivas kiom la kontrolo kostus.