Docs API

Referencia de API

Documentación completa para todas las APIs de Public Safety incluyendo endpoints GraphQL, REST y WebSocket. Todos los endpoints requieren un argus_auth_token válido para devolver datos.

Resumen de la API

Public Safety Command Center expone dos servicios de API principales con más de 200 endpoints REST y 180+ operaciones GraphQL. Todos los endpoints autenticados requieren un argus_auth_token válido obtenido a través del Servicio de Autenticación.

Servicio de Autenticación

auth.knogin.com

Gestiona toda la autenticación, gestión de usuarios, MFA, SSO, claves API, roles, permisos y gestión de sesiones. Aquí es donde obtiene los tokens para acceder al Servicio de API.

  • 80+ Endpoints
  • OAuth2/OIDC
  • TOTP/Passkey/MFA por Voz

Servicio de API

api.knogin.com

La API central de la plataforma de inteligencia que proporciona endpoints REST y GraphQL para investigaciones, casos, perfiles, evidencias, alertas, monitores, servicios de IA y comunicación en tiempo real.

  • 130+ Endpoints REST
  • 180+ Operaciones GraphQL
  • WebSocket

URLs Base

Servicio de Auth (Producción)https://auth.knogin.com
Servicio de API (Producción)https://api.knogin.com
Servicio de Auth (Staging)https://auth-staging.knogin.com
Servicio de API (Staging)https://api-staging.knogin.com

Autenticación

Todas las solicitudes de API autenticadas requieren un argus_auth_token válido. Los tokens se obtienen a través del Servicio de Autenticación y deben incluirse en todas las solicitudes posteriores a ambos servicios. Las claves API pueden generarse en el panel del Servicio de Autenticación bajo su perfil de usuario para acceso programático.

Cookie HTTP-Only (Recomendado para navegadores)

Después de un inicio de sesión exitoso, las cookies se configuran automáticamente:

Cookies configuradas después del inicio de sesión
platform_access_token=eyJhbGc...  # Short-lived access token
knogin_refresh_token=eyJhbGc...   # Long-lived refresh token

Token Bearer (Para acceso programático)

Incluya el token en el encabezado Authorization:

Encabezado de Autorización
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Obtención de un Token

Ejemplo: Iniciar sesión con credenciales (Servicio de Auth)
# Using username/password (OAuth2 form)
curl -X POST https://auth.knogin.com/v1/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "[email protected]&password=your_password"

# Using API Key (recommended for service-to-service)
curl -X POST https://auth.knogin.com/v1/auth/token \
  -H "Content-Type: application/json" \
  -d '{"api_key": "your_api_key", "platform": "publicSafety"}'

# Response
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "bearer",
  "expires_in": 3600
}

Endpoints del Servicio de Autenticación

El Servicio de Autenticación (auth.knogin.com) gestiona toda la autenticación, autorización, gestión de usuarios, MFA, SSO, claves API, roles, permisos, feature flags y gestión multi-tenant. Contiene más de 80 endpoints organizados por funcionalidad.

Gestión de Tokens y Sesiones

Endpoints principales de autenticación para obtener, renovar y gestionar tokens de acceso y sesiones.

POST
/v1/token

Iniciar Sesión con Credenciales (Formulario OAuth2)

Endpoint de inicio de sesión compatible con OAuth2 que acepta email y contraseña codificados en formulario. Emite tokens de acceso específicos de plataforma y configura cookies HTTP-only para sesiones de navegador. Si MFA está habilitado, devuelve una cookie de desafío que requiere verificación.

Público5/min
POST
/v1/auth/token

Iniciar Sesión con Clave API

Autenticar usando una clave API para recibir un token JWT específico de plataforma. Ideal para autenticación servicio a servicio, pipelines de CI/CD y acceso programático.

Público
POST
/v1/auth/refresh

Renovar Token de Acceso

Renovar tokens de acceso expirados usando la cookie de refresco. Devuelve nuevas cookies de token de acceso sin requerir re-autenticación.

Público
POST
/v1/auth/logout

Cerrar Sesión y Terminar

Termina la sesión actual del usuario invalidando todos los tokens y eliminando cookies de autenticación.

Auth Requerida
POST
/v1/auth/revoke-user-sessions/{user_id}

Revocar Todas las Sesiones de Usuario (Admin)

Termina forzosamente todas las sesiones activas de un usuario específico en todos los dispositivos y plataformas.

Admin/Superusuario

Perfil de Usuario y Autoservicio

Endpoints para que los usuarios gestionen sus propios perfiles, vean su información y actualicen su configuración.

GET
/v1/users/me

Obtener Perfil de Usuario Actual

Devuelve el perfil completo del usuario actualmente autenticado incluyendo email, roles, permisos y estado de MFA.

Auth Requerida
PUT
/v1/users/me

Actualizar Perfil Propio

Permite a los usuarios actualizar su propia información de perfil incluyendo nombre, teléfono y contraseña.

Auth Requerida
GET
/v1/auth/me

Obtener Perfil con Feature Flags

Devuelve el perfil de usuario actual junto con feature flags evaluados para el tenant del usuario.

Auth Requerida
POST
/v1/users/create

Auto-Registro

Endpoint público para que nuevos usuarios creen una cuenta. Acepta email y contraseña, y envía un email de verificación.

Público2/hour

Autenticación Multifactor (MFA)

Soporte completo de MFA incluyendo TOTP (aplicaciones de autenticación), passkeys WebAuthn y verificación por voz. Los usuarios pueden habilitar múltiples métodos para seguridad en capas.

TOTP (Aplicaciones de Autenticación)

POST
/v1/portal/mfa/totp/enable

Habilitar TOTP - Generar Secreto

Genera un nuevo secreto TOTP y código QR para escanear con aplicaciones de autenticación.

Auth Requerida
POST
/v1/portal/mfa/totp/verify-and-activate

Verificar y Activar TOTP

Verifica un código TOTP y activa MFA para la cuenta del usuario.

Auth Requerida
POST
/v1/portal/mfa/totp/disable

Deshabilitar TOTP

Deshabilita MFA basado en TOTP para el usuario actual.

Auth Requerida
POST
/v1/mfa/verify-login

Verificar MFA Durante Inicio de Sesión

Valida el código MFA durante el flujo de desafío de inicio de sesión.

Público5/min

Passkeys WebAuthn

POST
/v1/portal/mfa/passkey/generate-registration

Generar Opciones de Registro de Passkey

Genera opciones de registro WebAuthn para crear una nueva credencial passkey.

Auth Requerida
POST
/v1/portal/mfa/passkey/verify-registration

Verificar y Guardar Passkey

Verifica la respuesta WebAuthn y guarda la nueva credencial passkey.

Auth Requerida
DELETE
/v1/portal/mfa/passkey/{credential_id}

Eliminar Passkey

Elimina una credencial passkey específica por su ID.

Auth Requerida
POST
/v1/portal/mfa/passkey/generate-authentication

Generar Opciones de Inicio de Sesión con Passkey

Genera opciones de autenticación WebAuthn para inicio de sesión sin contraseña.

Público
POST
/v1/portal/mfa/passkey/verify-authentication

Verificar Passkey e Iniciar Sesión

Verifica la respuesta WebAuthn y completa el inicio de sesión.

Público

Verificación por Voz

POST
/v1/portal/mfa/voice/enroll

Inscribir Perfil de Voz

Inscribe una muestra de voz para MFA basado en voz.

Auth Requerida
POST
/v1/portal/mfa/voice/verify

Verificar Muestra de Voz

Verifica una muestra de voz contra el perfil inscrito durante el desafío MFA.

Público5/min
DELETE
/v1/portal/mfa/voice

Deshabilitar MFA por Voz

Deshabilita MFA basado en voz y elimina el perfil de voz almacenado.

Auth Requerida
GET
/v1/portal/mfa/challenge-info

Obtener Métodos MFA Disponibles

Devuelve información sobre qué métodos MFA están disponibles para el desafío de inicio de sesión.

Público

Inicio de Sesión Único (SSO)

Integración de inicio de sesión único basada en OAuth2/OIDC con proveedores de identidad empresariales incluyendo Google Workspace y Microsoft Entra ID (Azure AD).

GET
/v1/portal/sso/available-providers

Listar Proveedores SSO Disponibles

Devuelve una lista de proveedores SSO configurados para el tenant actual.

Público
GET
/v1/portal/login/{provider}

Iniciar Inicio de Sesión SSO

Inicia el flujo de autorización OAuth2/OIDC con el proveedor de identidad especificado.

Público
GET
/v1/portal/auth/{provider}

Manejador de Callback SSO

Endpoint de callback OAuth2/OIDC que maneja el código de autorización devuelto por el proveedor.

Público

Gestión de Claves API

Crear y gestionar claves API para acceso programático. Las claves API pueden limitarse a plataformas específicas y tener fecha de expiración configurable.

POST
/v1/portal/users/me/keys

Crear Clave API

Crea una nueva clave API para acceso programático. La clave completa solo se devuelve una vez.

Auth Requerida
GET
/v1/portal/users/me/keys

Listar Claves API

