API de detección de Plagiarismo: enviar texto, encuestar el informe.
Un puñado de puntos finales, auth portador, precios de crédito transparentes. Construido para agencias, tuberías editoriales y herramientas LMS adyacentes.
Tu clave API
Inicia sesión para obtener tu clave de API. Las claves vienen con cada cuenta; los cheques de API se facturan en créditos.
RegistrarsePuntos finales
POST /api/v1/check/
Enviar un texto para comprobar. Devuelve 202 con un check_id. Cuerpo: JSON con un campo de texto, opcional booleano profundo.
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>/
Encuesta para el estado; cuando el estado se hace el informe completo se incluye: puntuación, tipos de coincidencia por sentencia con confianza y extractos de origen, y la lista de fuentes.
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
Lista tus comprobaciones recientes, primero las más recientes. Parámetros de consulta opcionales: límite (1-100, predeterminado 20) y estado (quema, hecho, fallado...). Reconcilia las presentaciones y devuelve tu propio tablero sin guardar cada check_id.
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Ejemplo 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"])
Ejemplo 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));
Precios
Idéntica al sitio: 1 crédito = 1.000 palabras escaneadas, redondeadas por cheque; cheques profundos cuestan el doble. Los paquetes de crédito son válidos 365 días; las suscripciones se rellenan mensualmente e incluyen la API en todos los niveles. No hay nivel API separado, no hay cargos por asiento. Ver planos y paquetes
Las comprobaciones se ejecutan de forma asíncrona (la recuperación real de la web limitada por la tasa toma 20-45 segundos) - encuestar el punto final de estado en lugar de mantener la conexión abierta. HTTP 402 significa créditos insuficientes; la respuesta incluye lo que la comprobación costaría.