API de detecção de plagiarismo: enviar texto, pesquisar o relatório.
Um puñado de endpoints, auth do portador, preço de crédito transparente. Construído para agências, condutas editoriais e ferramentas adjacentes LMS.
A sua chave API
Entre para obter a sua chave API. As chaves vêm com cada conta; as verificações de API são facturadas em créditos.
Inscrever-sePontos finais
POST /api/v1/check/
Envie um texto para verificar. Devolve 202 com um check_id. Corpo: JSON com um campo de texto, booleano profundo opcional.
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>/
Enquisa de status; quando o estado é feito o relatório completo é incluído: escore, per-sentence combinar tipos com confiança e extratos de fontes e a lista de fontes.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Listar seus recentes cheques, mais recentes primeiro. Opcionais query params: limite (1-100, padrão 20) e status (encolado, feito, falhado...). Submissão de reconciliação e retroceder o seu próprio painel sem armazenar cada check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Exemplo de 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"])
Exemplo 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));
Preços
Idêntico ao site: 1 crédito = 1.000 palavras digitalizadas, arredondadas por check; custo de verificação profunda duplo. Pacotes de crédito são válidos 365 dias; assinaturas recheios mensais e incluir a API em todos os níveis. Sem nível separado API, sem taxas por assento. Ver planos e embalagens
Verificações executam uma recuperação de uma forma sincronizada (real, limited rate web recovery leva 20-45 segundos) - pesquisar o endpoint de estado em vez de manter a conexão aberta. HTTP 402 significa créditos insuficientes; a resposta inclui o que o cheque custaria.