Devuelve todas las claves API para el usuario actual.

Auth Requerida
DELETE
/v1/portal/users/me/keys/{key_id}

Revocar Clave API

Revoca permanentemente una clave API, invalidando inmediatamente todos los tokens emitidos.

Auth Requerida

Gestión de Usuarios (Admin)

Endpoints administrativos para gestionar usuarios, roles y permisos. El acceso varía según la jerarquía de roles.

GET
/v1/portal/admin/users

Listar Usuarios

Devuelve todos los usuarios basándose en el rol del llamante.

Admin/Gestor
POST
/v1/portal/admin/users

Crear Usuario

Crea un nuevo usuario con email, contraseña, roles y asignación de organización.

Admin/Superusuario
GET
/v1/portal/admin/users/{user_id}

Obtener Usuario por ID

Devuelve información detallada del usuario incluyendo perfil, roles y permisos.

Admin/Gestor
PUT
/v1/portal/admin/users/{user_id}

Actualizar Usuario

Actualiza detalles del usuario incluyendo roles, permisos y acceso a plataforma.

Admin/Superusuario
DELETE
/v1/portal/admin/users/{user_id}

Eliminar Usuario

Elimina permanentemente una cuenta de usuario y todos los datos asociados.

Admin/Superusuario
PATCH
/v1/users/{user_id}/permissions

Actualizar Permisos de Usuario

Actualiza los permisos granulares de un usuario independientemente de sus roles.

Admin/Superusuario

Gestión de Roles y Permisos

Definir roles personalizados y permisos granulares para control de acceso detallado dentro de las organizaciones.

GET
/v1/roles

Listar Roles Disponibles

Devuelve todos los roles disponibles en el sistema incluyendo roles integrados y personalizados.

Público
POST
/v1/roles

Crear Rol Personalizado

Crea un nuevo rol personalizado con permisos especificados.

Admin/Superusuario
PUT
/v1/roles/{role_id}

Actualizar Rol

Actualiza el nombre, descripción o permisos de un rol personalizado.

Admin/Superusuario
DELETE
/v1/roles/{role_id}

Eliminar Rol Personalizado

Elimina un rol personalizado. Los usuarios con este rol perderán los permisos asociados.

Admin/Superusuario

Feature Flags

Controlar la disponibilidad de características a nivel de tenant y usuario para lanzamientos graduales y pruebas A/B.

GET
/v1/feature-flags/tenant

Obtener Feature Flags del Tenant

Devuelve todos los feature flags y sus valores para el tenant actual.

Admin/Gestor
PUT
/v1/feature-flags/tenant

Actualizar Feature Flags del Tenant

Actualiza feature flags para el tenant. Los cambios aplican a todos los usuarios.

Admin/Gestor
GET
/v1/feature-flags/user/{user_id}

Obtener Anulaciones de Feature Flags de Usuario

Devuelve anulaciones de feature flags específicas de usuario.

Admin/Gestor
PUT
/v1/feature-flags/user/{user_id}

Actualizar Anulaciones de Feature Flags de Usuario

Establece anulaciones de feature flags específicas de usuario.

Admin/Gestor

Gestión Multi-Tenant e Integradores de Sistemas

Gestionar la jerarquía multi-tenant incluyendo Integradores de Sistemas (SI) que revenden y gestionan despliegues de Public Safety para sus clientes.

POST
/v1/systems-integrators

Crear Integrador de Sistemas

Crea una nueva organización de Integrador de Sistemas que puede gestionar múltiples tenants.

Admin Vectis Consilium
GET
/v1/systems-integrators

Listar Integradores de Sistemas

Devuelve todos los Integradores de Sistemas en la plataforma.

Admin Vectis Consilium
GET
/v1/systems-integrators/{si_id}

Obtener Detalles de Integrador de Sistemas

Devuelve información detallada sobre un Integrador de Sistemas específico.

Admin SI
GET
/v1/systems-integrators/{si_id}/customers

Listar Clientes del SI

Devuelve todos los tenants de clientes gestionados por un Integrador de Sistemas.

Admin SI
POST
/v1/systems-integrators/{si_id}/customers

Crear Tenant de Cliente

Crea un nuevo tenant de cliente bajo un Integrador de Sistemas.

Admin SI
GET
/v1/tenants/{tenant_id}

Obtener Detalles del Tenant

Devuelve información detallada sobre un tenant específico.

Admin SI
PUT
/v1/tenants/{tenant_id}

Actualizar Tenant

Actualiza la configuración del tenant incluyendo nombre, características y cuotas.

Admin SI
DELETE
/v1/tenants/{tenant_id}

Eliminar/Archivar Tenant

Archiva o elimina un tenant y todos los datos asociados.

Admin Vectis Consilium

Utilidades y Configuración

Endpoints de configuración administrativa y utilidades.

GET
/v1/portal/admin/config

Obtener Configuración de Admin

Devuelve datos de configuración para la UI de admin.

Admin/Gestor
GET
/v1/portal/data/countries

Obtener Lista de Países

Devuelve una lista de todos los países con sus regiones para formularios de dirección.

Público
GET
/health

Verificación de Salud

Endpoint simple de verificación de salud que devuelve el estado del servicio.

Público
GET
/v1/platforms/supported

Listar Plataformas Soportadas

Devuelve la lista de plataformas que pueden especificarse al emitir tokens.

Público
GET
/audit/logs

Obtener Registros de Auditoría

Devuelve registros de auditoría de seguridad para el servicio de autenticación.

Administrador

Endpoints del Servicio de API

El Servicio de API (api.knogin.com) es la plataforma central de inteligencia que proporciona más de 130 endpoints REST para investigaciones, casos, perfiles, evidencias, alertas, servicios de IA, comunicación en tiempo real y más. Todos los endpoints requieren autenticación a menos que se marquen como públicos.

Salud y Capacidades del Sistema

Endpoints de monitoreo de salud del sistema y descubrimiento de capacidades para integración y monitoreo.

GET
/api/v1/health

Verificación de Salud Completa

Devuelve el estado de salud detallado de todos los componentes del sistema.

Público
GET
/api/v1/health/simple

Verificación de Salud Simple

Verificación de salud ligera para balanceadores de carga.

Público
GET
/api/v1/health/db-check

Verificación de Conectividad de Base de Datos

Verifica la conectividad con todos los sistemas de bases de datos.

Público
GET
/api/v1/health/connectivity

Conectividad de Servicios Externos

Verifica la conectividad con todos los servicios externos.

Público
GET
/api/v1/capabilities

Capacidades del Sistema

Devuelve capacidades completas del sistema para configuración de frontend.

Público

Procesamiento de Inteligencia

Procesamiento de documentos con IA para extraer entidades, relaciones e inteligencia de archivos de texto, imágenes, audio y video.

POST
/api/v1/intelligence/process-text

Procesar Documento de Texto

Cargar y procesar archivos de texto, PDF o DOCX para investigación usando IA.

Auth Requerida
POST
/api/v1/intelligence/process-text/base64

Procesar Documento de Texto (Base64)

Endpoint compatible con Cloudflare para procesar documentos codificados en base64.

Auth Requerida
POST
/api/v1/process-image-file

Procesar Imagen

Cargar y procesar imágenes para análisis visual con IA.

Auth Requerida
POST
/api/v1/process-image-file/base64

Procesar Imagen (Base64)

Endpoint para procesar imágenes codificadas en base64.

Auth Requerida
POST
/api/v1/process-audio-file

Procesar Audio

Cargar y procesar archivos de audio para transcripción e identificación de hablantes.

Auth Requerida
POST
/api/v1/process-audio-file/base64

Procesar Audio (Base64)

Endpoint para procesar audio codificado en base64.

Auth Requerida
POST
/api/v1/process-video-file

Procesar Video

Cargar y procesar archivos de video para análisis completo.

Auth Requerida
POST
/api/v1/process-video-file/base64

Procesar Video (Base64)

Endpoint para procesar video codificado en base64.

Auth Requerida

Gestión de Perfiles

Crear, actualizar y enriquecer perfiles de entidades con datos de proveedores OSINT. Soporta operaciones individuales y por lotes.

POST
/api/v1/profiles

Crear Perfil

Crea un nuevo perfil de entidad.

Auth Requerida
GET
/api/v1/profiles/{profile_id}

Obtener Perfil

Devuelve datos completos del perfil.

Auth Requerida
PUT
/api/v1/profiles/{profile_id}

Actualizar Perfil

Actualiza campos del perfil.

Auth Requerida
DELETE
/api/v1/profiles/{profile_id}

Eliminar Perfil

Elimina suavemente un perfil.

Auth Requerida
POST
/api/v1/profiles/{profile_id}/enrich

Enriquecer Perfil

Enriquece un perfil con datos de proveedores OSINT.

Auth Requerida
POST
/api/v1/batch/profiles

Obtener Perfiles por Lotes

Recupera múltiples perfiles por ID en una sola solicitud.

Auth Requerida
POST
/api/v1/batch/enrich

Enriquecer Perfiles por Lotes

Enriquece múltiples perfiles en una sola solicitud.

