Plagiarizmo aptikimo API: pateikti tekstą, apklausti ataskaitą.

Sauja rezultatų, nešėjas auth, skaidri kredito kainodara. Pastatytas agentūrų, redakcinių vamzdynų ir LMS-adjacent įrankiai.

Jūsų API raktas

Prisijunkite, kad gautumėte API raktą. Raktai ateina su kiekviena paskyra; API patikrinimai yra apskaitomi kreditais.

Prisijungti

Galutiniai taškai

POST /api/v1/check/

Pateikite patikrinti skirtą tekstą. Grįžta 202 su Check_id. Kūnas: JSON su teksto lauku, neprivalomu giliu booleanu.

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>/

Pull už statusą; kai būsena yra padaryta, visas pranešimas yra įtrauktas: rezultatas, vienai eilutei atitikimo tipų su patikimumu ir šaltinio ištraukomis, ir šaltinių sąrašas.

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

GET /api/v1/checks/

Pirmą kartą išvardykite naujausius patikrinimus. Neprivaloma užklausa: riba (1– 100, numatytasis 20) ir būsena (užpildytas, atliktas, nepavyko...). Suderinkite informaciją ir grąžinkite savo prietaisų skydelį, nesaugodami kiekvieno check_ id.

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

Python pavyzdys

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 pavyzdys

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

Kainos

Identifkalus svetainės: 1 kreditas = 1000 žodžių nuskaitytas, suapvalintas iki už patikrinimą; gilių patikrinimų kaina dvigubai. Kreditų paketai galioja 365 dienas; prenumeratos užpildomos kas mėnesį ir apima API kiekviename lygmenyje. Nėra atskiro API pakopa, nėra už vietą mokesčių. Žr. planus ir paketus

Patikrinimai veikia asinchroniškai (tikras, norma limituotas interneto retriveris trunka 20-45 sekundžių) - apklausti būsenos vertinamoji baigtis, o ne išlaikyti ryšį atviras. HTTP 402 reiškia, kad nepakanka kreditų; atsakymas apima tai, ką patikrinimas kainavo.

Dažnai užduodami klausimai

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.