Docs API

Référence API

Documentation complète pour toutes les API Public Safety incluant les points d'accès GraphQL, REST et WebSocket. Tous les points d'accès nécessitent un argus_auth_token valide pour retourner des données.

Aperçu de l'API

Public Safety Command Center expose deux services API principaux avec plus de 200 points d'accès REST et 180+ opérations GraphQL. Tous les points d'accès authentifiés nécessitent un argus_auth_token valide obtenu via le Service d'Auth.

Service d'Authentification

auth.knogin.com

Gère toute l'authentification, la gestion des utilisateurs, MFA, SSO, clés API, rôles, permissions et gestion des sessions. C'est ici que vous obtenez les jetons pour accéder au Service API.

  • 80+ Points d'Accès
  • OAuth2/OIDC
  • MFA TOTP/Passkey/Voix

Service API

api.knogin.com

L'API principale de la plateforme de renseignement fournissant des points d'accès REST et GraphQL pour les enquêtes, cas, profils, preuves, alertes, moniteurs, services IA et communication en temps réel.

  • 130+ Points d'Accès REST
  • 180+ Opérations GraphQL
  • WebSocket

URLs de Base

Service d'Auth (Production)https://auth.knogin.com
Service API (Production)https://api.knogin.com
Service d'Auth (Staging)https://auth-staging.knogin.com
Service API (Staging)https://api-staging.knogin.com

Authentification

Toutes les requêtes API authentifiées nécessitent un argus_auth_token valide. Les jetons sont obtenus via le Service d'Auth et doivent être inclus dans toutes les requêtes suivantes aux deux services. Les clés API peuvent être générées dans le tableau de bord du Service d'Auth sous votre profil utilisateur pour l'accès programmatique.

Cookie HTTP-Only (Recommandé pour les navigateurs)

Après une connexion réussie, les cookies sont définis automatiquement :

Cookies définis après connexion
platform_access_token=eyJhbGc...  # Short-lived access token
knogin_refresh_token=eyJhbGc...   # Long-lived refresh token