Auth Requerida
GET
/api/v1/profiles/search

Búsqueda de texto completo en todos los campos de perfil.

Auth Requerida
POST
/api/v1/profiles/link

Crea una relación entre dos perfiles.

Auth Requerida
DELETE
/api/v1/profiles/link

Elimina una relación entre dos perfiles.

Auth Requerida

Investigaciones y Casos

Gestionar investigaciones, casos, tareas y el ciclo de vida completo de la investigación.

POST
/api/v1/investigations

Crear Investigación

Crea un nuevo espacio de trabajo de investigación.

Auth Requerida
GET
/api/v1/investigations/{investigation_id}

Obtener Investigación

Devuelve detalles completos de la investigación.

Auth Requerida
PUT
/api/v1/investigations/{investigation_id}

Actualizar Investigación

Actualiza metadatos de la investigación.

Auth Requerida
DELETE
/api/v1/investigations/{investigation_id}

Eliminar Investigación

Elimina suavemente una investigación.

Auth Requerida
GET
/api/v1/investigations

Listar Investigaciones

Devuelve investigaciones accesibles para el usuario actual.

Auth Requerida
POST
/api/v1/investigations/{investigation_id}/files

Agregar Archivos a Investigación

Asocia archivos cargados con una investigación.

Auth Requerida

Alertas y Monitores

Configurar reglas de monitoreo y gestionar alertas activadas por flujos de datos en tiempo real.

POST
/api/v1/alerts

Crear Alerta

Crea programáticamente una alerta.

Auth Requerida
GET
/api/v1/alerts/{alert_id}

Obtener Alerta

Devuelve detalles completos de la alerta.

Auth Requerida
PUT
/api/v1/alerts/{alert_id}

Actualizar Alerta

Actualiza metadatos o estado de la alerta.

Auth Requerida
POST
/api/v1/alerts/{alert_id}/decide

Decidir Alerta

Registra una decisión sobre una alerta.

Auth Requerida
GET
/api/v1/alerts

Listar Alertas

Devuelve alertas que coinciden con criterios de filtro.

Auth Requerida

Alertas y Monitores

Configurar reglas de monitoreo y gestionar alertas activadas por flujos de datos en tiempo real.

POST
/api/v1/monitors

Crear Monitor

Crea una regla de monitoreo que activa alertas.

Auth Requerida
GET
/api/v1/monitors/{monitor_id}

Obtener Monitor

Devuelve configuración del monitor y estadísticas.

Auth Requerida
PUT
/api/v1/monitors/{monitor_id}

Actualizar Monitor

Actualiza condiciones del monitor.

Auth Requerida
DELETE
/api/v1/monitors/{monitor_id}

Eliminar Monitor

Elimina permanentemente un monitor.

Auth Requerida
GET
/api/v1/monitors

Listar Monitores

Devuelve todos los monitores para el tenant actual.

Auth Requerida
POST
/api/v1/ai/generate-monitor-spec

Generar Monitor desde Descripción

Usa IA para convertir descripciones en lenguaje natural en especificaciones de monitor.

Auth Requerida

Servicios de IA

Acceso directo a capacidades de IA incluyendo análisis de texto, extracción de entidades, mapeo de relaciones y procesamiento de lenguaje natural.

POST
/api/v1/ai/analyze-text

Analizar Texto con IA

Realiza análisis de IA completo sobre contenido de texto.

Auth Requerida
POST
/api/v1/ai/generate-graph

Generar Grafo desde Texto

Crea un grafo de conocimiento desde texto no estructurado.

Auth Requerida
POST
/api/v1/ai/summarize

Resumir Contenido

Genera resúmenes concisos de contenido largo.

Auth Requerida
POST
/api/v1/ai/translate

Traducir Contenido

Traduce contenido entre idiomas soportados.

Auth Requerida
POST
/api/v1/ai/extract-entities

Extraer Entidades Nombradas

Extrae y clasifica entidades nombradas del texto.

Auth Requerida

Gestión de Archivos

Cargar, descargar y gestionar archivos con aplicación completa de RBAC y registro de auditoría.

POST
/api/v1/files

Cargar Archivo

Carga un archivo a almacenamiento seguro.

Auth Requerida
GET
/api/v1/files/{file_id}/download

Descargar Archivo

Descarga un archivo con aplicación de RBAC.

Auth Requerida
GET
/api/v1/files/{file_id}/stream

Transmitir Archivo

Transmite un archivo para carga progresiva.

Auth Requerida
GET
/api/v1/files/{file_id}/presigned-url

Obtener URL Prefirmada

Genera una URL prefirmada con tiempo limitado.

Auth Requerida
GET
/api/v1/admin/files

Listar Todos los Archivos (Admin)

Devuelve todos los archivos en el sistema.

Admin/Superusuario
GET
/api/v1/admin/files/{file_id}/audit

Rastro de Auditoría de Archivo (Admin)

Devuelve rastro de auditoría completo para un archivo.

Admin/Superusuario

Metadatos y Documentación de API

Endpoints de API autodescriptivos para integración dinámica y documentación.

GET
/api/v1/docs/endpoints

Documentación de Endpoints de API

Devuelve documentación completa de todos los endpoints.

Público
GET
/api/v1/metadata/domains

Metadatos de Dominio

Devuelve metadatos sobre todos los dominios disponibles.

Público
GET
/api/v1/metadata/enums

Metadatos de Enumeraciones

Devuelve todos los tipos de enumeración usados en la API.

Público
GET
/api/v1/metadata/providers

Metadatos de Proveedores

Devuelve metadatos sobre proveedores de datos OSINT.

Público

Auditoría y Cumplimiento

Rastros de auditoría criptográficos con verificación de árbol Merkle para registros a prueba de manipulaciones.

GET
/api/v1/audit/anchor/latest

Obtener Último Ancla Merkle

Devuelve el hash raíz de árbol Merkle más reciente.

Público
GET
/api/v1/audit/anchor/proof/{entry_id}

Obtener Prueba de Inclusión

Devuelve una prueba de inclusión Merkle para una entrada de auditoría.

Público

Mission Planning

AI-assisted mission planning and operational support.

POST
/api/v1/mission-plans

Generar Plan de Misión

Planificación de misión asistida por IA.

Auth Requerida
PUT
/api/v1/mission-plans/{plan_id}

Refinar Plan de Misión

Refina iterativamente un plan de misión existente.

Auth Requerida

Gestión de Casos

Gestión completa del ciclo de vida de casos con flujo de trabajo, asignaciones, plantillas y seguimiento de cronología.

POST
/api/v1/cases

Crear Caso

Crea un nuevo caso dentro de una investigación con título, descripción, prioridad, estado y usuario asignado.

Auth Requerida
GET
/api/v1/cases/{case_id}

Obtener Caso

Devuelve detalles completos del caso incluyendo metadatos, usuarios asignados, perfiles vinculados, tareas, notas y cronología.

Auth Requerida
PUT
/api/v1/cases/{case_id}

Actualizar Caso

Actualiza metadatos del caso incluyendo título, descripción, prioridad, estado, fecha límite y campos personalizados.

Auth Requerida
DELETE
/api/v1/cases/{case_id}

Eliminar Caso

Elimina suavemente un caso y todos los datos asociados. Los datos se retienen por período de cumplimiento.

Auth Requerida
GET
/api/v1/cases

Listar Casos

Devuelve casos con filtrado por investigación, estado, prioridad, asignado, rango de fechas y etiquetas.

Auth Requerida
POST
/api/v1/cases/{case_id}/assign

Asignar Caso

Asigna o reasigna un caso a un usuario o equipo. Soporta múltiples asignados.

Auth Requerida
POST
/api/v1/cases/{case_id}/status

Actualizar Estado del Caso

Actualiza el estado del caso con validación de flujo de trabajo.

Auth Requerida
POST
/api/v1/cases/{case_id}/link-profile

Asocia un perfil de entidad con un caso especificando el tipo de relación.

Auth Requerida
DELETE
/api/v1/cases/{case_id}/link-profile/{profile_id}

Elimina la asociación entre un perfil y un caso.

Auth Requerida
GET
/api/v1/cases/{case_id}/timeline

Obtener Cronología del Caso

Devuelve la cronología completa de actividad del caso.

Auth Requerida
POST
/api/v1/cases/bulk-update

Actualización Masiva de Casos

Actualiza múltiples casos en una sola solicitud.

Auth Requerida
POST
/api/v1/cases/from-template

Crear Caso desde Plantilla

Crea un nuevo caso usando una plantilla predefinida.

Auth Requerida

Gestión de Tareas

Crear y gestionar tareas con asignaciones, listas de verificación, dependencias y seguimiento de progreso.

POST
/api/v1/tasks

Crear Tarea

Crea una nueva tarea dentro de un caso con título, descripción, asignado y fecha límite.

Auth Requerida
GET
/api/v1/tasks/{task_id}

Obtener Tarea

Devuelve detalles completos de la tarea incluyendo lista de verificación y subtareas.

Auth Requerida
PUT
/api/v1/tasks/{task_id}

Actualizar Tarea

