Free
Pruebe el motor completo
- 25.000 palabras/mes
- Indicadores detallados en cada escaneo
- Acceso completo a la API
- Historial de detección en el panel
- Gratis para siempre — sin periodo de prueba
- Extensión Chrome, asientos ilimitados
Documentación completa para integrar la API de detección de IA de TruthScan en sus aplicaciones.
Pruébala sin código visitando nuestro endpoint FastAPI: https://detect-text.truthscan.com/docs
Precios y créditos
La detección de texto se factura a 1 crédito por palabra. Las entradas más largas consumen más créditos; verifique su saldo antes de enviar documentos grandes.
Consulte su saldo con GET /check-user-credits. Ver planes de precios
TruthScan usa claves de API para permitir el acceso a la API. Puede obtener su clave de API en la parte superior de la página en nuestro portal de desarrolladores.
TruthScan espera que la clave de API se incluya en todas las solicitudes de API al servidor en un cuerpo de solicitud que se ve así:
{
"key": "YOUR API KEY GOES HERE"
}Debe reemplazar YOUR API KEY GOES HERE con su clave de API personal.
Para escenarios de web socket, necesitará enviar su Organization ID como parte de la URL. Puede obtener su Organization ID en la parte superior de la página en nuestro portal de desarrolladores.
TruthScan espera que su Organization ID se incluya en la URL de todas las solicitudes de web socket. La documentación se verá así:
wss://detect-text.truthscan.com/ws/$ORG_IDDebe reemplazar $ORG_ID con su Organization ID personal.
Este endpoint le permite enviar texto para detección de IA. Se recomiendan al menos 200 palabras para obtener la mejor precisión.
POST https://detect-text.truthscan.com/detectUmbral
Este endpoint devuelve una puntuación "result" de 1-100 (valores más altos = más probable que sea generado por IA). Para obtener la mejor precisión, cualquier puntuación por debajo de 50 se considera definitivamente humana. 50-60 es posible IA. Por encima de 60 es IA definitiva. Este es el resultado más preciso, con 99%+ de precisión.
Las puntuaciones de otros detectores, como Writer y Copyleaks, son aproximadas y no tan precisas como la puntuación principal "result".
Saltos de línea
Si está enviando datos como JSON, los saltos de línea deben codificarse como \n dentro de la cadena.
Ejemplo de Solicitud
curl -X 'POST' \
'https://detect-text.truthscan.com/detect' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"text": "On Citizen science\nCitizen science involves the public participating in scientific research. This can take many forms, collecting data on local wildlife populations to analyzing astronomical images. Citizen science projects allow researchers to gather large amounts of data and engage the public in the process. By participating, individuals contribute to valuable research while gaining a deeper understanding of the scientific world around them.",
"key": "YOUR-API-KEY-GOES-HERE",
"model": "xlm_ud_detector",
"retry_count": 0,
"generate_analysis_details": true
}'Aquí, la entrada de la solicitud debe ser inferior a 30.000 palabras.
Parámetros Opcionales
model: Modelo de detección de IA a usar (predeterminado: 'xlm_ud_detector')retry_count: Número de reintentos si falla el procesamiento (predeterminado: 0)generate_analysis_details: Establecer en 'true' para habilitar resultados de análisis profundo de IA (predeterminado: 'false'). Cuando está habilitado, la respuesta de consulta incluirá los campos analysis_results_status y analysis_results.Ejemplo de Respuesta
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"input": "Citizen science involves the public participating in scientific research. This can take many forms, collecting data on local wildlife populations to analyzing astronomical images. Citizen science projects allow researchers to gather large amounts of data and engage the public in the process. By participating, individuals contribute to valuable research while gaining a deeper understanding of the scientific world around them.",
"model": "xlm_ud_detector",
"result": null,
"result_details": null,
"status": "pending",
"retry_count": 0
}La respuesta contiene el ID asignado por el servidor del documento. En este punto, el documento está en cola para procesamiento. Puede usar el endpoint de la API /query para consultar el estado de la solicitud de detección de IA. El tiempo promedio para completar una verificación de detección de IA es entre 2-4 segundos. Puede tardar más dependiendo del conteo de palabras.
Este endpoint acepta un ID de documento devuelto por la solicitud /detect. Y devuelve el estado del envío del documento, así como el resultado de la operación de detección de IA según lo manejado por varios detectores de IA de terceros.
POST https://detect-text.truthscan.com/queryEjemplo de Solicitud
curl -X 'POST' \
'https://detect-text.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "DOCUMENT-ID-GOES-HERE"
}'Ejemplo de Respuesta
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"model": "xlm_ud_detector",
"result": 12.0,
"label": "Human",
"result_details": {
"scoreGptZero": 50.0,
"scoreOpenAI": 0.0,
"scoreWriter": 0.0,
"scoreCrossPlag": 0.0,
"scoreCopyLeaks": 50.0,
"scoreSapling": 0.0,
"scoreContentAtScale": 0.0,
"scoreZeroGPT": 50.0,
"human": 88.0,
"analysis_results_status": "pending",
"analysis_results": null
},
"result_categories": {
"advanced": 12,
"standard": 12
},
"status": "done",
"retry_count": 0
}Interpretación de Resultados
result: Puntuación de 0-100 que indica la probabilidad de que el texto sea generado por IA. Menos de 50 = definitivamente humano. 50-60 = posiblemente IA. Más de 60 = definitivamente IA.label: La determinación general: 'Human', 'AI' o 'Paraphrase'result_details scores: Puntuaciones aproximadas de probabilidad de IA de detectores de terceros: GPTZero, OpenAI, Writer, CrossPlag, CopyLeaks, Sapling, ContentAtScale, ZeroGPT (cada uno 0, 50 o 100; valores más altos = más probable que sea generado por IA)human: Puntuación global de probabilidad humana (0-100); valores más altos = más humano, dirección inversa de las puntuaciones de probabilidad de IA anterioresresult_categories.advanced: Categoría de resultado avanzada con puntuación escalonada (formato 1-99)result_categories.standard: Categoría de resultado estándaranalysis_results_status: Estado del análisis profundo de IA ('pending', 'ready', 'skipped' o null). Cuando es 'pending', continúe consultando el endpoint /query — el análisis aún se está procesando en segundo plano. Cuando es 'ready', el campo analysis_results contiene el análisis completado. Cuando es 'skipped', null o ausente, el análisis profundo no está disponible para este texto.analysis_results: Resultados del análisis profundo de IA (disponible cuando analysis_results_status es 'ready'). Contiene: agreement (strong/moderate/weak/disagreement), confidence (0-100), keyIndicators (array de indicadores textuales encontrados), detailedReasoning (explicación), linguisticPatterns (array de patrones lingüísticos observados) y recommendations (elementos accionables).Aquí, "result": 12.0 es la puntuación de probabilidad de IA (0-100, valores más altos = más probable que sea generado por IA). Como está por debajo del umbral de 50, el texto se clasifica como Human, consulte el campo "label". Los valores por detector bajo result_details también son puntuaciones de probabilidad de IA (cada uno 0, 50 o 100); por ejemplo, "scoreZeroGPT": 50.0 es la lectura de ZeroGPT, y lo mismo se aplica a los otros detectores. El campo separado "human" es lo inverso, es una puntuación de probabilidad humana, un valor más alto significa más humano.
Este endpoint acepta el apikey del usuario a través del encabezado. Y devuelve los detalles de créditos del usuario.
GET https://detect-text.truthscan.com/check-user-creditsEjemplo de Solicitud
curl -X 'GET' \
'https://detect-text.truthscan.com/check-user-credits' \
-H 'apikey: YOUR API KEY GOES HERE' \
-H 'accept: application/json' \
-H 'Content-Type: application/json'Ejemplo de Respuesta
{
"baseCredits": 10000,
"boostCredits": 1000,
"credits": 11000
}Cuando establece 'generate_analysis_details' en 'true' en la solicitud /detect, TruthScan ejecuta un análisis profundo de IA en segundo plano después de que se completa la detección inicial. La respuesta inicial de consulta devolverá con estado 'done' y sus resultados de detección listos para usar, pero el campo analysis_results_status puede estar aún en 'pending'. Puede usar los resultados iniciales inmediatamente y opcionalmente consultar hasta que se complete el análisis profundo.
Cuando envía con 'generate_analysis_details': true y consulta por primera vez con estado 'done', los resultados principales de detección (result, label, result_details) están listos. Sin embargo, analysis_results_status puede ser 'pending' — esto significa que el análisis profundo de IA aún se está procesando en segundo plano.
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"model": "xlm_ud_detector",
"status": "done",
"result": 73.2,
"label": "AI",
"result_details": {
"scoreGptZero": 100.0,
"scoreOpenAI": 50.0,
"scoreWriter": 50.0,
"scoreCrossPlag": 100.0,
"scoreCopyLeaks": 100.0,
"scoreSapling": 50.0,
"scoreContentAtScale": 50.0,
"scoreZeroGPT": 100.0,
"human": 25.0,
"analysis_results_status": "pending",
"analysis_results": null
}
}Qué hacer
Puede usar los resultados iniciales de detección (result, label, puntuaciones de result_details) inmediatamente. Si también necesita el análisis profundo, continúe consultando el endpoint /query con el mismo ID de documento hasta que analysis_results_status cambie de 'pending'.
Continúe llamando al endpoint /query con el mismo ID de documento. Verifique el campo analysis_results_status en cada respuesta. Cuando cambie de 'pending' a 'ready', el objeto analysis_results estará poblado.
curl -X 'POST' \
'https://detect-text.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9"
}'Una vez que analysis_results_status es 'ready', el objeto analysis_results contiene el análisis profundo completo de IA con nivel de acuerdo, confianza, indicadores clave, razonamiento detallado, patrones lingüísticos y recomendaciones.
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"model": "xlm_ud_detector",
"status": "done",
"result": 73.2,
"label": "AI",
"result_details": {
"scoreGptZero": 100.0,
"scoreOpenAI": 50.0,
"scoreWriter": 50.0,
"scoreCrossPlag": 100.0,
"scoreCopyLeaks": 100.0,
"scoreSapling": 50.0,
"scoreContentAtScale": 50.0,
"scoreZeroGPT": 100.0,
"human": 25.0,
"analysis_results_status": "ready",
"analysis_results": {
"agreement": "strong",
"confidence": 78,
"keyIndicators": [
"Highly consistent sentence structure throughout",
"Formulaic transitions between paragraphs",
"Lack of personal voice or idiosyncratic expressions"
],
"detailedReasoning": "The text exhibits hallmarks of AI-generated content including uniform sentence complexity, predictable paragraph transitions, and an absence of personal stylistic quirks. The vocabulary choices are sophisticated but lack the natural variation typical of human writing.",
"linguisticPatterns": [
"Uniform sentence length distribution",
"Repetitive use of hedging language",
"Absence of colloquialisms or informal markers"
],
"recommendations": [
"Cross-reference with the original source if available",
"Check for consistent writing style across longer documents",
"Compare with known writing samples from the claimed author",
"Consider the context in which the text was produced"
]
}
},
"result_categories": {
"advanced": 73,
"standard": 73
}
}Si analysis_results_status es 'skipped', null o ausente, no se producirá análisis profundo para este texto. Esto sucede cuando 'generate_analysis_details' no se estableció en 'true' en la solicitud /detect, o en ciertos escenarios de procesamiento. Debe tratar los resultados iniciales de detección como finales.
{
"status": "done",
"result": 12.0,
"label": "Human",
"result_details": {
"analysis_results_status": "skipped",
"analysis_results": null
}
}Campos de Resultados del Análisis
analysis_results_status: 'pending' = aún procesando, 'ready' = resultados disponibles, 'skipped' / null / ausente = no disponible para este textoanalysis_results.agreement: Qué tan fuertemente el análisis profundo coincide con la detección inicial (strong / moderate / weak / disagreement)analysis_results.confidence: Puntuación de confianza del análisis profundo (0-100)analysis_results.keyIndicators: Array de indicadores textuales específicos encontrados en el textoanalysis_results.detailedReasoning: Explicación de 2-4 oraciones de por qué el texto fue clasificado asíanalysis_results.linguisticPatterns: Array de patrones lingüísticos observados (ej., consistencia en estructura de oraciones, patrones de vocabulario)analysis_results.recommendations: Array de recomendaciones accionables para comprender la autenticidad del textoEl detector de IA a nivel de oración se ejecuta sobre un protocolo basado en WebSocket.
Aquí están los pasos necesarios para obtener resultados a nivel de oración para su texto:
Este endpoint le permite establecer la conexión WebSocket
wss://detect-text.truthscan.com/ws/$ORG_IDCódigo de Ejemplo
ws = new WebSocket("wss://detect-text.truthscan.com/ws/1722238709737x2194626580942121212");Una vez que se establezca la conexión WebSocket, escuche los eventos enviados a través de la conexión WebSocket.
Código de Ejemplo
ws.addEventListener("message", (event) => {
console.log("Message from server ", event.data);
});Envíe interés en enviar un documento enviando una solicitud document_watch en el WebSocket
Código de Ejemplo
ws.send(JSON.stringify({
"event_type": "document_watch",
"api_key": "$API_KEY",
}))Después de enviar un evento document_watch, el servidor devuelve un evento document_id.
Ejemplo de Respuesta
{
"event_type": "document_id",
"success": true,
"document_id": "512da191-166926922-44cb-81c6-191ae3a807aa"
}Tome el id generado por la respuesta document_id y envíe un documento para detección de IA
POST https://detect-text.truthscan.com/detectEjemplo de Solicitud
curl -X 'POST' \
'https://detect-text.truthscan.com/detect' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"text": "Citizen science involves the public participating in scientific research. This can take many forms, collecting data on local wildlife populations to analyzing astronomical images. Citizen science projects allow researchers to gather large amounts of data and engage the public in the process. By participating, individuals contribute to valuable research while gaining a deeper understanding of the scientific world around them.",
"key": "YOUR-API-KEY-GOES-HERE",
"model": "xlm_ud_detector",
"id": "512da191-166926922-44cb-81c6-191ae3a807aa"
}'Comience a recibir eventos document_chunk. Los eventos document_chunk devolverán cada oración junto con el resultado a nivel de oración
Ejemplo de Respuesta
{
"event_type": "document_chunk",
"document_id": "512da191-166926922-44cb-81c6-191ae3a807aa",
"model": "xlm_ud_detector",
"chunk": "Citizen science involves the public in scientific research.",
"result": 0.714
}Cuando el documento termine el procesamiento, recibirá un evento document_done.
Ejemplo de Respuesta
{
"event_type": "document_done",
"document_id": "512da191-166926922-44cb-81c6-191ae3a807aa",
"model": "xlm_ud_detector"
}Si por alguna razón el servidor encuentra un error al realizar la detección de IA, se enviará un evento document_error al cliente websocket. El cliente debe actuar adecuadamente, por ejemplo, una UI mostrará un mensaje de error.
Por ejemplo, el servidor enviará un código de error REQUEST_TIMEOUT cuando tome más de 20 segundos entre eventos de chunk.
{
"event_type": "document_error",
"document_id": "512da191-166926922-44cb-81c6-191ae3a807aa",
"error_code": "REQUEST_TIMEOUT",
"message": "Request timeout. Took 20 seconds."
}Habrá instancias en las que la UI querrá cancelar la operación. El usuario decide cerrar la ventana o cancela el evento explícitamente
Cuando esto suceda, debe enviar un evento document_halt
Ejemplo de Respuesta
{
"event_type": "document_halt",
"document_id": "512da191-166926922-44cb-81c6-191ae3a807aa"
}La mayoría de los errores serán por parámetros incorrectos enviados a la API. Verifique nuevamente los parámetros de cada llamada de API para asegurarse de que esté formateado correctamente e intente ejecutar el código de ejemplo proporcionado.
Los códigos de error genéricos que usamos se ajustan al estándar REST:
| Código de Error | Significado |
|---|---|
| 400 | Bad Request -- Su solicitud es inválida. |
| 403 | Forbidden -- La clave de API es inválida o no hay créditos suficientes (1 por palabra). |
| 404 | Not Found -- El recurso especificado no existe. |
| 405 | Method Not Allowed -- Intentó acceder a un recurso con un método inválido. |
| 406 | Not Acceptable -- Solicitó un formato que no es JSON. |
| 410 | Gone -- El recurso en este endpoint ha sido eliminado. |
| 422 | Invalid Request Body -- El cuerpo de su solicitud está formateado incorrectamente o es inválido o tiene parámetros faltantes. |
| 429 | Too Many Requests -- ¡Está enviando demasiadas solicitudes! ¡Reduzca la velocidad! |
| 500 | Internal Server Error -- Tuvimos un problema con nuestro servidor. Intente nuevamente más tarde. |
| 503 | Service Unavailable -- Estamos temporalmente fuera de línea para mantenimiento. Intente nuevamente más tarde. |
Causa: Clave de API inválida o expirada
Solución:
Causa: Créditos insuficientes para procesamiento de texto
Solución:
Causa: Texto vacío o solo con espacios en blanco enviado
Solución:
Causa: Correo electrónico faltante para procesamiento de URL
Solución:
Causa: El procesamiento del documento tardó demasiado (>120 segundos)
Solución:
Causa: El procesamiento falló por varias razones
Solución:
Causa: Problemas de red o desconexiones del servidor
Solución:
Causa: Organization ID inválido en la conexión WebSocket
Solución:
Obtenga informes forenses completos - patrones lingüísticos, indicadores clave y razonamiento detallado.
Free
Pruebe el motor completo
Starter
$0,03 / 1.000 palabras - $290/año
Para individuos y equipos pequeños
Professional
$0,02 / 1.000 palabras - $990/año
Para equipos en producción
Business
$0,01 / 1.000 palabras - $3.990/año
Para operaciones de alto volumen
Enterprise
$0,005 o menos por 1.000 palabras
Contactar ventasEncuentre respuestas a las preguntas más comunes sobre nuestra API de detección de IA.