Jeton Bearer (Pour l'accès programmatique)

Incluez le jeton dans l'en-tête Authorization :

En-tête Authorization
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Obtention d'un Jeton

Exemple : Connexion avec identifiants (Service d'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
}

Points d'Accès du Service d'Auth

Le Service d'Auth (auth.knogin.com) gère toute l'authentification, l'autorisation, la gestion des utilisateurs, MFA, SSO, clés API, rôles, permissions, drapeaux de fonctionnalités et gestion multi-locataire. Il contient plus de 80 points d'accès organisés par fonctionnalité.

Gestion des Jetons & Sessions

Points d'accès d'authentification principaux pour l'obtention, le rafraîchissement et la gestion des jetons d'accès et des sessions.

POST
/v1/token

Connexion avec Identifiants (Formulaire OAuth2)

Point d'accès de connexion compatible OAuth2 qui accepte l'email et le mot de passe encodés en formulaire. Émet des jetons d'accès spécifiques à la plateforme et définit des cookies HTTP-only (platform_access_token, knogin_refresh_token) pour les sessions navigateur. Si MFA est activé, retourne un cookie de défi nécessitant une vérification via /v1/mfa/verify-login. Supporte redirect_uri pour la navigation post-connexion.

Public5/min
POST
/v1/auth/token

Connexion avec Clé API

Authentification utilisant une clé API pour recevoir un jeton JWT spécifique à la plateforme. Idéal pour l'authentification service-à-service, les pipelines CI/CD et l'accès programmatique. Les clés API peuvent être générées dans le tableau de bord du Service d'Auth sous votre profil utilisateur. Le corps de la requête nécessite les champs api_key et platform.

Public
POST
/v1/auth/refresh

Rafraîchir le Jeton d'Accès

Rafraîchit les jetons d'accès expirés en utilisant le cookie knogin_refresh_token. Retourne de nouveaux cookies de jeton d'accès sans nécessiter de réauthentification. Supporte un paramètre de chemin platform optionnel pour le rafraîchissement de jeton spécifique à la plateforme. Essentiel pour maintenir des sessions de longue durée dans les applications navigateur.

Public
POST
/v1/auth/logout

Déconnexion & Terminaison de Session

Termine la session utilisateur actuelle en invalidant tous les jetons et supprimant les cookies d'authentification. Supprime la session du magasin de sessions côté serveur. Supporte un paramètre de chemin platform optionnel. Retourne 204 No Content en cas de succès.

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

Révoquer Toutes les Sessions Utilisateur (Admin)

Termine de force toutes les sessions actives pour un utilisateur spécifique sur tous les appareils et plateformes. Utilisé pour les incidents de sécurité ou lorsque l'accès d'un utilisateur doit être immédiatement révoqué. Retourne le nombre de sessions révoquées. Nécessite le rôle admin ou superutilisateur.

Admin/Superutilisateur

Profil Utilisateur & Libre-Service

Points d'accès permettant aux utilisateurs de gérer leurs propres profils, consulter leurs informations et mettre à jour leurs paramètres.

GET
/v1/users/me

Obtenir le Profil Utilisateur Actuel

Retourne le profil complet de l'utilisateur actuellement authentifié incluant l'email, le nom d'affichage, l'organisation, les rôles, les permissions, le statut MFA, la date de création et l'horodatage de dernière connexion. Utilisé par les applications frontend pour remplir les tableaux de bord utilisateur et vérifier les permissions.

Auth Requise
PUT
/v1/users/me

Mettre à Jour Son Propre Profil

Permet aux utilisateurs de mettre à jour leurs propres informations de profil incluant le nom d'affichage, le numéro de téléphone et le mot de passe. Si le mot de passe est changé, toutes les autres sessions sont automatiquement terminées pour la sécurité. Nécessite la vérification du mot de passe actuel pour les changements sensibles.

Auth Requise
GET
/v1/auth/me

Obtenir le Profil avec Drapeaux de Fonctionnalités

Retourne le profil utilisateur actuel avec les drapeaux de fonctionnalités évalués pour le locataire de l'utilisateur et les remplacements spécifiques à l'utilisateur. Utilisé par les applications frontend pour déterminer quelles fonctionnalités afficher selon le niveau d'abonnement et les expériences activées.

Auth Requise
POST
/v1/users/create

Auto-Inscription

Point d'accès public pour les nouveaux utilisateurs pour créer un compte. Accepte l'email et le mot de passe, crée l'utilisateur dans le système et envoie un email de vérification. Limité à 2 requêtes par heure par IP pour prévenir les abus. Retourne l'objet utilisateur créé.

Public2/hour

Authentification Multi-Facteurs (MFA)

Support MFA complet incluant TOTP (applications d'authentification), passkeys WebAuthn et vérification vocale. Les utilisateurs peuvent activer plusieurs méthodes pour une sécurité renforcée.

TOTP (Applications d'Authentification)

POST
/v1/portal/mfa/totp/enable

Activer TOTP - Générer le Secret

Génère un nouveau secret TOTP et le retourne avec une image de code QR (encodée en base64) pour scanner avec des applications d'authentification comme Google Authenticator, Authy ou 1Password. Le secret est stocké en état en attente jusqu'à vérification.

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

Vérifier et Activer TOTP

Vérifie un code TOTP de l'application d'authentification de l'utilisateur et active le MFA TOTP pour son compte. Nécessite le code à 6 chiffres de l'application d'authentification. Une fois activé, TOTP sera requis pour toutes les connexions futures.

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

Désactiver TOTP

Désactive le MFA basé sur TOTP pour l'utilisateur actuel. Toutes les sessions actives sont terminées pour la sécurité après désactivation. L'utilisateur doit avoir une autre méthode MFA activée ou le MFA ne doit pas être requis par la politique de l'organisation.

Auth Requise
POST
/v1/mfa/verify-login

Vérifier MFA Lors de la Connexion

Valide le code MFA (TOTP) pendant le flux de défi de connexion. Appelé après la connexion initiale lorsque MFA est requis. Nécessite le cookie de défi TF_AUTH et le code TOTP à 6 chiffres. En cas de succès, émet les jetons d'accès complets.

Public5/min

Passkeys WebAuthn

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

Générer les Options d'Enregistrement Passkey

Génère les options d'enregistrement WebAuthn pour créer une nouvelle credential passkey. Retourne le défi, les informations de la partie de confiance et les algorithmes supportés. Utilisé par l'API WebAuthn du navigateur (navigator.credentials.create) pour créer une nouvelle passkey.

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

Vérifier et Sauvegarder la Passkey

Vérifie la réponse d'attestation WebAuthn du navigateur et sauvegarde la nouvelle credential passkey. Stocke la clé publique, l'ID de credential et les métadonnées. Les utilisateurs peuvent enregistrer plusieurs passkeys pour différents appareils.

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

Supprimer une Passkey

Supprime une credential passkey spécifique par son ID. Les utilisateurs peuvent gérer leurs passkeys enregistrées et supprimer les anciens appareils ou ceux compromis. Retourne 204 No Content en cas de succès.

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

Générer les Options de Connexion Passkey

Génère les options d'authentification WebAuthn pour la connexion basée sur passkey. Accepte l'adresse email et retourne le défi avec les credentials autorisées. Utilisé par navigator.credentials.get pour l'initiation de connexion sans mot de passe.

Public
POST
/v1/portal/mfa/passkey/verify-authentication

Vérifier la Passkey et Se Connecter

Vérifie la réponse d'assertion WebAuthn et complète la connexion basée sur passkey. En cas de vérification réussie, émet les jetons d'accès complets et les cookies. Supporte redirect_uri pour la navigation post-connexion.

Public

Vérification Vocale

POST
/v1/portal/mfa/voice/enroll

Enregistrer un Profil Vocal

Enregistre un échantillon vocal pour le MFA basé sur la voix. Accepte des données audio encodées en base64 de l'utilisateur prononçant une phrase de passe. L'empreinte vocale est traitée et stockée pour vérification future. Nécessite plusieurs échantillons pour un enregistrement précis.

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

Vérifier l'Échantillon Vocal

Vérifie un échantillon vocal contre le profil vocal enregistré lors du défi MFA. Accepte l'audio encodé en base64 et retourne un score de correspondance. Nécessite le cookie de défi MFA. Utilisé comme alternative au TOTP pour les utilisateurs qui préfèrent l'authentification vocale.

Public5/min
DELETE
/v1/portal/mfa/voice

Désactiver le MFA Vocal

Désactive le MFA basé sur la voix et supprime le profil vocal stocké. Retourne 204 No Content en cas de succès. L'utilisateur doit avoir une autre méthode MFA activée si MFA est requis par la politique de l'organisation.

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

Obtenir les Méthodes MFA Disponibles

Retourne les informations sur les méthodes MFA disponibles pour le défi de connexion en attente. La réponse inclut les drapeaux totp_enabled, voice_enabled et passkey_enabled. Utilisé par l'interface de connexion pour afficher les options MFA appropriées.

Public

Authentification Unique (SSO)

Intégration SSO basée sur OAuth2/OIDC avec les fournisseurs d'identité d'entreprise incluant Google Workspace et Microsoft Entra ID (Azure AD).

GET
/v1/portal/sso/available-providers

Lister les Fournisseurs SSO Disponibles

Retourne une liste des fournisseurs SSO configurés pour le locataire actuel. La réponse inclut les noms des fournisseurs et le nombre. Utilisé par l'interface de connexion pour afficher les boutons de connexion SSO disponibles (ex: 'Se connecter avec Google', 'Se connecter avec Microsoft').

Public
GET
/v1/portal/login/{provider}

Initier la Connexion SSO

Initie le flux d'autorisation OAuth2/OIDC avec le fournisseur d'identité spécifié. Redirige l'utilisateur vers la page de connexion du fournisseur (Google, Microsoft). Accepte redirect_uri pour la navigation post-connexion.

Public
GET
/v1/portal/auth/{provider}

Gestionnaire de Callback SSO

Point d'accès de callback OAuth2/OIDC qui gère le code d'autorisation retourné par le fournisseur d'identité. Échange le code contre des jetons, crée ou met à jour le compte utilisateur et établit la session avec les cookies.

Public

Gestion des Clés API

Créez et gérez les clés API pour l'accès programmatique. Les clés API peuvent être limitées à des plateformes spécifiques et avoir une expiration configurable.

POST
/v1/portal/users/me/keys

Créer une Clé API

Crée une nouvelle clé API pour l'accès programmatique. La clé complète n'est retournée qu'une seule fois à la création - stockez-la en sécurité. Supporte le cadrage par plateforme et une date d'expiration optionnelle. Retourne le préfixe de clé pour identification.

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

Lister les Clés API

Retourne toutes les clés API pour l'utilisateur actuel. Affiche le préfixe de clé, la date de création, la date de dernière utilisation et les plateformes associées. Ne retourne pas la valeur complète de la clé pour la sécurité.

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

Révoquer une Clé API

Révoque définitivement une clé API, invalidant immédiatement tous les jetons émis avec cette clé. Toutes les applications utilisant cette clé perdront immédiatement l'accès. Ne peut pas être annulé.

Auth Requise

Gestion des Utilisateurs (Admin)

Points d'accès administratifs pour la gestion des utilisateurs, rôles et permissions. L'accès varie selon la hiérarchie des rôles.

GET
/v1/portal/admin/users

Lister les Utilisateurs

Retourne tous les utilisateurs selon le rôle de l'appelant. Les gestionnaires voient uniquement les utilisateurs de leur organisation. Les superutilisateurs voient tous les utilisateurs de toutes les organisations. Supporte la pagination et le filtrage par rôle, statut et organisation.

Admin/Gestionnaire
POST
/v1/portal/admin/users

Créer un Utilisateur

Crée un nouvel utilisateur avec l'email, le mot de passe, les rôles et l'affectation d'organisation spécifiés. Envoie optionnellement un email de bienvenue. Peut attribuer l'accès initial aux plateformes et le niveau d'habilitation de sécurité. Superutilisateur uniquement.

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

Obtenir un Utilisateur par ID

Retourne les informations détaillées de l'utilisateur incluant le profil, les rôles, les permissions, le statut MFA et l'historique d'activité. Les gestionnaires ne peuvent voir que les utilisateurs de leur organisation.

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

Mettre à Jour un Utilisateur

Met à jour les détails de l'utilisateur incluant les rôles, les permissions, l'accès aux plateformes et l'habilitation de sécurité. Peut activer/désactiver les utilisateurs. Les changements de rôle prennent effet au prochain rafraîchissement de jeton. Superutilisateur uniquement pour les changements inter-organisations.

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

Supprimer un Utilisateur

Supprime définitivement un compte utilisateur et toutes les données associées incluant les clés API et les sessions. Cette action est irréversible. Superutilisateur uniquement. Les utilisateurs supprimés ne peuvent pas être récupérés.

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

Mettre à Jour les Permissions Utilisateur

Met à jour les permissions granulaires d'un utilisateur indépendamment de ses permissions basées sur les rôles. Permet un contrôle d'accès précis. Admin ou superutilisateur uniquement. Retourne l'ensemble des permissions mis à jour.

Admin/Superutilisateur

Gestion des Rôles & Permissions

Définissez des rôles personnalisés et des permissions granulaires pour un contrôle d'accès précis au sein des organisations.

GET
/v1/roles

Lister les Rôles Disponibles

Retourne tous les rôles disponibles dans le système incluant les rôles intégrés (admin, gestionnaire, analyste, lecteur) et les rôles personnalisés définis pour l'organisation. Inclut les permissions associées à chaque rôle.

Public
POST
/v1/roles

Créer un Rôle Personnalisé

Crée un nouveau rôle personnalisé avec les permissions spécifiées. Les rôles personnalisés étendent la hiérarchie des rôles intégrés. Superutilisateur uniquement. Les noms de rôle doivent être uniques au sein de l'organisation.

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

Mettre à Jour un Rôle

Met à jour le nom, la description ou les permissions d'un rôle personnalisé. Les changements affectent tous les utilisateurs ayant ce rôle au prochain rafraîchissement de jeton. Ne peut pas modifier les rôles intégrés. Superutilisateur uniquement.

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

Supprimer un Rôle Personnalisé

Supprime un rôle personnalisé. Les utilisateurs ayant ce rôle perdront les permissions associées. Ne peut pas supprimer les rôles actuellement attribués à des utilisateurs. Ne peut pas supprimer les rôles intégrés. Superutilisateur uniquement.

Admin/Superutilisateur

Drapeaux de Fonctionnalités

Contrôlez la disponibilité des fonctionnalités au niveau locataire et utilisateur pour des déploiements progressifs et tests A/B.

GET
/v1/feature-flags/tenant

Obtenir les Drapeaux de Fonctionnalités du Locataire

Retourne tous les drapeaux de fonctionnalités et leurs valeurs pour le locataire actuel. Ce sont les drapeaux de base qui s'appliquent à tous les utilisateurs de l'organisation sauf s'ils sont remplacés au niveau utilisateur.

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

Mettre à Jour les Drapeaux de Fonctionnalités du Locataire

Met à jour les drapeaux de fonctionnalités pour le locataire. Les changements s'appliquent à tous les utilisateurs de l'organisation sauf s'ils ont des remplacements au niveau utilisateur. Utilisé pour activer/désactiver des fonctionnalités pour toute l'organisation.

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

Obtenir les Remplacements de Drapeaux Utilisateur

Retourne les remplacements de drapeaux de fonctionnalités spécifiques à l'utilisateur. Ceux-ci remplacent les drapeaux au niveau locataire pour les utilisateurs individuels. Utilisé pour les tests bêta avec des utilisateurs spécifiques ou pour fournir des fonctionnalités premium à des comptes sélectionnés.

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

Mettre à Jour les Remplacements de Drapeaux Utilisateur

Définit les remplacements de drapeaux de fonctionnalités spécifiques à l'utilisateur. Les remplacements ne peuvent être qu'un sous-ensemble des drapeaux de l'organisation - ne peut pas activer des drapeaux non disponibles pour le locataire. Retourne les drapeaux utilisateur mis à jour.

Admin/Gestionnaire

Gestion Multi-Locataire & Intégrateur Système

Gérez la hiérarchie multi-locataire incluant les Intégrateurs Systèmes (IS) qui revendent et gèrent les déploiements Public Safety pour leurs clients.

POST
/v1/systems-integrators

Créer un Intégrateur Système

Crée une nouvelle organisation Intégrateur Système qui peut gérer plusieurs locataires clients. Admin Vectis Consilium uniquement. L'IS reçoit son propre portail admin et peut créer/gérer les déploiements clients.

Admin Vectis Consilium
GET
/v1/systems-integrators

Lister les Intégrateurs Systèmes

Retourne tous les Intégrateurs Systèmes de la plateforme. Admin Vectis Consilium uniquement. Inclut les métadonnées comme le nombre de clients, le niveau d'abonnement et les informations de contact.

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

Obtenir les Détails d'un Intégrateur Système

Retourne les informations détaillées sur un Intégrateur Système spécifique incluant leurs clients, statistiques d'utilisation et configuration. Les admins IS ne peuvent accéder qu'à leur propre IS.

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

Lister les Clients IS

Retourne tous les locataires clients gérés par un Intégrateur Système. Les admins IS ne peuvent voir que leurs propres clients. Inclut le statut du locataire, le nombre d'utilisateurs et l'activation des fonctionnalités.

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

Créer un Locataire Client

Crée un nouveau locataire client sous un Intégrateur Système. L'IS devient l'entité gestionnaire pour la facturation et le support. Configure les fonctionnalités initiales selon le niveau d'abonnement de l'IS.

Admin IS
GET
/v1/tenants/{tenant_id}

Obtenir les Détails du Locataire

Retourne les informations détaillées sur un locataire spécifique incluant la configuration, les fonctionnalités, les quotas d'utilisation et le statut de facturation. Les admins IS ne peuvent accéder qu'aux locataires qu'ils gèrent.

Admin IS
PUT
/v1/tenants/{tenant_id}

Mettre à Jour le Locataire

Met à jour la configuration du locataire incluant le nom, les fonctionnalités, les quotas et les métadonnées. Utilisé pour activer/désactiver des fonctionnalités ou ajuster les limites de ressources pour un client.

Admin IS
DELETE
/v1/tenants/{tenant_id}

Supprimer/Archiver le Locataire

Archive ou supprime un locataire et toutes les données associées. Admin Vectis Consilium uniquement. Les données sont conservées 30 jours avant suppression permanente. Utilisé lors du départ d'un client ou du nettoyage.

Admin Vectis Consilium

Utilitaires & Configuration

Points d'accès de configuration administrative et utilitaires.

GET
/v1/portal/admin/config

Obtenir la Configuration Admin

Retourne les données de configuration pour l'interface admin incluant les rôles disponibles, le catalogue des permissions, la liste des pays, les plateformes supportées et la disponibilité des fonctionnalités. Utilisé pour remplir les menus déroulants et formulaires du tableau de bord admin.

Admin/Gestionnaire
GET
/v1/portal/data/countries

Obtenir la Liste des Pays

Retourne une liste de tous les pays avec leurs régions/états pour les formulaires d'adresse. Inclut les codes ISO, les noms et les subdivisions. Point d'accès public utilisé par les formulaires d'inscription et de profil.

Public
GET
/health

Vérification de Santé

Point d'accès de vérification de santé simple qui retourne le statut du service. Utilisé par les équilibreurs de charge et les systèmes de surveillance. Retourne status: healthy, service: auth_service.

Public
GET
/v1/platforms/supported

Lister les Plateformes Supportées

Retourne la liste des plateformes qui peuvent être spécifiées lors de l'émission de jetons. Les plateformes représentent différents produits/modules Public Safety auxquels un utilisateur pourrait accéder. Récupéré depuis la configuration Firestore.

Public
GET
/audit/logs

Obtenir les Journaux d'Audit

Retourne les journaux d'audit de sécurité pour le service d'authentification. Inclut les tentatives de connexion, les changements de permissions et les actions administratives. Administrateur avec permission d'audit requis.

Administrateur

Points d'Accès du Service API

Le Service API (api.knogin.com) est la plateforme de renseignement principale fournissant plus de 130 points d'accès REST pour les enquêtes, cas, profils, preuves, alertes, services IA, communication en temps réel et plus encore. Tous les points d'accès nécessitent une authentification sauf indication contraire.

Santé & Capacités Système

Points d'accès de surveillance de la santé du système et de découverte des capacités pour l'intégration et la surveillance.

GET
/api/v1/health

Vérification de Santé Complète

Retourne le statut de santé détaillé de tous les composants système incluant la base de données graphe Neo4j, la base de données relationnelle PostgreSQL, le cache Redis, les services IA (OpenAI, Anthropic, Google AI) et les intégrations externes. La réponse inclut les métriques de latence et le statut de connexion pour chaque composant. Utilisé pour la surveillance opérationnelle et la réponse aux incidents.

Public
GET
/api/v1/health/simple

Vérification de Santé Simple

Vérification de santé légère retournant une réponse minimale pour les équilibreurs de charge et les systèmes d'orchestration (Kubernetes, Cloud Run). Retourne 200 OK si le service fonctionne. Ne vérifie pas les dépendances en aval pour un temps de réponse plus rapide.

Public
GET
/api/v1/health/db-check

Vérification de Connectivité Base de Données

Vérifie la connectivité à tous les systèmes de base de données (Neo4j, PostgreSQL, Firestore). Retourne le statut individuel pour chaque base de données. Utilisé pour la vérification de déploiement et le dépannage des problèmes de connectivité.

Public
GET
/api/v1/health/connectivity

Connectivité des Services Externes

Vérifie la connectivité à tous les services externes incluant les fournisseurs IA, les sources de données OSINT, les systèmes de stockage et les services de notification. Retourne le statut détaillé pour chaque point d'intégration.

Public
GET
/api/v1/capabilities

Capacités du Système

Retourne les capacités système complètes pour la configuration frontend incluant les domaines supportés, les fournisseurs OSINT disponibles, les formats de fichiers acceptés, les points d'accès API, les fonctionnalités activées, les limites de taux et les tailles maximales de fichiers. Essentiel pour la configuration dynamique de l'interface.

Public

Traitement du Renseignement

Traitement de documents propulsé par IA pour l'extraction d'entités, relations et renseignements à partir de fichiers texte, images, audio et vidéo.

POST
/api/v1/intelligence/process-text

Traiter un Document Texte

Téléversez et traitez des fichiers texte, PDF ou DOCX pour enquête. Utilise l'IA pour extraire les entités (personnes, organisations, lieux), les relations, les événements et les renseignements clés des documents. Supporte les fichiers jusqu'à 50 Mo. Les résultats sont stockés et liés à l'enquête.

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

Traiter un Document Texte (Base64)

Point d'accès compatible Cloudflare pour le traitement des fichiers documents encodés en base64. Accepte un corps JSON avec file_content, filename et mime_type. Supporte les formats .txt, .pdf et .docx. Idéal pour les environnements serverless.

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

Traiter une Image

Téléversez et traitez des images pour l'analyse visuelle propulsée par IA. Effectue l'extraction de texte OCR, la détection d'objets, la détection de visages, l'identification de lieux et la classification de scènes. Supporte les formats JPEG, PNG, GIF et WebP.

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

Traiter une Image (Base64)

Point d'accès compatible Cloudflare pour le traitement des images encodées en base64. Retourne le texte extrait, les objets détectés, les visages et les lieux identifiés. Idéal pour les environnements serverless avec des limites de taille de corps de requête.

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

Traiter un Audio

Téléversez et traitez des fichiers audio pour la transcription et l'identification des locuteurs. Utilise la reconnaissance vocale avancée et la diarisation des locuteurs. Supporte les formats MP3, WAV, OGG et M4A jusqu'à 100 Mo.

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

Traiter un Audio (Base64)

Point d'accès compatible Cloudflare pour le traitement de l'audio encodé en base64. Retourne la transcription complète avec les horodatages et les étiquettes de locuteurs. Note : les gros fichiers audio devraient utiliser le point d'accès de téléversement direct.

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

Traiter une Vidéo

Téléversez et traitez des fichiers vidéo pour une analyse complète. Extrait la transcription audio, détecte les visages à travers les images, identifie les scènes et objets, et génère une chronologie visuelle. Supporte MP4, MOV, AVI, WebM jusqu'à 500 Mo.

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

Traiter une Vidéo (Base64)

Point d'accès compatible Cloudflare pour le traitement de la vidéo encodée en base64. Limité aux fichiers plus petits en raison de la surcharge d'encodage. Pour les vidéos plus grandes, utilisez le téléversement par URL présignée.

Auth Requise

Gestion des Profils

Créez, mettez à jour et enrichissez les profils d'entités avec des données de fournisseurs OSINT. Supporte les opérations individuelles et par lots.

POST
/api/v1/profiles

Créer un Profil

Crée un nouveau profil d'entité (personne, organisation, véhicule, etc.). Accepte les données initiales et valide/normalise automatiquement les champs. Déclenche l'enrichissement en arrière-plan si auto_enrich est activé.

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

Obtenir un Profil

Retourne les données complètes du profil incluant tous les attributs, les entités liées, la chronologie et les données d'enrichissement. Supporte la sélection de champs pour l'optimisation des performances.

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

Mettre à Jour un Profil

Met à jour les champs du profil. Supporte les mises à jour partielles. Maintient une piste d'audit de tous les changements. Déclenche un ré-enrichissement si les champs d'identification principaux sont modifiés.

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

Supprimer un Profil

Supprime doucement un profil et toutes les données liées. Le profil peut être récupéré dans les 30 jours. Suppression permanente après la période de rétention. La piste d'audit est préservée.

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

Enrichir un Profil

Enrichit un profil avec des données de fournisseurs OSINT. Spécifiez optionnellement quels fournisseurs utiliser (social, criminel, financier, etc.). Retourne les données agrégées incluant la présence sur les réseaux sociaux, les registres publics et le renseignement open source.

Auth Requise
POST
/api/v1/batch/profiles

Obtenir des Profils par Lots

Récupère plusieurs profils par ID en une seule requête. Maximum 100 profils par requête. Retourne les profils dans le même ordre que les ID demandés. Les profils manquants retournent null.

Auth Requise
POST
/api/v1/batch/enrich

Enrichir des Profils par Lots

Enrichit plusieurs profils en une seule requête. Maximum 10 profils par requête pour gérer les limites de taux des fournisseurs. Retourne le statut de succès/échec individuel pour chaque profil.

Auth Requise
GET
/api/v1/profiles/search

Recherche plein texte à travers tous les champs de profil. Supporte les filtres par type, statut, plage de dates et champs personnalisés. Retourne des résultats paginés avec un score de pertinence.

Auth Requise
POST
/api/v1/profiles/link

Crée une relation entre deux profils (ex: 'travaille_pour', 'lié_à', 'possède'). Stocke les métadonnées et preuves de la relation. Les relations bidirectionnelles sont créées automatiquement.

Auth Requise
DELETE
/api/v1/profiles/link

Supprime une relation entre deux profils. Maintient une piste d'audit de la suppression. Les données de la relation originale sont préservées pour la conformité.

Auth Requise

Enquêtes & Cas

Gérez les enquêtes, cas, tâches et le cycle de vie complet des enquêtes.

POST
/api/v1/investigations

Créer une Enquête

Crée un nouvel espace de travail d'enquête avec titre, description et niveau de classification. Attribue automatiquement le créateur comme enquêteur principal. Retourne l'ID de l'enquête pour les opérations suivantes.

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

Obtenir une Enquête

Retourne les détails complets de l'enquête incluant les métadonnées, les membres de l'équipe, les cas, les profils, les fichiers et la chronologie des activités. Supporte la sélection de champs pour les grandes enquêtes.

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

Mettre à Jour une Enquête

Met à jour les métadonnées de l'enquête incluant le titre, la description, le statut et la classification. Les changements déclenchent des notifications aux membres de l'équipe. Journalisé dans l'audit.

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

Supprimer une Enquête

Supprime doucement une enquête et toutes les données contenues. Nécessite confirmation pour les enquêtes avec des cas actifs. Données conservées pour la période de conformité.

Auth Requise
GET
/api/v1/investigations

Lister les Enquêtes

Retourne les enquêtes accessibles à l'utilisateur actuel. Supporte le filtrage par statut, date, membre de l'équipe et requête de recherche. Paginé avec options de tri.

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

Ajouter des Fichiers à l'Enquête

Associe les fichiers téléversés à une enquête. Les fichiers sont automatiquement mis en file d'attente pour le traitement IA selon le type. Déclenche l'indexation pour la recherche.

Auth Requise

Alertes & Moniteurs

Configurez les règles de surveillance et gérez les alertes déclenchées par les flux de données en temps réel.

POST
/api/v1/alerts

Créer une Alerte

Crée programmatiquement une alerte. Typiquement les alertes sont créées par les moniteurs, mais la création manuelle est supportée pour les intégrations. Nécessite un titre, une sévérité et au moins une référence d'entité.

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

Obtenir une Alerte

Retourne les détails complets de l'alerte incluant les données déclenchantes, les entités correspondantes, l'historique des décisions et les enquêtes liées. Supporte l'expansion des entités liées.

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

Mettre à Jour une Alerte

Met à jour les métadonnées ou le statut de l'alerte. Les transitions de statut sont validées (ex: ne peut pas rouvrir une alerte rejetée). Tous les changements sont journalisés avec l'utilisateur et l'horodatage.

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

Décider d'une Alerte

Enregistre une décision sur une alerte : escalader, enquêter, rejeter ou faux positif. La décision inclut la justification et la disposition optionnelle de l'entité. Les alertes fermées peuvent déclencher des workflows de suivi.

Auth Requise
GET
/api/v1/alerts

Lister les Alertes

Retourne les alertes correspondant aux critères de filtre. Supporte le filtrage par sévérité, statut, moniteur, plage de dates et entité. Paginé avec taille de page configurable.

Auth Requise

Alertes & Moniteurs

Configurez les règles de surveillance et gérez les alertes déclenchées par les flux de données en temps réel.

POST
/api/v1/monitors

Créer un Moniteur

Crée une règle de surveillance qui déclenche des alertes basées sur les patterns de flux de données. Supporte des conditions complexes avec correspondance d'entités, limites géographiques, patterns temporels et déclencheurs de seuils.

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

Obtenir un Moniteur

Retourne la configuration et les statistiques du moniteur incluant le compte d'alertes, le dernier temps de déclenchement et les métriques de performance. Inclut les détails des conditions et les paramètres de notification.

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

Mettre à Jour un Moniteur

Met à jour les conditions, seuils ou paramètres de notification du moniteur. Les changements prennent effet immédiatement. Mettre en pause un moniteur arrête les nouvelles alertes mais préserve l'historique.

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

Supprimer un Moniteur

Supprime définitivement un moniteur. Les alertes associées sont préservées mais marquées comme orphelines. Considérez la mise en pause plutôt pour préserver la piste d'audit.

Auth Requise
GET
/api/v1/monitors

Lister les Moniteurs

Retourne tous les moniteurs pour le locataire actuel. Supporte le filtrage par statut, type et activité d'alertes. Inclut les statistiques résumées pour chaque moniteur.

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

Générer un Moniteur à partir d'une Description

Utilise l'IA pour convertir des descriptions en langage naturel en spécifications de moniteur structurées. Inclut l'analyse de sécurité, l'extraction de paramètres et l'estimation du volume d'alertes. Aide les utilisateurs non techniques à créer des moniteurs complexes.

Auth Requise

Services IA

Accès direct aux capacités IA incluant l'analyse de texte, l'extraction d'entités, la cartographie des relations et le traitement du langage naturel.

POST
/api/v1/ai/analyze-text

Analyser du Texte avec l'IA

Effectue une analyse IA complète sur le contenu textuel. Extrait les entités, relations, événements, sentiment et thèmes clés. Supporte plusieurs langues avec détection automatique.

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

Générer un Graphe à partir de Texte

Crée un graphe de connaissances à partir de texte non structuré. Identifie les entités, infère les relations et génère des données de graphe structurées adaptées à la visualisation ou à l'import Neo4j.

Auth Requise
POST
/api/v1/ai/summarize

Résumer du Contenu

Génère des résumés concis de contenu long. Supporte plusieurs longueurs et styles de résumé (exécutif, technique, points). Préserve les entités et faits clés.

Auth Requise
POST
/api/v1/ai/translate

Traduire du Contenu

Traduit le contenu entre les langues supportées tout en préservant les noms d'entités et les termes techniques. Retourne à la fois la traduction et la langue source détectée.

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

Extraire les Entités Nommées

Extrait et classifie les entités nommées du texte. Retourne les étendues d'entités, types, scores de confiance et identifiants résolus lorsque disponibles. Supporte les types d'entités personnalisés.

Auth Requise

Gestion des Fichiers

Téléversez, téléchargez et gérez les fichiers avec application complète du RBAC et journalisation d'audit.

POST
/api/v1/files

Téléverser un Fichier

Téléverse un fichier vers le stockage sécurisé. Détecte automatiquement le type de fichier et met en file d'attente pour le traitement approprié. Retourne l'ID du fichier et le statut de traitement. Supporte les téléversements par morceaux pour les gros fichiers.

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

Télécharger un Fichier

Télécharge un fichier avec application complète du RBAC et journalisation d'audit. Vérifie que l'utilisateur a accès à l'enquête/cas associé. Supporte les requêtes de plage pour les gros fichiers. Retourne le fichier avec les en-têtes content-type appropriés.

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

Diffuser un Fichier

Diffuse un fichier pour le chargement progressif des gros fichiers. Supporte les requêtes de plage HTTP pour le positionnement dans les fichiers audio/vidéo. Plus efficace que le téléchargement complet pour les gros fichiers médias.

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

Obtenir une URL Présignée

Génère une URL présignée à durée limitée pour l'accès direct aux fichiers depuis le stockage Cloudflare R2. L'URL expire après une durée configurable (par défaut 1 heure). Utile pour intégrer des fichiers dans des rapports ou partager avec des outils externes.

Auth Requise
GET
/api/v1/admin/files

Lister Tous les Fichiers (Admin)

Retourne tous les fichiers du système avec les métadonnées et statistiques d'accès. Admin ou superutilisateur uniquement. Supporte le filtrage par locataire pour les déploiements multi-locataires. Utilisé pour la gestion du stockage et l'audit.

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

Piste d'Audit des Fichiers (Admin)

Retourne la piste d'audit complète pour un fichier spécifique incluant tous les événements d'accès, téléchargements et modifications. Admin ou superutilisateur uniquement. Essentiel pour la documentation de chaîne de garde.

Admin/Superutilisateur

Métadonnées & Documentation API

Points d'accès API auto-descriptifs pour l'intégration dynamique et la documentation.

GET
/api/v1/docs/endpoints

Documentation des Points d'Accès API

Retourne la documentation complète de tous les points d'accès API incluant les chemins, méthodes, paramètres et schémas de réponse. Utilisé pour générer les SDK clients et la documentation d'intégration.

Public
GET
/api/v1/metadata/domains

Métadonnées des Domaines

Retourne les métadonnées sur tous les domaines disponibles (types d'entités) incluant leurs propriétés, relations et configuration UI. Essentiel pour construire des interfaces dynamiques qui s'adaptent aux changements de schéma.

Public
GET
/api/v1/metadata/enums

Métadonnées des Énumérations

Retourne tous les types d'énumération utilisés dans l'API incluant les codes de statut, niveaux de priorité, niveaux de classification et autres valeurs catégorielles. Utilisé pour remplir les menus déroulants.

Public
GET
/api/v1/metadata/providers

Métadonnées des Fournisseurs

Retourne les métadonnées sur les fournisseurs OSINT et de données disponibles incluant les capacités, limites de taux et identifiants requis. Utilisé pour configurer les préférences de sources de données.

Public

Audit & Conformité

Pistes d'audit cryptographiques avec vérification par arbre de Merkle pour une journalisation inviolable.

GET
/api/v1/audit/anchor/latest

Obtenir la Dernière Ancre Merkle

Retourne le hash racine de l'arbre de Merkle le plus récent ancrant le journal d'audit. Utilisé pour la vérification cryptographique de l'intégrité du journal. L'ancre est périodiquement publiée sur la blockchain pour l'immuabilité.

Public
GET
/api/v1/audit/anchor/proof/{entry_id}

Obtenir la Preuve d'Inclusion

Retourne une preuve d'inclusion Merkle pour une entrée d'audit spécifique. La preuve peut être vérifiée indépendamment contre l'ancre publiée. Essentielle pour les exigences de chaîne de garde médico-légale.

Public

Mission Planning

AI-assisted mission planning and operational support.

POST
/api/v1/mission-plans

Générer un Plan de Mission

Planification de mission assistée par IA basée sur la description du scénario, les profils cibles, les contraintes géographiques et l'évaluation des menaces. Retourne un plan structuré avec allocation des ressources, chronologie et contingences.

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

Affiner le Plan de Mission

Affine itérativement un plan de mission existant basé sur de nouvelles contraintes ou retours. Maintient l'historique des plans pour comparaison. Supporte les mises à jour partielles de sections spécifiques du plan.

Auth Requise

Gestion des Dossiers

Gestion complète du cycle de vie des dossiers avec flux de travail, affectations, modèles et suivi chronologique.

POST
/api/v1/cases

Créer un Dossier

Crée un nouveau dossier au sein d'une enquête avec titre, description, priorité, statut et utilisateur assigné.

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

Obtenir un Dossier

Retourne les détails complets du dossier incluant métadonnées, utilisateurs assignés, profils liés, tâches, notes et chronologie.

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

Mettre à Jour le Dossier

Met à jour les métadonnées du dossier incluant titre, description, priorité, statut, date limite et champs personnalisés.

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

Supprimer le Dossier

Suppression douce d'un dossier et toutes les données associées. Les données sont conservées pour la période de conformité.

Auth Requise
GET
/api/v1/cases

Lister les Dossiers

Retourne les dossiers avec filtrage par enquête, statut, priorité, assigné, plage de dates et tags.

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

Assigner le Dossier

Assigne ou réassigne un dossier à un utilisateur ou une équipe. Supporte plusieurs assignés.

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

Mettre à Jour le Statut

Met à jour le statut du dossier avec validation du flux de travail.

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

Associe un profil d'entité à un dossier en spécifiant le type de relation.

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

Supprime l'association entre un profil et un dossier.

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

Chronologie du Dossier

Retourne la chronologie complète d'activité du dossier.

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

Mise à Jour en Lot des Dossiers

Met à jour plusieurs dossiers en une seule requête.

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

Créer depuis un Modèle

Crée un nouveau dossier à partir d'un modèle prédéfini.

Auth Requise

Gestion des Tâches

Créer et gérer des tâches avec affectations, listes de contrôle, dépendances et suivi de progression.

POST
/api/v1/tasks

Créer une Tâche

Crée une nouvelle tâche au sein d'un dossier avec titre, description, assigné et date limite.

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

Obtenir une Tâche

Retourne les détails complets de la tâche incluant liste de contrôle et sous-tâches.

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

Mettre à Jour la Tâche

Met à jour les champs de la tâche incluant titre, description, date limite et progression.

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

Supprimer la Tâche

Supprime une tâche et optionnellement ses sous-tâches.

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

Lister les Tâches par Dossier

Retourne toutes les tâches d'un dossier avec filtrage.

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

Assigner la Tâche

Assigne ou réassigne une tâche à un utilisateur.

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

Compléter la Tâche

Marque une tâche comme complétée avec notes optionnelles.

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

Mettre à Jour la Liste de Contrôle

Met à jour les éléments de la liste de contrôle d'une tâche.

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

Mes Tâches

Retourne toutes les tâches assignées à l'utilisateur courant.

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

Mise à Jour en Lot des Tâches

Met à jour plusieurs tâches en une seule requête.

Auth Requise

Notes & Documentation

Notes d'enquête avec texte enrichi, fils de discussion, pièces jointes et contrôles de visibilité.

POST
/api/v1/notes

Créer une Note

Crée une nouvelle note attachée à un dossier ou enquête avec texte enrichi et mentions.

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

Obtenir une Note

Retourne le contenu de la note avec métadonnées, pièces jointes et réponses.

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

Mettre à Jour la Note

Met à jour le contenu ou métadonnées de la note. Maintient l'historique des versions.

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

Supprimer la Note

Suppression douce d'une note. Le contenu est conservé pour la conformité.

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

Lister les Notes par Dossier

Retourne toutes les notes d'un dossier respectant les règles de visibilité.

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

Ajouter une Pièce Jointe

Attache un fichier à une note existante.

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

Répondre à une Note

Crée une réponse en fil à une note existante.

Auth Requise

Pièces Jointes & Fichiers

Gérer les pièces jointes avec traitement, chaîne de possession et vérification d'intégrité.

POST
/api/v1/attachments

Créer une Pièce Jointe

Téléverse et attache un fichier à un dossier, note ou tâche.

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

Obtenir une Pièce Jointe

Retourne les métadonnées de la pièce jointe incluant le statut de traitement.

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

Supprimer la Pièce Jointe

Suppression douce d'une pièce jointe.

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

Lister les Pièces Jointes

Retourne toutes les pièces jointes d'un dossier avec filtrage.

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

Retraiter la Pièce Jointe

Déclenche le retraitement d'une pièce jointe avec des modèles mis à jour.

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

Chaîne de Possession

Retourne le journal complet de chaîne de possession.

Auth Requise

Analyse de Graphes

Analyse de réseaux, recherche de chemins, métriques de centralité et détection de communautés sur le graphe de connaissances.

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

Obtenir un Nœud

Retourne un nœud du graphe de connaissances avec toutes ses propriétés.

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

Obtenir les Voisins

Retourne tous les nœuds directement connectés dans la profondeur spécifiée.

Auth Requise
GET
/api/v1/graph/path

Trouver un Chemin

Trouve le chemin le plus court entre deux nœuds.

Auth Requise
POST
/api/v1/graph/subgraph

Obtenir un Sous-Graphe

Extrait un sous-graphe autour de nœuds semences spécifiés.

Auth Requise
POST
/api/v1/graph/query

Requête Cypher Personnalisée

Exécute une requête Cypher en lecture seule. Administrateurs uniquement.

Auth Requise
GET
/api/v1/graph/statistics

Statistiques du Graphe

Retourne les statistiques agrégées du graphe de connaissances.

Auth Requise
POST
/api/v1/graph/centrality

Calculer la Centralité

Calcule les métriques de centralité pour identifier les entités clés.

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

Détection de Communautés

Exécute les algorithmes de détection de communautés.

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

Utilise le ML de graphes pour prédire les relations probables.

Auth Requise

Intelligence Géospatiale

Requêtes basées sur la localisation, clustering, cartes thermiques, routage et analyse chronologique géographique.

POST
/api/v1/geo/search

Recherche les entités avec données de localisation correspondant aux critères spatiaux.

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

Entités dans les Limites

Retourne les entités dans un rectangle délimiteur.

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

Entités dans un Rayon

Retourne les entités dans un rayon spécifié d'un point central.

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

Entités dans un Polygone

Retourne les entités dans un polygone GeoJSON.

Auth Requise
GET
/api/v1/geo/clusters

Clusters de Localisation

Retourne les données de localisation groupées pour l'affichage cartographique.

Auth Requise
GET
/api/v1/geo/heatmap

Données de Carte Thermique

Retourne les données de densité pour la visualisation en carte thermique.

Auth Requise
POST
/api/v1/geo/route

Calculer un Itinéraire

Calcule l'itinéraire optimal entre les localisations.

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

Chronologie de Localisation

Retourne l'historique chronologique des localisations d'une entité.

Auth Requise
POST
/api/v1/geo/geocode

Géocoder une Adresse

Convertit une adresse texte en coordonnées géographiques.

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

Géocodage Inverse

Convertit les coordonnées en une adresse lisible.

Auth Requise

Tableaux de Bord & Visualisation

Créer des tableaux de bord personnalisables avec graphiques, cartes, métriques et vues partagées d'équipe.

POST
/api/v1/dashboards

Créer un Tableau de Bord

Crée un nouveau tableau de bord avec titre, description et configuration de mise en page.

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

Obtenir un Tableau de Bord

Retourne la configuration du tableau de bord incluant tous les panneaux.

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

Mettre à Jour le Tableau de Bord

Met à jour les métadonnées ou la configuration de mise en page.

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

Supprimer le Tableau de Bord

Supprime un tableau de bord et tous ses panneaux.

Auth Requise
GET
/api/v1/dashboards

Lister les Tableaux de Bord

Retourne tous les tableaux de bord accessibles à l'utilisateur.

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

Ajouter un Panneau

Ajoute un nouveau panneau au tableau de bord.

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

Mettre à Jour le Panneau

Met à jour la configuration du panneau.

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

Supprimer le Panneau

Supprime un panneau du tableau de bord.

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

Partager le Tableau de Bord

Partage un tableau de bord avec des utilisateurs ou équipes spécifiques.

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

Cloner le Tableau de Bord

Crée une copie d'un tableau de bord avec tous les panneaux.

Auth Requise

Rapports & Exports

Générer des rapports professionnels, dossiers judiciaires et exports de données dans plusieurs formats.

POST
/api/v1/reports/generate

Générer un Rapport

Génère un rapport depuis un modèle ou une configuration personnalisée.

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

Obtenir un Rapport

Retourne les métadonnées du rapport incluant le statut de génération.

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

Télécharger le Rapport

Télécharge un fichier de rapport généré.

Auth Requise
GET
/api/v1/reports

Lister les Rapports

Retourne tous les rapports générés par l'utilisateur ou l'équipe.

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

Supprimer le Rapport

Supprime un fichier de rapport généré.

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

Exporter le Dossier

Exporte un package complet du dossier.

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

Exporter l'Enquête

Exporte une enquête complète avec tous les dossiers.

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

Générer un Dossier Judiciaire

Génère un package de preuves prêt pour le tribunal.

Auth Requise
GET
/api/v1/reports/templates

Lister les Modèles de Rapport

Retourne les modèles de rapport disponibles.

Auth Requise
POST
/api/v1/reports/schedule

Planifier un Rapport

Planifie la génération automatique de rapports.

Auth Requise

Recherche & Découverte

Recherche plein texte globale, recherche sémantique et capacités de requête avancées sur toutes les données.

POST
/api/v1/search

Recherche plein texte dans toutes les données accessibles.

Auth Requise
POST
/api/v1/search/entities

Rechercher des Entités

Recherche spécifique dans les profils d'entités.

Auth Requise
POST
/api/v1/search/documents

Rechercher des Documents

Recherche dans le contenu des documents.

Auth Requise
POST
/api/v1/search/advanced

Recherche Avancée

Recherche structurée avec requêtes booléennes complexes.

Auth Requise
POST
/api/v1/search/semantic

Recherche Sémantique

Recherche sémantique par IA comprenant l'intention.

Auth Requise
GET
/api/v1/search/suggestions

Suggestions de Recherche

Retourne les suggestions d'autocomplétion.

Auth Requise
GET
/api/v1/search/history

Historique de Recherche

Retourne les requêtes de recherche récentes de l'utilisateur.

Auth Requise
POST
/api/v1/search/save

Sauvegarder la Recherche

Sauvegarde une requête de recherche pour accès rapide.

Auth Requise

Tags & Classification

Organiser les entités avec des tags pour la catégorisation, le filtrage et la découverte inter-domaines.

POST
/api/v1/tags

Créer un Tag

Crée un nouveau tag avec nom, couleur et description optionnelle.

Auth Requise
GET
/api/v1/tags

Lister les Tags

Retourne tous les tags disponibles avec les compteurs d'utilisation.

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

Mettre à Jour le Tag

Met à jour les propriétés du tag.

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

Supprimer le Tag

Supprime un tag de toutes les entités.

Auth Requise
POST
/api/v1/tags/apply

Appliquer des Tags

Applique des tags à une entité.

Auth Requise
POST
/api/v1/tags/remove

Retirer des Tags

Retire les tags spécifiés d'une entité.

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

Obtenir les Entités par Tag

Retourne toutes les entités avec un tag spécifique.

Auth Requise

Commentaires & Collaboration

Commentaires en fils avec mentions, réactions et fonctionnalités de collaboration en temps réel.

POST
/api/v1/comments

Créer un Commentaire

Crée un commentaire sur n'importe quelle entité avec mentions et formatage.

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

Obtenir un Commentaire

Retourne un commentaire avec métadonnées, réponses et réactions.

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

Mettre à Jour le Commentaire

Met à jour le contenu du commentaire. L'historique est préservé.

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

Supprimer le Commentaire

Supprime un commentaire. Les réponses restent visibles.

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

Lister les Commentaires par Entité

Retourne tous les commentaires d'une entité spécifique.

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

Répondre au Commentaire

Crée une réponse en fil à un commentaire.

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

Réagir au Commentaire

Ajoute ou retire une réaction emoji à un commentaire.

Auth Requise

Notifications & Préférences

Gérer les notifications à travers les canaux avec préférences personnalisables et heures calmes.

GET
/api/v1/notifications

Lister les Notifications

Retourne toutes les notifications de l'utilisateur courant.

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

Compteur de Non Lues

Retourne le nombre de notifications non lues.

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

Marquer comme Lue

Marque une notification comme lue.

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

Tout Marquer comme Lu

Marque toutes les notifications comme lues.

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

Supprimer la Notification

Supprime définitivement une notification.

Auth Requise
GET
/api/v1/notifications/preferences

Obtenir les Préférences

Retourne les préférences de notification de l'utilisateur.

Auth Requise
PUT
/api/v1/notifications/preferences

Mettre à Jour les Préférences

Met à jour les préférences de notification.

Auth Requise

Équipes & Collaboration

Gestion d'équipes avec membres, rôles, permissions et hiérarchies organisationnelles.

POST
/api/v1/teams

Créer une Équipe

Crée une nouvelle équipe avec nom, description et membres initiaux.

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

Obtenir une Équipe

Retourne les détails de l'équipe incluant membres et rôles.

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

Mettre à Jour l'Équipe

Met à jour les métadonnées de l'équipe.

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

Supprimer l'Équipe

Supprime une équipe. Les membres perdent les permissions d'équipe.

Admin/Superutilisateur
GET
/api/v1/teams

Lister les Équipes

Retourne toutes les équipes que l'utilisateur peut voir.

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

Ajouter un Membre

Ajoute un utilisateur à l'équipe avec un rôle spécifié.

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

Retirer un Membre

Retire un utilisateur de l'équipe.

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

Mettre à Jour le Rôle du Membre

Change le rôle d'un membre de l'équipe.

Admin/Gestionnaire

Listes de Surveillance & Criblage

Surveiller les entités contre les listes de surveillance avec correspondance automatique et génération d'alertes.

POST
/api/v1/watchlists

Créer une Liste de Surveillance

Crée une nouvelle liste de surveillance avec critères de correspondance.

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

Obtenir une Liste de Surveillance

Retourne la configuration de la liste de surveillance.

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

Mettre à Jour la Liste

Met à jour la configuration de la liste de surveillance.

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

Supprimer la Liste

Supprime une liste de surveillance.

Auth Requise
GET
/api/v1/watchlists

Lister les Listes de Surveillance

Retourne toutes les listes de surveillance accessibles.

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

Ajouter une Entité

Ajoute une entité spécifique pour surveillance.

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

Retirer une Entité

Retire une entité de la surveillance.

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

Vérifier contre la Liste

Vérifie si une entité correspond aux critères.

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

Vérification par Lot

Vérifie plusieurs entités contre toutes les listes actives.

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

Obtenir les Correspondances

Retourne toutes les correspondances d'une liste de surveillance.

Auth Requise

Gestion des Preuves

Suivi des preuves admissibles en cour avec chaîne de possession, vérification d'intégrité et scellé.

POST
/api/v1/evidence

Créer un Enregistrement de Preuve

Crée un enregistrement formel de preuve avec suivi de possession.

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

Obtenir une Preuve

Retourne l'enregistrement de preuve avec métadonnées et chaîne de possession.

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

Mettre à Jour la Preuve

Met à jour les métadonnées de preuve. Le contenu scellé ne peut être modifié.

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

Lister les Preuves par Dossier

Retourne tous les éléments de preuve d'un dossier.

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

Transfert de Possession

Enregistre un transfert de possession entre dépositaires.

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

Chaîne de Possession

Retourne l'historique complet de la chaîne de possession.

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

Vérifier l'Intégrité

Vérifie l'intégrité de la preuve en recalculant le hash.

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

Sceller la Preuve

Scelle l'élément de preuve empêchant les modifications.

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

Piste d'Audit

Retourne la piste d'audit complète de la preuve.

Auth Requise

OSINT & Enrichissement de Données

Interroger plusieurs fournisseurs OSINT pour l'intelligence sur les personnes, organisations, téléphones, emails, réseaux sociaux, véhicules, domaines, IP et cryptomonnaies.

GET
/api/v1/osint/providers

Lister les Fournisseurs OSINT

Retourne tous les fournisseurs OSINT configurés.

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

Statut du Fournisseur

Retourne le statut détaillé d'un fournisseur OSINT.

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

Rechercher une Personne

Recherche des informations sur une personne dans les sources OSINT.

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

Rechercher une Organisation

Recherche des informations d'organisation incluant les registres corporatifs.

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

Rechercher un Téléphone

Recherche inversée de téléphone dans les bases de données.

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

Rechercher un Email

Recherche d'intelligence email.

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

Rechercher sur les Réseaux Sociaux

Recherche des profils sur les réseaux sociaux.

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

Rechercher un Véhicule

Recherche de véhicule par VIN ou plaque.

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

Rechercher un Domaine

Intelligence de domaine incluant WHOIS et DNS.

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

Rechercher une Adresse IP

Intelligence d'adresse IP incluant géolocalisation.

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

Rechercher une Cryptomonnaie

Analyse d'adresse de cryptomonnaie.

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

Enrichissement par Lot

Enrichit plusieurs entités avec des données OSINT.

Auth Requise
GET
/api/v1/osint/usage

Utilisation OSINT

Retourne les statistiques d'utilisation des requêtes OSINT.

Auth Requise

Modèles & Automatisation

Modèles réutilisables pour les dossiers, rapports et flux de travail pour standardiser les processus.

POST
/api/v1/templates/case

Créer un Modèle de Dossier

Crée un modèle de dossier réutilisable.

Admin/Gestionnaire
GET
/api/v1/templates/case

Lister les Modèles de Dossier

Retourne tous les modèles de dossier disponibles.

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

Obtenir un Modèle de Dossier

Retourne la configuration complète du modèle.

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

Mettre à Jour le Modèle

Met à jour la configuration du modèle.

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

Supprimer le Modèle

Supprime un modèle de dossier.

Admin/Superutilisateur
POST
/api/v1/templates/report

Créer un Modèle de Rapport

Crée un modèle de rapport avec mise en page et sections.

Admin/Gestionnaire
GET
/api/v1/templates/report

Lister les Modèles de Rapport

Retourne tous les modèles de rapport.

Auth Requise
POST
/api/v1/templates/workflow

Créer un Modèle de Flux

Crée un modèle de flux de travail automatisé.

Admin/Gestionnaire
GET
/api/v1/templates/workflow

Lister les Modèles de Flux

Retourne tous les modèles de flux de travail.

Auth Requise

Flux de Travail & Automatisation

Flux de travail automatisés avec déclencheurs, conditions et actions pour l'automatisation des enquêtes.

POST
/api/v1/workflows

Créer un Flux de Travail

Crée un flux de travail automatisé avec déclencheurs et actions.

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

Obtenir un Flux de Travail

Retourne la configuration du flux de travail et l'historique.

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

Mettre à Jour le Flux

Met à jour la configuration du flux de travail.

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

Supprimer le Flux

Supprime un flux de travail.

Admin/Superutilisateur
GET
/api/v1/workflows

Lister les Flux de Travail

Retourne tous les flux de travail accessibles.

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

Exécuter le Flux

Déclenche manuellement une exécution de flux de travail.

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

Historique des Exécutions

Retourne l'historique des exécutions du flux de travail.

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

Mettre en Pause le Flux

Met en pause un flux de travail actif.

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

Reprendre le Flux

Reprend un flux de travail en pause.

Auth Requise

Communication en Temps Réel

Points d'accès de messagerie et collaboration en temps réel basés sur WebSocket.

POST
/api/v1/channels

Créer un Canal

Crée un canal de messagerie en temps réel.

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

Obtenir un Canal

Retourne les détails du canal incluant les membres.

Auth Requise
GET
/api/v1/channels

Lister les Canaux

Retourne tous les canaux accessibles à l'utilisateur.

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

Envoyer un Message

Envoie un message à un canal.

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

Obtenir les Messages

Retourne l'historique des messages d'un canal.

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

Ajouter un Membre au Canal

Ajoute un utilisateur à un canal.

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

Retirer un Membre du Canal

Retire un utilisateur d'un canal.

Auth Requise
GET
/api/v1/users/presence

Statut de Présence

Retourne le statut en ligne/hors ligne des utilisateurs.

Auth Requise

API GraphQL

L'API GraphQL principale (api.knogin.com/graphql) fournit plus de 100 requêtes, 80+ mutations et des abonnements en temps réel utilisant le framework Strawberry GraphQL. GraphQL offre une récupération de données flexible, permettant aux clients de demander exactement les données dont ils ont besoin en une seule requête.

Point d'Accès GraphQL

Point d'Accès GraphQLPOST https://api.knogin.com/graphql
Playground GraphQLGET https://api.knogin.com/graphql

Enquêtes

Créer, gérer et suivre les enquêtes avec un support complet du cycle de vie incluant l'affectation d'équipe, la gestion des fichiers et le suivi de progression.

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

Dossiers

Gestion complète des dossiers avec modèles, flux de travail, suivi de statut, liaison de profils et opérations en masse pour une gestion efficace des dossiers.

Requêtes
  • 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)
Mutations
  • 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!)

Tâches

Gestion des tâches avec affectations, listes de contrôle, dépendances et suivi de progression pour des flux de travail d'enquête structurés.

Requêtes
  • task(taskId: ID!)
  • tasks(caseId: ID!, status: [TaskStatus], assignee: ID)
  • myTasks(status: [TaskStatus], dueDate: DateRange)
  • taskChecklist(taskId: ID!)
  • taskDependencies(taskId: ID!)
Mutations
  • 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!)

Notes & Pièces Jointes

Notes d'enquête avec texte enrichi, fils de discussion et pièces jointes. Suivi complet de la chaîne de possession pour les fichiers de qualité probante.

Requêtes
  • note(noteId: ID!)
  • notes(caseId: ID!, type: NoteType, visibility: Visibility)
  • attachment(attachmentId: ID!)
  • attachments(caseId: ID!, fileType: String)
  • attachmentChainOfCustody(attachmentId: ID!)
Mutations
  • 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!)