Actualiza campos de la tarea incluyendo título, descripción, fecha límite y progreso.

Auth Requerida
DELETE
/api/v1/tasks/{task_id}

Eliminar Tarea

Elimina una tarea y opcionalmente sus subtareas.

Auth Requerida
GET
/api/v1/cases/{case_id}/tasks

Listar Tareas por Caso

Devuelve todas las tareas de un caso con filtrado.

Auth Requerida
POST
/api/v1/tasks/{task_id}/assign

Asignar Tarea

Asigna o reasigna una tarea a un usuario.

Auth Requerida
POST
/api/v1/tasks/{task_id}/complete

Completar Tarea

Marca una tarea como completada con notas opcionales.

Auth Requerida
POST
/api/v1/tasks/{task_id}/checklist

Actualizar Lista de Verificación

Actualiza elementos de la lista de verificación de una tarea.

Auth Requerida
GET
/api/v1/tasks/my-tasks

Mis Tareas

Devuelve todas las tareas asignadas al usuario actual.

Auth Requerida
POST
/api/v1/tasks/bulk-update

Actualización Masiva de Tareas

Actualiza múltiples tareas en una sola solicitud.

Auth Requerida

Notas y Documentación

Notas de investigación con texto enriquecido, hilos, adjuntos y controles de visibilidad.

POST
/api/v1/notes

Crear Nota

Crea una nueva nota adjunta a un caso o investigación con texto enriquecido y menciones.

Auth Requerida
GET
/api/v1/notes/{note_id}

Obtener Nota

Devuelve contenido de la nota con metadatos, adjuntos y respuestas.

Auth Requerida
PUT
/api/v1/notes/{note_id}

Actualizar Nota

Actualiza contenido o metadatos de la nota. Mantiene historial de versiones.

Auth Requerida
DELETE
/api/v1/notes/{note_id}

Eliminar Nota

Elimina suavemente una nota. El contenido se retiene para cumplimiento.

Auth Requerida
GET
/api/v1/cases/{case_id}/notes

Listar Notas por Caso

Devuelve todas las notas de un caso respetando reglas de visibilidad.

Auth Requerida
POST
/api/v1/notes/{note_id}/attachments

Añadir Adjunto a Nota

Adjunta un archivo a una nota existente.

Auth Requerida
POST
/api/v1/notes/{note_id}/reply

Responder a Nota

Crea una respuesta en hilo a una nota existente.

Auth Requerida

Adjuntos y Archivos

Gestionar archivos adjuntos con procesamiento, cadena de custodia y verificación de integridad.

POST
/api/v1/attachments

Crear Adjunto

Sube y adjunta un archivo a un caso, nota o tarea.

Auth Requerida
GET
/api/v1/attachments/{attachment_id}

Obtener Adjunto

Devuelve metadatos del adjunto incluyendo estado de procesamiento.

Auth Requerida
DELETE
/api/v1/attachments/{attachment_id}

Eliminar Adjunto

Elimina suavemente un adjunto.

Auth Requerida
GET
/api/v1/cases/{case_id}/attachments

Listar Adjuntos por Caso

Devuelve todos los adjuntos de un caso con filtrado.

Auth Requerida
POST
/api/v1/attachments/{attachment_id}/process

Reprocesar Adjunto

Activa reprocesamiento de un adjunto con modelos actualizados.

Auth Requerida
GET
/api/v1/attachments/{attachment_id}/chain-of-custody

Cadena de Custodia del Adjunto

Devuelve el registro completo de cadena de custodia.

Auth Requerida

Análisis de Grafos

Análisis de redes, búsqueda de rutas, métricas de centralidad y detección de comunidades en el grafo de conocimiento.

GET
/api/v1/graph/node/{node_id}

Obtener Nodo

Devuelve un nodo del grafo de conocimiento con todas sus propiedades.

Auth Requerida
GET
/api/v1/graph/node/{node_id}/neighbors

Obtener Vecinos

Devuelve todos los nodos conectados directamente dentro de la profundidad especificada.

Auth Requerida
GET
/api/v1/graph/path

Encontrar Ruta

Encuentra la ruta más corta entre dos nodos.

Auth Requerida
POST
/api/v1/graph/subgraph

Obtener Subgrafo

Extrae un subgrafo alrededor de nodos semilla especificados.

Auth Requerida
POST
/api/v1/graph/query

Consulta Cypher Personalizada

Ejecuta una consulta Cypher de solo lectura. Solo administradores.

Auth Requerida
GET
/api/v1/graph/statistics

Estadísticas del Grafo

Devuelve estadísticas agregadas del grafo de conocimiento.

Auth Requerida
POST
/api/v1/graph/centrality

Calcular Centralidad

Calcula métricas de centralidad para identificar entidades clave.

Auth Requerida
POST
/api/v1/graph/community-detection

Detectar Comunidades

Ejecuta algoritmos de detección de comunidades.

Auth Requerida
POST
/api/v1/graph/link-prediction

Usa ML de grafos para predecir relaciones probables.

Auth Requerida

Inteligencia Geoespacial

Consultas basadas en ubicación, agrupación, mapas de calor, rutas y análisis de línea de tiempo geográfica.

POST
/api/v1/geo/search

Busca entidades con datos de ubicación que coincidan con criterios espaciales.

Auth Requerida
POST
/api/v1/geo/within-bounds

Entidades Dentro de Límites

Devuelve entidades dentro de un rectángulo delimitador.

Auth Requerida
POST
/api/v1/geo/within-radius

Entidades Dentro de Radio

Devuelve entidades dentro de un radio especificado de un punto central.

Auth Requerida
POST
/api/v1/geo/within-polygon

Entidades Dentro de Polígono

Devuelve entidades dentro de un polígono GeoJSON.

Auth Requerida
GET
/api/v1/geo/clusters

Obtener Clusters de Ubicación

Devuelve datos de ubicación agrupados para visualización de mapas.

Auth Requerida
GET
/api/v1/geo/heatmap

Obtener Datos de Mapa de Calor

Devuelve datos de densidad para visualización de mapas de calor.

Auth Requerida
POST
/api/v1/geo/route

Calcular Ruta

Calcula ruta óptima entre ubicaciones.

Auth Requerida
GET
/api/v1/geo/timeline/{entity_id}

Cronología de Ubicación

Devuelve historial cronológico de ubicaciones de una entidad.

Auth Requerida
POST
/api/v1/geo/geocode

Geocodificar Dirección

Convierte una dirección de texto en coordenadas geográficas.

Auth Requerida
POST
/api/v1/geo/reverse-geocode

Geocodificación Inversa

Convierte coordenadas en una dirección legible.

Auth Requerida

Tableros y Visualización

Crear tableros personalizables con gráficos, mapas, métricas y vistas compartidas de equipo.

POST
/api/v1/dashboards

Crear Tablero

Crea un nuevo tablero con título, descripción y configuración de diseño.

Auth Requerida
GET
/api/v1/dashboards/{dashboard_id}

Obtener Tablero

Devuelve configuración del tablero incluyendo todos los paneles.

Auth Requerida
PUT
/api/v1/dashboards/{dashboard_id}

Actualizar Tablero

Actualiza metadatos o configuración de diseño del tablero.

Auth Requerida
DELETE
/api/v1/dashboards/{dashboard_id}

Eliminar Tablero

Elimina un tablero y todos sus paneles.

Auth Requerida
GET
/api/v1/dashboards

Listar Tableros

Devuelve todos los tableros accesibles al usuario.

Auth Requerida
POST
/api/v1/dashboards/{dashboard_id}/panels

Añadir Panel

Añade un nuevo panel al tablero.

Auth Requerida
PUT
/api/v1/dashboards/{dashboard_id}/panels/{panel_id}

Actualizar Panel

Actualiza configuración del panel.

Auth Requerida
DELETE
/api/v1/dashboards/{dashboard_id}/panels/{panel_id}

Eliminar Panel

Elimina un panel del tablero.

Auth Requerida
POST
/api/v1/dashboards/{dashboard_id}/share

Compartir Tablero

Comparte un tablero con usuarios o equipos específicos.

Auth Requerida
POST
/api/v1/dashboards/{dashboard_id}/clone

Clonar Tablero

Crea una copia de un tablero con todos los paneles.

Auth Requerida

Informes y Exportaciones

Generar informes profesionales, paquetes judiciales y exportaciones de datos en múltiples formatos.

POST
/api/v1/reports/generate

Generar Informe

Genera un informe desde plantilla o configuración personalizada.

Auth Requerida
GET
/api/v1/reports/{report_id}

Obtener Informe

Devuelve metadatos del informe incluyendo estado de generación.

Auth Requerida
GET
/api/v1/reports/{report_id}/download

Descargar Informe

Descarga un archivo de informe generado.

Auth Requerida
GET
/api/v1/reports

Listar Informes

Devuelve todos los informes generados por el usuario o equipo.

Auth Requerida
DELETE
/api/v1/reports/{report_id}

Eliminar Informe

Elimina un archivo de informe generado.

Auth Requerida
POST
/api/v1/exports/case/{case_id}

