Plagiarism detection API: kutumiza malemba, poll ripoti.

M'malo mwake, pali ma endpoints ambiri, oyang'anira, kulipira ndalama mosawoneka bwino. Kupangidwa kwa mabungwe, ma pipelines olemba ndi zida zozungulira LMS.

Chithunzi cha API

Kulowa kuti mudziwe chida chanu cha API. Ma Keys amapezeka paakaunti iliyonse; Ma API amawerengedwa mu ngongole.

Kulembetsa

Zigawo

POST /api/v1/check/

Kutumiza mawu kuti atsimikizire. Kubwerera 202 ndi check_id. Mtima: JSON ndi mawu a m'munda, wosankha deep 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 kwa khalidwe; pamene khalidwe ndi zochita ripoti yonse ndi kuphatikizapo: score, per-mlandu match mitundu ndi kukhulupilira ndi kupezeka masamba, ndi mnda wa kupezeka.

curl https://plagiarism.free/api/v1/check/CHECK_ID/ \
  -H "Authorization: Bearer YOUR_KEY"

GET /api/v1/checks/

Lingalirani zoyeserera zanu zaposachedwa, zatsopano zayamba. Paramu yosafunikira ya mafunso: kuletsa (1-100, kukhazikitsidwa koyambirira 20) ndi khalidwe (kuyang'ana, kumaliza, kulephera...). Kugwirizana ndi zopereka ndi kumbuyo kwa dashboard yanu popanda kusungira chilichonse check_id.

curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \
  -H "Authorization: Bearer YOUR_KEY"

Python chitsanzo

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"])

Mfano wa 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));

Kugulitsa

Kufanana ndi tsambali: 1 credit = 1,000 mawu osindikizidwa, ozungulira pa check; deep checks mtengo wofanana. Credit pakiti ndi zogwirizana 365 masiku; zolembetsa refill mwezi uliwonse ndi kuphatikiza API pa zonsezi. Palibe API mbali, palibe per-seat ndalama. Onani maphunziro ndi mapaketi

Kuyesa kumachitika mosagwirizana (kuyenera, kuwonjezeka kwa webusaitiyi kumatenga masekondi 20-45) - kufunsa mfundo ya stat endpoint kuposa kukhazikitsa kulumikizana. HTTP 402 kumatanthauza kuti palibe ndalama zokwanira; yankho limaphatikizapo zomwe kuyendera kumawononga.

Mafunso ofunsidwa nthawi zambiri

Two endpoints. POST /api/v1/check/ with your text returns a check_id; GET /api/v1/check/check_id/ returns status while the check runs and the full report JSON (score, matched sentences, sources) when done. Auth is a Bearer key from your account page. Code samples in curl, Python and JavaScript are below.

The same transparent unit as the site: 1 credit per 1,000 words scanned, rounded up per check. Credit packs start at $4.99 for 30 credits and are valid a full year; the $7.99/month Starter plan includes 60 credits and API access. No per-seat fees, no separate API pricing tier.

A check takes roughly 20-45 seconds because it performs real, rate-limited web retrieval and page comparison - the API is asynchronous for that reason. Submissions queue fairly; paid checks get priority. Poll the status endpoint every few seconds rather than holding the connection open.

Everything the web report shows: overall matched percentage, per-sentence match type (exact / near / none) with confidence, the matched source excerpt for each flagged sentence, and the source list with URLs and per-source match percentages. Enough to render your own report UI or gate a workflow.

Yes - that is what it is for: LMS-adjacent tools, editorial workflows, agency content pipelines. Volume is metered purely by credits, and the per-check word cap is 25000 words. If you need sustained high volume, contact us and we will provision for it rather than let queues degrade.