Profils & Entités

Gestion des profils d'entité pour personnes, organisations et autres entités avec enrichissement OSINT et cartographie des relations.

Requêtes
  • 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)
Mutations
  • 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!)

Alertes & Moniteurs

Système d'alertes en temps réel avec moniteurs configurables, niveaux de sévérité et flux de travail de décision pour la détection des menaces.

Requêtes
  • 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!)
Mutations
  • 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!)

Analyse de Graphe

Opérations sur le graphe de connaissances incluant la recherche de chemins, l'analyse de centralité, la détection de communautés et la prédiction de liens pour l'intelligence réseau.

Requêtes
  • 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)
Mutations
  • 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!)

Intelligence Géospatiale

Requêtes basées sur la localisation, clustering, cartes de chaleur, géorepérage et analyse chronologique pour les opérations d'intelligence géographique.

Requêtes
  • 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!)
Mutations
  • createLocation(input: CreateLocationInput!)
  • updateLocation(locationId: ID!, input: UpdateLocationInput!)
  • deleteLocation(locationId: ID!)
  • linkLocationToEntity(locationId: ID!, entityId: ID!)
  • createGeofence(input: CreateGeofenceInput!)
  • updateGeofence(geofenceId: ID!, input: UpdateGeofenceInput!)

Tableaux de Bord & Visualisation