Exportar Caso

Exporta un paquete completo del caso.

Auth Requerida
POST
/api/v1/exports/investigation/{investigation_id}

Exportar Investigación

Exporta una investigación completa con todos los casos.

Auth Requerida
POST
/api/v1/exports/court-package

Generar Paquete Judicial

Genera paquete de evidencias listo para corte.

Auth Requerida
GET
/api/v1/reports/templates

Listar Plantillas de Informe

Devuelve plantillas de informe disponibles.

Auth Requerida
POST
/api/v1/reports/schedule

Programar Informe

Programa generación automática de informes.

Auth Requerida

Búsqueda y Descubrimiento

Búsqueda global de texto completo, búsqueda semántica y capacidades de consulta avanzada en todos los datos.

POST
/api/v1/search

Búsqueda de texto completo en todos los datos accesibles.

Auth Requerida
POST
/api/v1/search/entities

Buscar Entidades

Búsqueda específica dentro de perfiles de entidad.

Auth Requerida
POST
/api/v1/search/documents

Buscar Documentos

Búsqueda dentro del contenido de documentos.

Auth Requerida
POST
/api/v1/search/advanced

Búsqueda Avanzada

Búsqueda estructurada con consultas booleanas complejas.

Auth Requerida
POST
/api/v1/search/semantic

Búsqueda Semántica

Búsqueda semántica con IA que entiende la intención.

Auth Requerida
GET
/api/v1/search/suggestions

Sugerencias de Búsqueda

Devuelve sugerencias de autocompletado.

Auth Requerida
GET
/api/v1/search/history

Historial de Búsqueda

Devuelve consultas de búsqueda recientes del usuario.

Auth Requerida
POST
/api/v1/search/save

Guardar Búsqueda

Guarda una consulta de búsqueda para acceso rápido.

Auth Requerida

Etiquetas y Clasificación

Organizar entidades con etiquetas para categorización, filtrado y descubrimiento entre dominios.

POST
/api/v1/tags

Crear Etiqueta

Crea una nueva etiqueta con nombre, color y descripción opcional.

Auth Requerida
GET
/api/v1/tags

Listar Etiquetas

Devuelve todas las etiquetas disponibles con conteos de uso.

Auth Requerida
PUT
/api/v1/tags/{tag_id}

Actualizar Etiqueta

Actualiza propiedades de la etiqueta.

Auth Requerida
DELETE
/api/v1/tags/{tag_id}

Eliminar Etiqueta

Elimina una etiqueta de todas las entidades.

Auth Requerida
POST
/api/v1/tags/apply

Aplicar Etiquetas

Aplica etiquetas a una entidad.

Auth Requerida
POST
/api/v1/tags/remove

Eliminar Etiquetas

Elimina etiquetas especificadas de una entidad.

Auth Requerida
GET
/api/v1/tags/{tag_id}/entities

Obtener Entidades por Etiqueta

Devuelve todas las entidades con una etiqueta específica.

Auth Requerida

Comentarios y Colaboración

Comentarios en hilos con menciones, reacciones y funciones de colaboración en tiempo real.

POST
/api/v1/comments

Crear Comentario

Crea un comentario en cualquier entidad con menciones y formato.

Auth Requerida
GET
/api/v1/comments/{comment_id}

Obtener Comentario

Devuelve un comentario con metadatos, respuestas y reacciones.

Auth Requerida
PUT
/api/v1/comments/{comment_id}

Actualizar Comentario

Actualiza contenido del comentario. Se preserva el historial.

Auth Requerida
DELETE
/api/v1/comments/{comment_id}

Eliminar Comentario

Elimina un comentario. Las respuestas permanecen visibles.

Auth Requerida
GET
/api/v1/{entity_type}/{entity_id}/comments

Listar Comentarios por Entidad

Devuelve todos los comentarios de una entidad específica.

Auth Requerida
POST
/api/v1/comments/{comment_id}/reply

Responder a Comentario

Crea una respuesta en hilo a un comentario.

Auth Requerida
POST
/api/v1/comments/{comment_id}/react

Reaccionar a Comentario

Añade o elimina una reacción emoji a un comentario.

Auth Requerida

Notificaciones y Preferencias

Gestionar notificaciones a través de canales con preferencias personalizables y horas de silencio.

GET
/api/v1/notifications

Listar Notificaciones

Devuelve todas las notificaciones del usuario actual.

Auth Requerida
GET
/api/v1/notifications/unread-count

Conteo de No Leídas

Devuelve el conteo de notificaciones no leídas.

Auth Requerida
POST
/api/v1/notifications/{notification_id}/read

Marcar como Leída

Marca una notificación como leída.

Auth Requerida
POST
/api/v1/notifications/mark-all-read

Marcar Todas como Leídas

Marca todas las notificaciones como leídas.

Auth Requerida
DELETE
/api/v1/notifications/{notification_id}

Eliminar Notificación

Elimina permanentemente una notificación.

Auth Requerida
GET
/api/v1/notifications/preferences

Obtener Preferencias

Devuelve preferencias de notificación del usuario.

Auth Requerida
PUT
/api/v1/notifications/preferences

Actualizar Preferencias

Actualiza preferencias de notificación.

Auth Requerida

Equipos y Colaboración

Gestión de equipos con miembros, roles, permisos y jerarquías organizacionales.

POST
/api/v1/teams

Crear Equipo

Crea un nuevo equipo con nombre, descripción y miembros iniciales.

Admin/Gestor
GET
/api/v1/teams/{team_id}

Obtener Equipo

Devuelve detalles del equipo incluyendo miembros y roles.

Auth Requerida
PUT
/api/v1/teams/{team_id}

Actualizar Equipo

Actualiza metadatos del equipo.

Admin/Gestor
DELETE
/api/v1/teams/{team_id}

Eliminar Equipo

Elimina un equipo. Los miembros pierden permisos del equipo.

Admin/Superusuario
GET
/api/v1/teams

Listar Equipos

Devuelve todos los equipos que el usuario puede ver.

Auth Requerida
POST
/api/v1/teams/{team_id}/members

Añadir Miembro

Añade un usuario al equipo con rol especificado.

Admin/Gestor
DELETE
/api/v1/teams/{team_id}/members/{user_id}

Eliminar Miembro

Elimina un usuario del equipo.

Admin/Gestor
PUT
/api/v1/teams/{team_id}/members/{user_id}/role

Actualizar Rol de Miembro

Cambia el rol de un miembro del equipo.

Admin/Gestor

Listas de Vigilancia y Screening

Monitorear entidades contra listas de vigilancia con coincidencia automática y generación de alertas.

POST
/api/v1/watchlists

Crear Lista de Vigilancia

Crea una nueva lista de vigilancia con criterios de coincidencia.

Auth Requerida
GET
/api/v1/watchlists/{watchlist_id}

Obtener Lista de Vigilancia

Devuelve configuración de la lista de vigilancia.

Auth Requerida
PUT
/api/v1/watchlists/{watchlist_id}

Actualizar Lista de Vigilancia

Actualiza configuración de la lista de vigilancia.

Auth Requerida
DELETE
/api/v1/watchlists/{watchlist_id}

Eliminar Lista de Vigilancia

Elimina una lista de vigilancia.

Auth Requerida
GET
/api/v1/watchlists

Listar Listas de Vigilancia

Devuelve todas las listas de vigilancia accesibles.

Auth Requerida
POST
/api/v1/watchlists/{watchlist_id}/entities

Añadir Entidad

Añade una entidad específica para monitoreo.

Auth Requerida
DELETE
/api/v1/watchlists/{watchlist_id}/entities/{entity_id}

Eliminar Entidad

Elimina una entidad del monitoreo.

Auth Requerida
POST
/api/v1/watchlists/{watchlist_id}/check

Verificar Contra Lista

Verifica si una entidad coincide con criterios.

Auth Requerida
POST
/api/v1/watchlists/batch-check

Verificación por Lotes

Verifica múltiples entidades contra todas las listas activas.

Auth Requerida
GET
/api/v1/watchlists/{watchlist_id}/matches

Obtener Coincidencias

Devuelve todas las coincidencias de una lista de vigilancia.

Auth Requerida

Gestión de Evidencias

Seguimiento de evidencias admisibles en corte con cadena de custodia, verificación de integridad y sellado.

POST
/api/v1/evidence

Crear Registro de Evidencia

Crea un registro formal de evidencia con seguimiento de custodia.

Auth Requerida
GET
/api/v1/evidence/{evidence_id}

Obtener Evidencia

Devuelve registro de evidencia con metadatos y cadena de custodia.

Auth Requerida
PUT
/api/v1/evidence/{evidence_id}

Actualizar Evidencia

Actualiza metadatos de evidencia. El contenido sellado no se puede modificar.

Auth Requerida
GET
/api/v1/cases/{case_id}/evidence

Listar Evidencias por Caso

Devuelve todos los elementos de evidencia de un caso.

Auth Requerida
POST
/api/v1/evidence/{evidence_id}/custody-transfer

Transferencia de Custodia

Registra una transferencia de custodia entre custodios.

