IA y AvanzadoInteligencia Artificial
IA y Avanzado

Inteligencia Artificial

Extracción de datos, asistente de expedientes, generación de documentos y análisis con IA

curl https://app.getplea.com/api/ai/status
{
  "available": true,
  "model": "gpt-4o",
  "provider": "openai",
  "features": ["document-analysis", "case-assistant", "document-generation", "data-extraction"]
}
curl -X POST https://app.getplea.com/api/ai/extract-case-from-documents \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{"documentIds": ["doc-uuid-1", "doc-uuid-2"]}'
{
  "caseType": "civil",
  "description": "Reclamación de cantidad por servicios profesionales impagados",
  "opposingParty": "Construcciones Norte S.L.",
  "judicialBody": "Juzgado de Primera Instancia",
  "judicialBodyNumber": "12",
  "judicialDistrict": "Madrid",
  "procedureType": "Juicio ordinario",
  "courtFileNumber": "0042/26",
  "amount": 45000.00,
  "client": {
    "name": "Elena Martínez Ruiz",
    "taxId": "12345678A"
  },
  "confidence": 0.89
}
curl -X POST https://app.getplea.com/api/ai/extract-organismo \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{"text": "Juzgado de Primera Instancia e Instrucción nº 3 de Alcobendas"}'
{
  "judicialBody": "Juzgado de Primera Instancia e Instrucción",
  "judicialBodyNumber": "3",
  "judicialDistrict": "Alcobendas"
}
curl -X POST https://app.getplea.com/api/ai/generate-case-description \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{"caseId": "case-uuid-1"}'
{
  "description": "Procedimiento ordinario civil por reclamación de cantidad de 45.000€ contra Construcciones Norte S.L. por impago de servicios profesionales de consultoría prestados entre enero y septiembre de 2025. La parte actora, Dña. Elena Martínez Ruiz, reclama el importe total de las facturas emitidas más intereses de demora."
}
curl -X POST https://app.getplea.com/api/ai/analyze-document \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{"documentId": "doc-uuid-1", "prompt": "Extrae las cláusulas más relevantes"}'
{
  "documentId": "doc-uuid-1",
  "summary": "Contrato de arrendamiento de local comercial...",
  "keyPoints": [
    "Duración: 5 años con prórroga automática",
    "Renta mensual: 1.200€ + IVA",
    "Fianza: 2 mensualidades",
    "Cláusula de resolución anticipada con penalización de 3 meses"
  ],
  "entities": {
    "parties": ["Elena Martínez Ruiz", "Inmobiliaria Centro S.L."],
    "dates": ["2026-01-01", "2031-01-01"],
    "amounts": [1200.00, 2400.00]
  }
}
curl -X POST https://app.getplea.com/api/ai/case-assistant \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{
    "caseId": "case-uuid-1",
    "message": "¿Cuáles son los plazos procesales pendientes?"
  }'
{
  "response": "Según la documentación del expediente 2026/0042, los plazos procesales pendientes son:

1. **Contestación a la demanda**: 20 días hábiles desde la notificación (vence aprox. 25 de marzo de 2026)
2. **Audiencia previa**: pendiente de señalamiento por el juzgado

Te recomiendo preparar la contestación con antelación y solicitar la documentación al cliente.",
  "sources": [
    {"type": "document", "name": "Demanda.pdf", "relevance": 0.95},
    {"type": "task", "name": "Preparar contestación", "relevance": 0.88}
  ]
}
const response = await fetch('/api/ai/case-assistant-stream', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer TOKEN',
    'Content-Type': 'application/json',
    'x-organization-id': 'ORG_ID'
  },
  body: JSON.stringify({
    caseId: 'case-uuid-1',
    message: '¿Cuáles son los plazos procesales pendientes?'
  })
});

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  const chunk = decoder.decode(value);
  process.stdout.write(chunk);
}
Content-Type: text/event-stream