Créer et gérer des tableaux de bord personnalisables avec panneaux, graphiques et métriques en temps réel pour la conscience opérationnelle.

Requêtes
  • getDashboard(dashboardId: ID!)
  • listDashboards(type: DashboardType, shared: Boolean)
  • getDashboardMetrics(dashboardId: ID!)
  • panelData(panelId: ID!, dateRange: DateRange)
  • dashboardTemplates(category: String)
Mutations
  • 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!)

Recherche & Découverte

Recherche globale avec capacités sémantiques, filtres avancés et requêtes enregistrées pour une découverte rapide du renseignement.

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

Gestion des Preuves

Suivi des preuves admissibles en cour avec chaîne de possession, vérification d'intégrité et scellé pour les procédures judiciaires.

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

OSINT & Enrichissement

Requêtes de renseignement de sources ouvertes à travers plusieurs fournisseurs pour les données sur personnes, organisations, téléphones, emails, réseaux sociaux, véhicules, domaines, IP et cryptomonnaies.

Requêtes
  • osintProviders
  • osintProviderStatus(providerId: ID!)
  • osintUsage(dateRange: DateRange)
Mutations
  • 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])

Équipes & Utilisateurs

Gestion d'équipes avec rôles de membres, permissions et hiérarchies pour les opérations d'enquête collaboratives.