Auth Requerida
GET
/api/v1/evidence/{evidence_id}/chain-of-custody

Cadena de Custodia

Devuelve historial completo de cadena de custodia.

Auth Requerida
POST
/api/v1/evidence/{evidence_id}/verify-integrity

Verificar Integridad

Verifica integridad de evidencia recalculando hash.

Auth Requerida
POST
/api/v1/evidence/{evidence_id}/seal

Sellar Evidencia

Sella elemento de evidencia previniendo modificaciones.

Auth Requerida
GET
/api/v1/evidence/{evidence_id}/audit-trail

Rastro de Auditoría

Devuelve rastro de auditoría completo de la evidencia.

Auth Requerida

OSINT y Enriquecimiento de Datos

Consultar múltiples proveedores OSINT para inteligencia de personas, organizaciones, teléfonos, correos, redes sociales, vehículos, dominios, IP y criptomonedas.

GET
/api/v1/osint/providers

Listar Proveedores OSINT

Devuelve todos los proveedores OSINT configurados.

Auth Requerida
GET
/api/v1/osint/providers/{provider_id}/status

Estado del Proveedor

Devuelve estado detallado de un proveedor OSINT.

Auth Requerida
POST
/api/v1/osint/search/person

Buscar Persona

Busca información sobre una persona en fuentes OSINT.

Auth Requerida
POST
/api/v1/osint/search/organization

Buscar Organización

Busca información de organización incluyendo registros corporativos.

Auth Requerida
POST
/api/v1/osint/search/phone

Buscar Teléfono

Búsqueda inversa de teléfono en bases de datos.

Auth Requerida
POST
/api/v1/osint/search/email

Buscar Email

Búsqueda de inteligencia de correo electrónico.

Auth Requerida
POST
/api/v1/osint/search/social

Buscar Redes Sociales

Busca perfiles en redes sociales.

Auth Requerida
POST
/api/v1/osint/search/vehicle

Buscar Vehículo

Búsqueda de vehículo por VIN o placa.

Auth Requerida
POST
/api/v1/osint/search/domain

Buscar Dominio

Inteligencia de dominio incluyendo WHOIS y DNS.

Auth Requerida
POST
/api/v1/osint/search/ip

Buscar IP

Inteligencia de dirección IP incluyendo geolocalización.

Auth Requerida
POST
/api/v1/osint/search/crypto

Buscar Criptomoneda

Análisis de dirección de criptomoneda.

Auth Requerida
POST
/api/v1/osint/batch-enrich

Enriquecimiento por Lotes

Enriquece múltiples entidades con datos OSINT.

Auth Requerida
GET
/api/v1/osint/usage

Uso de OSINT

Devuelve estadísticas de uso de consultas OSINT.

Auth Requerida

Plantillas y Automatización

Plantillas reutilizables para casos, informes y flujos de trabajo para estandarizar procesos.

POST
/api/v1/templates/case

Crear Plantilla de Caso

Crea una plantilla reutilizable de caso.

Admin/Gestor
GET
/api/v1/templates/case

Listar Plantillas de Caso

Devuelve todas las plantillas de caso disponibles.

Auth Requerida
GET
/api/v1/templates/case/{template_id}

Obtener Plantilla de Caso

Devuelve configuración completa de la plantilla.

Auth Requerida
PUT
/api/v1/templates/case/{template_id}

Actualizar Plantilla de Caso

Actualiza configuración de la plantilla.

Admin/Gestor
DELETE
/api/v1/templates/case/{template_id}

Eliminar Plantilla de Caso

Elimina una plantilla de caso.

Admin/Superusuario
POST
/api/v1/templates/report

Crear Plantilla de Informe

Crea una plantilla de informe con diseño y secciones.

Admin/Gestor
GET
/api/v1/templates/report

Listar Plantillas de Informe

Devuelve todas las plantillas de informe.

Auth Requerida
POST
/api/v1/templates/workflow

Crear Plantilla de Flujo

Crea una plantilla de flujo de trabajo automatizado.

Admin/Gestor
GET
/api/v1/templates/workflow

Listar Plantillas de Flujo

Devuelve todas las plantillas de flujo de trabajo.

Auth Requerida

Flujos de Trabajo y Automatización

Flujos de trabajo automatizados con disparadores, condiciones y acciones para automatización de investigaciones.

POST
/api/v1/workflows

Crear Flujo de Trabajo

Crea un flujo de trabajo automatizado con disparadores y acciones.

Admin/Gestor
GET
/api/v1/workflows/{workflow_id}

Obtener Flujo de Trabajo

Devuelve configuración del flujo de trabajo e historial.

Auth Requerida
PUT
/api/v1/workflows/{workflow_id}

Actualizar Flujo de Trabajo

Actualiza configuración del flujo de trabajo.

Admin/Gestor
DELETE
/api/v1/workflows/{workflow_id}

Eliminar Flujo de Trabajo

Elimina un flujo de trabajo.

Admin/Superusuario
GET
/api/v1/workflows

Listar Flujos de Trabajo

Devuelve todos los flujos de trabajo accesibles.

Auth Requerida
POST
/api/v1/workflows/{workflow_id}/execute

Ejecutar Flujo de Trabajo

Activa manualmente una ejecución de flujo de trabajo.

Auth Requerida
GET
/api/v1/workflows/{workflow_id}/executions

Historial de Ejecuciones

Devuelve historial de ejecuciones del flujo de trabajo.

Auth Requerida
POST
/api/v1/workflows/{workflow_id}/pause

Pausar Flujo de Trabajo

Pausa un flujo de trabajo activo.

Auth Requerida
POST
/api/v1/workflows/{workflow_id}/resume

Reanudar Flujo de Trabajo

Reanuda un flujo de trabajo pausado.

Auth Requerida

Comunicación en Tiempo Real

Endpoints de mensajería y colaboración en tiempo real basados en WebSocket.

POST
/api/v1/channels

Crear Canal

Crea un canal de mensajería en tiempo real.

Auth Requerida
GET
/api/v1/channels/{channel_id}

Obtener Canal

Devuelve detalles del canal incluyendo miembros.

Auth Requerida
GET
/api/v1/channels

Listar Canales

Devuelve todos los canales accesibles al usuario.

Auth Requerida
POST
/api/v1/channels/{channel_id}/messages

Enviar Mensaje

Envía un mensaje a un canal.

Auth Requerida
GET
/api/v1/channels/{channel_id}/messages

Obtener Mensajes

Devuelve historial de mensajes de un canal.

Auth Requerida
POST
/api/v1/channels/{channel_id}/members

Añadir Miembro al Canal

Añade un usuario a un canal.

Auth Requerida
DELETE
/api/v1/channels/{channel_id}/members/{user_id}

Eliminar Miembro del Canal

Elimina un usuario de un canal.

Auth Requerida
GET
/api/v1/users/presence

Estado de Presencia

Devuelve estado en línea/fuera de línea de usuarios.

Auth Requerida

API GraphQL

La API GraphQL principal (api.knogin.com/graphql) proporciona más de 100 consultas, 80+ mutaciones y suscripciones en tiempo real usando el framework Strawberry GraphQL. GraphQL ofrece recuperación flexible de datos, permitiendo a los clientes solicitar exactamente los datos que necesitan en una sola petición.

Endpoint GraphQL

Endpoint GraphQLPOST https://api.knogin.com/graphql
Playground GraphQLGET https://api.knogin.com/graphql

Investigaciones

Crear, gestionar y rastrear investigaciones con soporte completo del ciclo de vida incluyendo asignación de equipo, gestión de archivos y seguimiento de progreso.

Consultas
  • getInvestigation(investigationId: ID!)
  • getInvestigations(status: [Status], limit: Int, offset: Int)
  • investigationTimeline(investigationId: ID!)
  • investigationStatistics(investigationId: ID!)
  • investigationTeam(investigationId: ID!)
Mutaciones
  • startNewInvestigation(input: CreateInvestigationInput!)
  • updateInvestigation(investigationId: ID!, input: UpdateInvestigationInput!)
  • deleteInvestigation(investigationId: ID!)
  • addFilesToInvestigation(investigationId: ID!, fileIds: [ID!]!)
  • assignInvestigationTeam(investigationId: ID!, userIds: [ID!]!)

Casos

Gestión completa de casos con plantillas, flujos de trabajo, seguimiento de estado, vinculación de perfiles y operaciones masivas para manejo eficiente de casos.

Consultas
  • case(caseId: ID!)
  • cases(investigationId: ID, status: [CaseStatus], priority: [Priority], limit: Int, offset: Int)
  • caseByNumber(caseNumber: String!)
  • caseTimeline(caseId: ID!)
  • caseStatistics(caseId: ID!)
  • myCases(status: [CaseStatus], limit: Int)
  • caseTemplates(category: String)
Mutaciones
  • createCase(input: CreateCaseInput!)
  • createCaseFromTemplate(templateId: ID!, input: CreateCaseInput!)
  • updateCase(caseId: ID!, input: UpdateCaseInput!)
  • deleteCase(caseId: ID!)
  • assignCase(caseId: ID!, userId: ID!)
  • updateCaseStatus(caseId: ID!, status: CaseStatus!)
  • linkProfileToCase(caseId: ID!, profileId: ID!, role: ProfileRole!)
  • bulkUpdateCases(caseIds: [ID!]!, input: BulkUpdateCaseInput!)