data: {"content": "Según la "}
data: {"content": "documentación del "}
data: {"content": "expediente 2026/0042..."}
data: {"done": true}
curl -X POST https://app.getplea.com/api/ai/generate-legal-document \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{
    "caseId": "case-uuid-1",
    "documentType": "demanda",
    "instructions": "Incluir petición subsidiaria de daños y perjuicios"
  }'
Content-Type: text/event-stream

data: {"content": "AL JUZGADO DE PRIMERA INSTANCIA DE MADRID

"}
data: {"content": "D./Dña. Ana López Fernández, Abogada colegiada..."}
data: {"done": true, "documentId": "doc-uuid-generated"}
curl https://app.getplea.com/api/ai-settings \
  -H "Authorization: Bearer TOKEN" \
  -H "x-organization-id: ORG_ID"
{
  "model": "gpt-4o",
  "language": "es",
  "customInstructions": "Siempre usar terminología jurídica española",
  "maxTokens": 4096,
  "temperature": 0.3
}
curl -X PUT https://app.getplea.com/api/ai-settings \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-organization-id: ORG_ID" \
  -d '{"model": "gpt-4o", "customInstructions": "Usar terminología jurídica catalana cuando sea posible"}'
{
  "model": "gpt-4o",
  "language": "es",
  "customInstructions": "Usar terminología jurídica catalana cuando sea posible",
  "updatedAt": "2026-03-07T12:00:00Z"
}
curl https://app.getplea.com/api/ai-usage/summary \
  -H "Authorization: Bearer TOKEN" \
  -H "x-organization-id: ORG_ID"
{
  "period": "2026-03",
  "totalRequests": 342,
  "totalTokens": 1250000,
  "estimatedCost": 18.75,
  "breakdown": {
    "documentAnalysis": 120,
    "caseAssistant": 180,
    "documentGeneration": 42
  }
}

Endpoints del motor de IA de Plea: extracción automática de datos desde documentos, asistente inteligente por expediente, generación de documentos legales y análisis de textos.

Los endpoints que terminan en -stream devuelven Server-Sent Events (SSE). Mantén la conexión abierta y procesa los eventos conforme llegan.

GET /api/ai/status

Verifica el estado del servicio de IA (no requiere autenticación).


POST /api/ai/extract-case-from-documents

Extrae datos estructurados de un expediente a partir de documentos adjuntos (demandas, sentencias, contratos).

body
documentIdsstring[]
Required

Array de UUIDs de documentos a analizar.


POST /api/ai/extract-organismo

Extrae y normaliza datos de un órgano judicial a partir de texto libre.

body
textstring
Required

Texto que contiene la referencia al órgano judicial.


POST /api/ai/generate-case-description

Genera una descripción profesional del expediente a partir de los datos disponibles.

body
caseIdstring
Required

UUID del expediente.


POST /api/ai/analyze-document

Analiza un documento y devuelve un resumen estructurado.

body
documentIdstring
Required

UUID del documento.

body
promptstring

Instrucciones adicionales para el análisis.


POST /api/ai/case-assistant

Envía una pregunta al asistente IA de un expediente específico (respuesta completa).

body
caseIdstring
Required

UUID del expediente.

body
messagestring
Required

Pregunta o instrucción para la IA.


POST /api/ai/case-assistant-stream

Versión streaming (SSE) del asistente de expediente.

body
caseIdstring
Required

UUID del expediente.

body
messagestring
Required

Pregunta o instrucción.


POST /api/ai/generate-legal-document

Genera un documento legal completo mediante IA (SSE).

body
caseIdstring
Required

UUID del expediente.

body
documentTypestring
Required

Tipo: demanda, contestacion, recurso, escrito, contrato, carta.

body
instructionsstring

Instrucciones adicionales.


GET /api/ai-settings

Obtiene la configuración de IA de la organización.


PUT /api/ai-settings

Actualiza la configuración de IA.

body
modelstring

Modelo a usar: gpt-4o, gpt-4o-mini.

body
languagestring

Idioma: es, en, ca.

body
customInstructionsstring

Instrucciones personalizadas para la IA.


GET /api/ai-usage/summary

Obtiene el resumen de uso de IA (tokens, peticiones, costes estimados).