Requêtes
  • team(teamId: ID!)
  • teams(parentId: ID)
  • teamMembers(teamId: ID!)
  • myTeams
  • user(userId: ID!)
  • users(role: Role, status: UserStatus)
  • currentUser
Mutations
  • 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!)

Flux de Travail & Automatisation

Flux de travail automatisés avec déclencheurs, conditions et actions pour des processus d'enquête rationalisés.

Requêtes
  • workflow(workflowId: ID!)
  • workflows(status: WorkflowStatus, trigger: TriggerType)
  • workflowExecutions(workflowId: ID!, status: ExecutionStatus)
  • workflowExecution(executionId: ID!)
  • workflowTemplates(category: String)
Mutations
  • 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!)

Services IA

Analyse de texte alimentée par l'IA, extraction d'entités, résumé, traduction et capacités de traitement de documents.

Requêtes
  • aiProcessingStatus(jobId: ID!)
  • aiProcessingHistory(entityId: ID!)
  • aiCapabilities
Mutations
  • 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)

Notifications & Commentaires

Notifications en temps réel avec préférences, commentaires en fils, mentions et réactions pour la collaboration d'équipe.

Requêtes
  • notifications(status: NotificationStatus, limit: Int)
  • unreadNotificationCount
  • notificationPreferences
  • comments(entityId: ID!, entityType: EntityType)
  • comment(commentId: ID!)