Tareas

Gestión de tareas con asignaciones, listas de verificación, dependencias y seguimiento de progreso para flujos de trabajo de investigación estructurados.

Consultas
  • task(taskId: ID!)
  • tasks(caseId: ID!, status: [TaskStatus], assignee: ID)
  • myTasks(status: [TaskStatus], dueDate: DateRange)
  • taskChecklist(taskId: ID!)
  • taskDependencies(taskId: ID!)
Mutaciones
  • createTask(input: CreateTaskInput!)
  • updateTask(taskId: ID!, input: UpdateTaskInput!)
  • deleteTask(taskId: ID!)
  • assignTask(taskId: ID!, userId: ID!)
  • completeTask(taskId: ID!, notes: String)
  • updateTaskChecklist(taskId: ID!, items: [ChecklistItemInput!]!)
  • bulkUpdateTasks(taskIds: [ID!]!, input: BulkUpdateTaskInput!)

Notas y Adjuntos

Notas de investigación con texto enriquecido, hilos y archivos adjuntos. Seguimiento completo de cadena de custodia para archivos de grado de evidencia.

Consultas
  • note(noteId: ID!)
  • notes(caseId: ID!, type: NoteType, visibility: Visibility)
  • attachment(attachmentId: ID!)
  • attachments(caseId: ID!, fileType: String)
  • attachmentChainOfCustody(attachmentId: ID!)
Mutaciones
  • createNote(input: CreateNoteInput!)
  • updateNote(noteId: ID!, input: UpdateNoteInput!)
  • deleteNote(noteId: ID!)
  • replyToNote(parentNoteId: ID!, content: String!)
  • createAttachment(input: CreateAttachmentInput!)
  • deleteAttachment(attachmentId: ID!)
  • reprocessAttachment(attachmentId: ID!)

Perfiles y Entidades

Gestión de perfiles de entidad para personas, organizaciones y otras entidades con enriquecimiento OSINT y mapeo de relaciones.

Consultas
  • getProfile(profileId: ID!)
  • listProfiles(type: ProfileType, tags: [String], limit: Int, offset: Int)
  • searchProfiles(query: String!, filters: ProfileFilters)
  • getPerson(personId: ID!)
  • listPersons(filters: PersonFilters)
  • getOrganization(orgId: ID!)
  • listOrganizations(filters: OrgFilters)
  • getEntity(entityId: ID!)
  • searchEntities(query: String!, entityTypes: [EntityType])
  • profileRelationships(profileId: ID!, depth: Int)
Mutaciones
  • createProfile(input: CreateProfileInput!)
  • updateProfile(profileId: ID!, input: UpdateProfileInput!)
  • deleteProfile(profileId: ID!)
  • enrichProfile(profileId: ID!, providers: [String])
  • batchEnrichProfiles(profileIds: [ID!]!, providers: [String])
  • linkProfiles(sourceId: ID!, targetId: ID!, relationType: String!)
  • unlinkProfiles(sourceId: ID!, targetId: ID!)
  • mergeProfiles(sourceIds: [ID!]!, targetId: ID!)

Alertas y Monitores

Sistema de alertas en tiempo real con monitores configurables, niveles de severidad y flujos de trabajo de decisión para detección de amenazas.

Consultas
  • getAlertById(alertId: ID!)
  • listAlerts(severity: [Severity], status: [AlertStatus], limit: Int)
  • alertsByMonitor(monitorId: ID!, dateRange: DateRange)
  • alertStatistics(dateRange: DateRange)
  • getMonitor(monitorId: ID!)
  • listMonitors(status: MonitorStatus, type: MonitorType)
  • monitorPerformance(monitorId: ID!)
Mutaciones
  • createAlert(input: CreateAlertInput!)
  • updateAlert(alertId: ID!, input: UpdateAlertInput!)
  • decideAlert(alertId: ID!, decision: AlertDecision!, notes: String)
  • bulkDecideAlerts(alertIds: [ID!]!, decision: AlertDecision!)
  • createMonitor(input: CreateMonitorInput!)
  • updateMonitor(monitorId: ID!, input: UpdateMonitorInput!)
  • deleteMonitor(monitorId: ID!)
  • pauseMonitor(monitorId: ID!)
  • resumeMonitor(monitorId: ID!)

Análisis de Grafos

Operaciones de grafo de conocimiento incluyendo búsqueda de caminos, análisis de centralidad, detección de comunidades y predicción de enlaces para inteligencia de redes.

Consultas
  • graphNode(nodeId: ID!)
  • graphNeighbors(nodeId: ID!, depth: Int, relationTypes: [String])
  • findPath(sourceId: ID!, targetId: ID!, maxDepth: Int)
  • shortestPath(sourceId: ID!, targetId: ID!)
  • subgraph(seedIds: [ID!]!, depth: Int)
  • graphStatistics(investigationId: ID)
  • centrality(nodeIds: [ID!]!, algorithm: CentralityAlgorithm)
  • communities(investigationId: ID!, algorithm: CommunityAlgorithm)
  • linkPrediction(nodeId: ID!, limit: Int)
Mutaciones
  • createGraphNode(input: CreateNodeInput!)
  • updateGraphNode(nodeId: ID!, input: UpdateNodeInput!)
  • deleteGraphNode(nodeId: ID!)
  • createGraphEdge(input: CreateEdgeInput!)
  • updateGraphEdge(edgeId: ID!, input: UpdateEdgeInput!)
  • deleteGraphEdge(edgeId: ID!)
  • mergeNodes(sourceIds: [ID!]!, targetId: ID!)

Inteligencia Geoespacial

Consultas basadas en ubicación, clustering, mapas de calor, geofencing y análisis de línea de tiempo para operaciones de inteligencia geográfica.

Consultas
  • getLocation(locationId: ID!)
  • listLocations(bounds: BoundingBox, entityType: EntityType)
  • entitiesWithinBounds(bounds: BoundingBox!, filters: GeoFilters)
  • entitiesWithinRadius(center: LatLng!, radiusKm: Float!)
  • entitiesWithinPolygon(polygon: GeoJSONPolygon!)
  • locationClusters(bounds: BoundingBox!, zoomLevel: Int!)
  • heatmapData(bounds: BoundingBox!, resolution: Int)
  • locationTimeline(entityId: ID!, dateRange: DateRange)
  • geocode(address: String!)
  • reverseGeocode(coordinates: LatLng!)
Mutaciones
  • createLocation(input: CreateLocationInput!)
  • updateLocation(locationId: ID!, input: UpdateLocationInput!)
  • deleteLocation(locationId: ID!)
  • linkLocationToEntity(locationId: ID!, entityId: ID!)
  • createGeofence(input: CreateGeofenceInput!)
  • updateGeofence(geofenceId: ID!, input: UpdateGeofenceInput!)

Paneles y Visualización

Crear y gestionar paneles personalizables con widgets, gráficos y métricas en tiempo real para conciencia operacional.

Consultas
  • getDashboard(dashboardId: ID!)
  • listDashboards(type: DashboardType, shared: Boolean)
  • getDashboardMetrics(dashboardId: ID!)
  • panelData(panelId: ID!, dateRange: DateRange)
  • dashboardTemplates(category: String)
Mutaciones
  • createDashboard(input: CreateDashboardInput!)
  • updateDashboard(dashboardId: ID!, input: UpdateDashboardInput!)
  • deleteDashboard(dashboardId: ID!)
  • addPanelToDashboard(dashboardId: ID!, input: PanelInput!)
  • updatePanel(panelId: ID!, input: UpdatePanelInput!)
  • deletePanel(panelId: ID!)
  • shareDashboard(dashboardId: ID!, userIds: [ID!]!)
  • cloneDashboard(dashboardId: ID!, newName: String!)

Búsqueda y Descubrimiento

Búsqueda global con capacidades semánticas, filtros avanzados y consultas guardadas para descubrimiento rápido de inteligencia.

Consultas
  • globalSearch(query: String!, limit: Int, offset: Int)
  • semanticSearch(query: String!, entityTypes: [EntityType])
  • advancedSearch(input: AdvancedSearchInput!)
  • searchSuggestions(prefix: String!, limit: Int)
  • searchHistory(limit: Int)
  • savedSearches
Mutaciones
  • saveSearch(input: SaveSearchInput!)
  • deleteSavedSearch(searchId: ID!)
  • clearSearchHistory

Gestión de Evidencias

Seguimiento de evidencias admisibles en corte con cadena de custodia, verificación de integridad y sellado para procedimientos legales.

Consultas
  • evidence(evidenceId: ID!)
  • evidenceByCase(caseId: ID!, type: EvidenceType)
  • evidenceChainOfCustody(evidenceId: ID!)
  • verifyEvidenceIntegrity(evidenceId: ID!)
  • evidenceAuditTrail(evidenceId: ID!)
