Extracciones (API Interna)
Gestión completa de extracciones desde la interfaz web. Estos endpoints usan autenticación JWT.
GET /api/extractions/
Lista extracciones del cliente con paginación y filtros avanzados.
/api/extractions/Headers
Authorization: Bearer JWT_TOKEN Query Parameters
page: (opcional) Número de página. Por defecto: 1per_page: (opcional) Resultados por página. Por defecto: 20status: (opcional) Filtrar por estado: en_cola, procesando, completado, incompleto, errorhabilidad_id: (opcional) Filtrar por ID de habilidadsearch: (opcional) Buscar por nombre de archivostart_date: (opcional) Fecha inicio YYYY-MM-DDend_date: (opcional) Fecha fin YYYY-MM-DD
Ejemplos
curl -X GET "https://api-docmind.devol.es/api/extractions/?page=1&per_page=20&status=completado" \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{
"extractions": [{"id": "uuid", "origin_name": "doc.pdf", "status": "completado", "extraction_date": "..."}],
"pagination": {"total": 150, "page": 1, "per_page": 20, "total_pages": 8}
} Lista paginada de extracciones con metadatos de paginación.
Errores
401UnauthorizedToken inválido.
{"msg": "Token inválido"}GET /api/extractions/{extraction_id}
Obtiene los datos básicos de una extracción.
/api/extractions/{extraction_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/api/extractions/UUID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"id": "uuid", "origin_name": "doc.pdf", "status": "completado", "fields": [...]} Datos de la extracción con sus campos.
Errores
404Not FoundExtracción no encontrada.
{"error": "Extracción no encontrada"}GET /api/extractions/{extraction_id}/detailed
Obtiene la extracción con datos detallados: coordenadas OCR, texto completo y campos con word_ids.
/api/extractions/{extraction_id}/detailedHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/api/extractions/UUID/detailed \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"id": "uuid", "fields": [...], "words": {"1": [{"id": "w1", "word": "Factura", "x0": 100, "y0": 50}]}, "full_text": "...", "num_pages": 2} Extracción con coordenadas OCR para visualizar en el visor de documentos.
Errores
404Not FoundExtracción no encontrada.
{"error": "Extracción no encontrada"}GET /api/extractions/{extraction_id}/temporary-url
Genera una URL temporal para acceder al documento original almacenado en Azure Blob Storage.
/api/extractions/{extraction_id}/temporary-urlHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/api/extractions/UUID/temporary-url \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"url": "https://storage.blob.core.windows.net/...?sv=...&se=...", "expires_in": 3600} URL temporal con SAS token de Azure, válida por 1 hora.
Errores
404Not FoundExtracción o documento no encontrado.
{"error": "Documento no encontrado en almacenamiento"}500Internal Server ErrorError al generar URL.
{"error": "Error al acceder al almacenamiento"}POST /api/extractions/{habilidad_slug}/create
Crea una nueva extracción desde la interfaz web (con JWT). Acepta archivo en Base64.
/api/extractions/{habilidad_slug}/createHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{
"file_name": "documento.pdf",
"file_base64": "BASE64_ENCODED",
"model": "gpt-4o-mini",
"extraction_mode": "ocr_pdf"
} file_name: (obligatorio) Nombre del archivo.file_base64: (obligatorio) Archivo codificado en Base64.model: (opcional) Modelo de IA. Por defecto: gpt-4o-mini.extraction_mode: (opcional) Modo de extracción.
Ejemplos
curl -X POST https://api-docmind.devol.es/api/extractions/factura/create \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"file_name": "doc.pdf", "file_base64": "...", "model": "gpt-4o-mini"}' Respuesta
{"extraction_id": "uuid-new", "message": "Extracción creada y en cola"} La extracción se crea y se pone en cola de procesamiento.
Errores
400Bad RequestDatos faltantes o archivo inválido.
{"error": "file_base64 es obligatorio"}402Payment RequiredCuota de extracciones agotada.
{"error": "Cuota de extracciones agotada"}404Not FoundHabilidad no encontrada.
{"error": "Habilidad no encontrada"}POST /api/extractions/descartar/{extraction_id}
Descarta una extracción (la marca como descartada sin eliminarla).
/api/extractions/descartar/{extraction_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X POST https://api-docmind.devol.es/api/extractions/descartar/UUID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"message": "Extracción descartada exitosamente"} La extracción se marca como descartada.
Errores
404Not FoundExtracción no encontrada.
{"error": "Extracción no encontrada"}GET /api/extractions/{extraction_id}/download
Descarga los datos extraídos en formato JSON o CSV.
/api/extractions/{extraction_id}/downloadHeaders
Authorization: Bearer JWT_TOKEN Query Parameters
format: (opcional) Formato de descarga: "json" o "csv". Por defecto: "json"
Ejemplos
curl -X GET "https://api-docmind.devol.es/api/extractions/UUID/download?format=csv" \
-H "Authorization: Bearer JWT_TOKEN" --output datos.csv Archivo descargado en el formato solicitado con Content-Disposition: attachment.
Errores
404Not FoundExtracción no encontrada.
{"error": "Extracción no encontrada"}POST /api/extractions/archivar/{extraction_id}
Archiva una extracción para ocultarla de las vistas principales.
/api/extractions/archivar/{extraction_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X POST https://api-docmind.devol.es/api/extractions/archivar/UUID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"message": "Extracción archivada exitosamente"} La extracción se archiva y no aparece en listados normales.
Errores
404Not FoundExtracción no encontrada.
{"error": "Extracción no encontrada"}