Mutations
  • 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!)

Abonnements en Temps Réel

S'abonner aux mises à jour en temps réel via WebSocket pour le streaming de données en direct à travers tous les domaines.

Alertes
  • alertStream
  • alertUpdates(alertId: ID!)
  • monitorAlerts(monitorId: ID!)
Enquêtes
  • investigationProgress(investigationId: ID!)
  • caseUpdates(caseId: ID!)
  • taskUpdates(caseId: ID!)
Tableaux de Bord
  • dashboardUpdates(dashboardId: ID!)
  • panelData(panelId: ID!)
  • metricsStream(dashboardId: ID!)
Collaboration
  • channelMessages(channelId: ID!)
  • userPresence(userIds: [ID!]!)
  • typingIndicator(channelId: ID!)
Traitement
  • processingProgress(jobId: ID!)
  • enrichmentProgress(profileId: ID!)
  • workflowExecution(executionId: ID!)
Notifications
  • notificationStream
  • mentionStream
  • systemAnnouncements

Exemple : Requête d'Enquête avec Cas

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
    }
  }
}

Exemple : Mutation de Création d'Alerte

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 & Temps Réel

Communication en temps réel via WebSocket pour les mises à jour en direct, les abonnements GraphQL et les fonctionnalités de collaboration.

Points d'Accès WebSocket

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