Mutaciones
  • createEvidence(input: CreateEvidenceInput!)
  • updateEvidence(evidenceId: ID!, input: UpdateEvidenceInput!)
  • recordCustodyTransfer(evidenceId: ID!, input: CustodyTransferInput!)
  • sealEvidence(evidenceId: ID!)
  • linkEvidenceToCase(evidenceId: ID!, caseId: ID!)

OSINT y Enriquecimiento

Consultas de inteligencia de fuentes abiertas a través de múltiples proveedores para datos de personas, organizaciones, teléfonos, correos, redes sociales, vehículos, dominios, IP y criptomonedas.

Consultas
  • osintProviders
  • osintProviderStatus(providerId: ID!)
  • osintUsage(dateRange: DateRange)
Mutaciones
  • searchPerson(input: PersonSearchInput!)
  • searchOrganization(input: OrgSearchInput!)
  • searchPhone(phoneNumber: String!, providers: [String])
  • searchEmail(email: String!, providers: [String])
  • searchSocialMedia(input: SocialSearchInput!)
  • searchVehicle(input: VehicleSearchInput!)
  • searchDomain(domain: String!)
  • searchIP(ipAddress: String!)
  • searchCrypto(address: String!, blockchain: String!)
  • batchEnrich(entityIds: [ID!]!, providers: [String])

Equipos y Usuarios

Gestión de equipos con roles de miembros, permisos y jerarquías para operaciones colaborativas de investigación.

Consultas
  • team(teamId: ID!)
  • teams(parentId: ID)
  • teamMembers(teamId: ID!)
  • myTeams
  • user(userId: ID!)
  • users(role: Role, status: UserStatus)
  • currentUser
Mutaciones
  • createTeam(input: CreateTeamInput!)
  • updateTeam(teamId: ID!, input: UpdateTeamInput!)
  • deleteTeam(teamId: ID!)
  • addTeamMember(teamId: ID!, userId: ID!, role: TeamRole!)
  • removeTeamMember(teamId: ID!, userId: ID!)
  • updateTeamMemberRole(teamId: ID!, userId: ID!, role: TeamRole!)

Flujos de Trabajo y Automatización

Flujos de trabajo automatizados con disparadores, condiciones y acciones para procesos de investigación optimizados.

Consultas
  • workflow(workflowId: ID!)
  • workflows(status: WorkflowStatus, trigger: TriggerType)
  • workflowExecutions(workflowId: ID!, status: ExecutionStatus)
  • workflowExecution(executionId: ID!)
  • workflowTemplates(category: String)
Mutaciones
  • createWorkflow(input: CreateWorkflowInput!)
  • updateWorkflow(workflowId: ID!, input: UpdateWorkflowInput!)
  • deleteWorkflow(workflowId: ID!)
  • executeWorkflow(workflowId: ID!, input: JSON)
  • pauseWorkflow(workflowId: ID!)
  • resumeWorkflow(workflowId: ID!)
  • cancelExecution(executionId: ID!)

Servicios de IA

Análisis de texto impulsado por IA, extracción de entidades, resumen, traducción y capacidades de procesamiento de documentos.

Consultas
  • aiProcessingStatus(jobId: ID!)
  • aiProcessingHistory(entityId: ID!)
  • aiCapabilities
Mutaciones
  • analyzeText(text: String!, options: AnalysisOptions)
  • extractEntities(text: String!, entityTypes: [EntityType])
  • generateSummary(text: String!, style: SummaryStyle)
  • translateText(text: String!, targetLanguage: String!)
  • generateGraph(text: String!)
  • processDocument(fileId: ID!, options: ProcessingOptions)
  • processImage(fileId: ID!, options: ImageProcessingOptions)
  • processAudio(fileId: ID!, options: AudioProcessingOptions)
  • processVideo(fileId: ID!, options: VideoProcessingOptions)

Notificaciones y Comentarios

Notificaciones en tiempo real con preferencias, comentarios en hilos, menciones y reacciones para colaboración de equipo.

Consultas
  • notifications(status: NotificationStatus, limit: Int)
  • unreadNotificationCount
  • notificationPreferences
  • comments(entityId: ID!, entityType: EntityType)
  • comment(commentId: ID!)
Mutaciones
  • markNotificationRead(notificationId: ID!)
  • markAllNotificationsRead
  • updateNotificationPreferences(input: NotificationPreferencesInput!)
  • createComment(input: CreateCommentInput!)
  • updateComment(commentId: ID!, content: String!)
  • deleteComment(commentId: ID!)
  • replyToComment(parentId: ID!, content: String!)
  • reactToComment(commentId: ID!, reaction: String!)

Suscripciones en Tiempo Real

Suscribirse a actualizaciones en tiempo real vía WebSocket para streaming de datos en vivo a través de todos los dominios.

Alertas
  • alertStream
  • alertUpdates(alertId: ID!)
  • monitorAlerts(monitorId: ID!)
Investigaciones
  • investigationProgress(investigationId: ID!)
  • caseUpdates(caseId: ID!)
  • taskUpdates(caseId: ID!)
Paneles
  • dashboardUpdates(dashboardId: ID!)
  • panelData(panelId: ID!)
  • metricsStream(dashboardId: ID!)
Colaboración
  • channelMessages(channelId: ID!)
  • userPresence(userIds: [ID!]!)
  • typingIndicator(channelId: ID!)
Procesamiento
  • processingProgress(jobId: ID!)
  • enrichmentProgress(profileId: ID!)
  • workflowExecution(executionId: ID!)
Notificaciones
  • notificationStream
  • mentionStream
  • systemAnnouncements

Ejemplo: Consultar Investigación con Casos

GraphQL Query
query GetInvestigationWithCases($investigationId: ID!) {
  getInvestigation(investigationId: $investigationId) {
    id
    title
    status
    createdAt
    profiles {
      id
      name
      type
      riskScore
    }
  }
  cases(investigationId: $investigationId) {
    id
    title
    status
    priority
    assignedTo {
      id
      displayName
    }
    tasks {
      id
      title
      status
      dueDate
    }
  }
}

Ejemplo: Mutación Crear Alerta

GraphQL Mutation
mutation CreateAlert($input: CreateAlertInput!) {
  createAlert(input: $input) {
    id
    title
    severity
    confidence
    createdAt
    entities {
      id
      name
      type
    }
  }
}

# Variables
{
  "input": {
    "title": "Suspicious Activity Detected",
    "summary": "Multiple failed login attempts from unusual location",
    "severity": "HIGH",
    "confidence": 0.85,
    "entities": ["entity-123"],
    "monitorId": "monitor-456"
  }
}

WebSocket y Tiempo Real

Comunicación en tiempo real a través de WebSocket para actualizaciones en vivo, suscripciones GraphQL y funciones de colaboración.

Endpoints WebSocket

WS
wss://api.knogin.com/graphql

Suscripciones GraphQL

Endpoint WebSocket para suscripciones GraphQL.

Auth Requerida
WS
wss://api.knogin.com/ws

Flujo de Eventos General

Endpoint WebSocket para streaming de eventos en tiempo real.

Auth Requerida

Ejemplo de Suscripción

GraphQL Subscription
subscription AlertStream {
  alertStream {
    id
    title
    severity
    confidence
    createdAt
    entities {
      id
      name
    }
    locations {
      latitude
      longitude
    }
  }
}

Formatos de Respuesta

Estructuras de respuesta estándar utilizadas en toda la API.

Respuesta Exitosa

{
  "success": true,
  "data": { ... },
  "message": "Operation completed successfully",
  "timestamp": "2024-01-15T10:30:00Z",
  "request_id": "req_abc123"
}

Respuesta de Error

{
  "error": "VALIDATION_ERROR",
  "message": "Invalid input parameters",
  "code": "ERR_VALIDATION_001",
  "details": {
    "field": "email",
    "reason": "Invalid email format"
  },
  "timestamp": "2024-01-15T10:30:00Z"
}

Códigos de Estado HTTP

Códigos de estado comunes devueltos por la API.

  • 200OK - Solicitud exitosa
  • 201Creado - Recurso creado
  • 204Sin Contenido - Éxito sin cuerpo
  • 400Solicitud Incorrecta - Parámetros inválidos
  • 401No Autorizado - Autenticación requerida
  • 403Prohibido - Acceso denegado
  • 404No Encontrado - Recurso no encontrado
  • 422Entidad No Procesable - Error de validación
  • 429Demasiadas Solicitudes - Límite excedido
  • 500Error Interno del Servidor

Límites de Tasa

Límites de tasa de API para asegurar uso justo y estabilidad del sistema.

  • Endpoints Estándar1000 solicitudes por minuto
  • Endpoints de Autenticación5 solicitudes por minuto (inicio de sesión, verificación MFA)
  • Operaciones por Lotes100 perfiles por solicitud por lotes, 10 para enriquecimiento
  • Carga de Archivos50MB tamaño máximo de archivo
  • Procesamiento de IASujeto a límites de tokens por nivel de organización

¿Listo para Integrar?

Comience con nuestros SDKs o contacte a nuestro equipo de integración para soporte.