АПИ плагиатной системы: представить текст, опросить отчёт.
Несколько конечных точек, аут-нос, прозрачное кредитное ценообразование, построенное для агентств, редакционного оборудования и смежных с ЛМС инструментов.
Ключ от API
Подпишитесь, чтобы получить ключ API. Ключи приходят с каждым счетом; чеки API выставлены в кредит.
ПодпишитесьКонечные точки
POST /api/v1/check/
Направьте текст для проверки. Возвращает 202 с чек_id. Тело: JSON с текстовым полем, факультативная глубокая булевая.
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>/
Вопрос о статусе; когда будет сделано полное представление, в него включаются: баллы, типы, соответствующие каждому требованию, с уверенностью и выдержки из источников, а также список источников.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Перечислите ваши последние проверки, сначала новые. Факультативные запросы парам: предел (1-100, по умолчанию 20) и статус (записано, сделано, не выполнено). Выверьте представления и отправьте назад свою собственную панель без хранения каждого чек_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Пример Python
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
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));
Ценообразование
Точно на сайте: 1 кредит = 1 000 сканированных слов, округленных на один чек; двойная стоимость глубоких проверок. Кредитные пакеты действуют 365 дней; подписка на подписку на ежемесячной основе и включает в себя АПИ на каждом уровне. Посмотри на планы и пачки
Проверки проводятся асинхронно (реальный, ограниченный по скорости поиск веб-почты занимает 20-45 секунд) - опросить конечных точек состояния, а не держать подсоединение открытым. HTTP 402 означает недостаточное количество кредитов; ответ включает в себя то, что будет стоить чек.