Abonnements GraphQL

Point d'accès WebSocket pour les abonnements GraphQL utilisant le protocole graphql-ws. Supporte toutes les opérations d'abonnement incluant les flux d'alertes, les mises à jour d'enquêtes et la collaboration en temps réel.

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

Flux d'Événements Général

Point d'accès WebSocket pour le streaming d'événements en temps réel général incluant les mises à jour d'enquêtes, les notifications système et la présence utilisateur. Supporte les abonnements basés sur les canaux.

Auth Requise

Exemple d'Abonnement

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

Formats de Réponse

Structures de réponse standard utilisées dans toute l'API.

Réponse de Succès

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

Réponse d'Erreur

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

Codes de Statut HTTP

Codes de statut courants retournés par l'API.

  • 200OK - Requête réussie
  • 201Créé - Ressource créée
  • 204Pas de Contenu - Succès sans corps
  • 400Mauvaise Requête - Paramètres invalides
  • 401Non Autorisé - Authentification requise
  • 403Interdit - Accès refusé
  • 404Non Trouvé - Ressource non trouvée
  • 422Entité Non Traitable - Erreur de validation
  • 429Trop de Requêtes - Limite dépassée
  • 500Erreur Interne du Serveur

Limites de Taux

Limites de taux de l'API pour garantir une utilisation équitable et la stabilité du système.

  • Points d'Accès Standards1000 requêtes par minute
  • Points d'Accès d'Authentification5 requêtes par minute (connexion, vérification MFA)
  • Opérations par Lots100 profils par requête par lots, 10 pour l'enrichissement
  • Téléversement de Fichiers50 Mo taille maximale de fichier
  • Traitement IASoumis aux limites de jetons par niveau d'organisation

Prêt à Intégrer ?

Commencez avec nos SDK ou contactez notre équipe d'intégration pour du support.