Wykrywanie plagiatury API: przedłożenie tekstu, ankietowanie raportu.
Kilka punktów końcowych, autoryzacja nośnika, przejrzyste ceny kredytowe. Zbudowany dla agencji, rurociągów redakcyjnych i narzędzia LMS-doskonałe.
Twój klucz API
Zaloguj się, aby uzyskać klucz API. Klucze przychodzą z każdym konto; API czeki są rachunki w kredytach.
PodpiszPunkty końcowe
POST /api/v1/check/
Przesyła tekst do sprawdzenia. Zwraca 202 z check_id. Ciało: JSON z polem tekstu, opcjonalnie głęboki logiczny.
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>/
Badanie statusu; w momencie wykonania statusu wchodzi pełny raport: wynik, typy meczów na wypowiedzenie z ufnością i fragmentami źródła oraz lista źródła.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Wyświetla najnowsze certyfikaty, najpierw. Opcjonalne parametry zapytania: limit (1- 100, domyślne 20) i status (przetworzone, wykonane, nieudane...). Reconcile składania i z powrotem własne panele deski bez przechowywania każdego check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Przykład Pythona
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"])
Przykład 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));
Ceny
Identyczna z witryną: 1 kredyt = 1000 słów skanowanych, zaokrąglonych na czek; głęboki koszt kontroli podwójnie. Paczki kredytowe są ważne 365 dni; subskrypcje napełniania miesięcznego miesięcznego i zawierają API na każdym poziomie. Brak oddzielnego poziomu API, bez opłat za przemieszczanie na miejsce. Patrz plany i opakowania
Kontrole uruchamiają się asyncjonalnie (realne, ograniczone szybkości wyszukiwania sieci trwa 20-45 sekund) - badanie punktu końcowego stanu zamiast trzymać połączenie otwarte. HTTP 402 oznacza niewystarczające kredyty; odpowiedź obejmuje koszt kontroli.