API reference
Every route of public API v1.7.0, with its parameters.
API version: 1.7.0. Base URL: https://<your-console>/api/v1. Every route requires a token (Authorization: Bearer …, see this page). Responses look like { data, meta }; dates are UTC (ISO 8601).
This reference is generated from the product's OpenAPI specification; route descriptions are those of the specification, written in French. Your console serves the same specification at /api/v1/openapi.json.
Jeton
GET /me
Identité et portées du jeton
Responses : 200 OK · 401 Jeton absent, invalide, expiré ou révoqué
Parc
GET /machines
Postes équipés de l'agent FirstSI — portée read:machines
Pagination par curseur.
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | Filtre sur l'état de l'agent (ex. online, offline) |
limit | query | integer, default 100, max 500 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 Liste paginée · 403 Portée manquante · 429 Trop d'appels
GET /machines/{hostname}
Un poste
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
Responses : 200 OK · 404 Poste inconnu
Flux réseau
GET /flows
Flux réseau détaillés — portée read:flows
Un flux = une connexion observée par l'agent : date, processus, utilisateur, pair distant, protocole, sens, octets. Fenêtre limitée à 7 jours (au-delà, la réponse est ramenée aux 7 derniers jours et meta.window_capped vaut true) : au-delà, utilisez /flows/destinations ou /flows/summary, qui lisent des agrégats horaires. Pagination par curseur, du plus récent au plus ancien.
| Parameter | In | Type | Description |
|---|---|---|---|
machine | query | string | Nom d'hôte exact ; absent = tous les postes du tenant |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d | |
from | query | string (date-time) | |
to | query | string (date-time) | |
protocol | query | TCP · UDP | |
direction | query | inbound · outbound | |
remote_ip | query | string | Adresse distante ; un préfixe suffit (ex. 10.20.0.) |
remote_port | query | integer | |
process | query | string | Nom du processus, correspondance partielle |
destination | query | string | Cherche dans l'adresse ET le nom d'hôte distant |
include_listening | query | 1 | Inclure les sockets en écoute, masquées par défaut (aucun pair en face) |
limit | query | integer, default 100, max 500 | |
cursor | query | string |
Responses : 200 Liste paginée · 403 Portée manquante · 429 Trop d'appels
GET /flows/destinations
Destinations les plus vues — portée read:flows
Avec qui les postes parlent-ils ? Calculé sur les agrégats horaires, donc rapide jusqu'à 31 jours. Trié par volume décroissant. source=gateway : flux vus par les passerelles (IPFIX), appareils sans agent compris ; source=all : les deux, le trafic des postes équipés n'étant compté qu'une fois (champ seen_by).
| Parameter | In | Type | Description |
|---|---|---|---|
source | query | agent · gateway · all, default agent | |
machine | query | string | Nom d'hôte exact ; absent = tous les postes du tenant |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d | |
from | query | string (date-time) | |
to | query | string (date-time) | |
limit | query | integer, default 100, max 500 |
Responses : 200 OK · 403 Portée manquante
GET /flows/summary
Volumes réseau sur la période — portée read:flows
Totaux, répartition par protocole et par sens, et courbe heure par heure (744 points au plus). Agrégats horaires, jusqu'à 31 jours.
| Parameter | In | Type | Description |
|---|---|---|---|
machine | query | string | Nom d'hôte exact ; absent = tous les postes du tenant |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d | |
from | query | string (date-time) | |
to | query | string (date-time) |
Responses : 200 OK · 403 Portée manquante
GET /flows/talkers
Postes qui échangent le plus — portée read:flows
Classement des postes par volume total sur la période. Agrégats horaires, jusqu'à 31 jours.
| Parameter | In | Type | Description |
|---|---|---|---|
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d | |
from | query | string (date-time) | |
to | query | string (date-time) | |
limit | query | integer, default 50, max 200 |
Responses : 200 OK · 403 Portée manquante
GET /flows/blocked
Connexions refusées, expirées ou bloquées — portée read:flows
Connexions sortantes en échec vues par les agents (capteur ETW Microsoft-Windows-TCPIP) : refused, timeout, blocked (pare-feu local), host_unreachable, network_unreachable, reset, aborted. Collecte active depuis le 27/09/2026 ; une tentative abandonnée par l'application avant le délai TCP de Windows (~21 s) n'est pas enregistrée.
| Parameter | In | Type | Description |
|---|---|---|---|
machine | query | string | Nom d'hôte exact |
type | query | string | Type d'échec |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 100 par défaut, 1000 au plus |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /flows/explore
Explorateur de flux (volumes par dimensions) — portée read:flows
Croise 1 à 3 dimensions (interne, externe, pays, operateur, port, service, proto, sens, source, passerelle, site, interface, processus, utilisateur) sur les flux des agents et des passerelles, avec filtre textuel (ex. « pays != FR et service = https »). Renvoie la série temporelle empilée par la première dimension, les liens entre dimensions (diagramme de Sankey) et le top N. Pays et opérateur : IP Geolocation by DB-IP (CC BY 4.0).
| Parameter | In | Type | Description |
|---|---|---|---|
dims | query | string | Dimensions séparées par des virgules (1 à 3) |
source | query | string | all / agent / gateway / firewall (journaux du pare-feu, mesure = connexions ; dimensions action, regle, categorie) |
period | query | string | 1h / 6h / 24h / 7d / 30d |
metric | query | string | bytes / flows |
filter | query | string | Filtre textuel |
limit | query | integer | Valeurs retenues par dimension (3 à 20) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
NetDiag
GET /netdiag/machines
Postes en diagnostic réseau, verdict courant et état d'alerte — portée read:netdiag
Responses : 200 OK
GET /netdiag/machines/{hostname}/summary
Résumé d'un poste sur une période
Répartition des verdicts, causes, dernière mesure (lien, Wi-Fi, latences, sondes).
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 404 Aucune mesure
GET /netdiag/machines/{hostname}/events
Événements d'un poste
Sources : verdict, appv, alert, app, teams, ap, vpn, wlan, driver, trace, speed, capture, netprofile, switch, dhcp, power, wan, tcpfail, proc, install. Les sources file et fg (données sensibles) ne sont pas exposées.
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
source | query | string | |
q | query | string | Texte cherché dans le message |
limit | query | integer, default 200, max 1000 | |
cursor | query | string |
Responses : 200 Liste paginée
GET /netdiag/machines/{hostname}/apps
Applications suivies : verdicts, charge, dépendances réseau, sondes, tendance mémoire
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK
GET /netdiag/machines/{hostname}/report.pdf
Rapport de diagnostic PDF — portée report:pdf
Même rapport que le bouton « Télécharger » du tableau de bord.
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
lang | query | fr · en, default fr | |
tz | query | string, default Europe/Paris |
Responses : 200 PDF · 403 Portée report:pdf manquante
PUT /netdiag/machines/{hostname}/settings
Modifier les réglages NetDiag d'un poste (mise à jour partielle) — portée write:netdiag
Seules les clés envoyées changent. apps : exécutables à suivre (10 max, liste vide = défaut du tenant) ; extraProbes : sondes "hote.domaine[:port]" ou "*.domaine[:port]" (3 max) ; interrupteurs booléens : traceOnIncident, captureOnIncident, autoWatchApps, flowsEnabled, foregroundEnabled, foregroundTitles, fileEventsEnabled, fileIncludeAppData, installEventsEnabled, processEventsEnabled, windowsEventsEnabled. L'agent applique dans la minute.
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
{
"apps": [
"sage.exe",
"outlook.exe"
],
"autoWatchApps": true
}Responses : 200 Réglages enregistrés · 400 Clé inconnue ou valeur invalide (la réponse liste les clés admises) · 404 Poste inconnu
POST /netdiag/machines/{hostname}/actions
Demander un traceroute, un test de débit ou une capture réseau au poste — portée write:netdiag
action=trace (target facultatif : hôte ou IP, sinon la passerelle), speed (20 Mo descendant / 8 Mo montant vers le serveur FirstSI), capture (seconds 5 à 120, défaut 30 ; fichier pcapng consultable dans FirstSI). Réponse 202 : le résultat arrive dans les événements du poste (source trace | speed | capture) une à trois minutes plus tard si l'agent est en ligne.
| Parameter | In | Type | Description |
|---|---|---|---|
hostname (required) | path | string | Nom du poste (tel qu'affiché dans FirstSI) |
{
"action": "trace",
"target": "srv-sage.exemple.lan"
}Responses : 202 Demande transmise · 400 action invalide · 404 Poste inconnu
Alertes
GET /alerts
Flux unifié des alertes : NetDiag, HostMonitor, SIEM — portée read:alerts
status=open renvoie ce qui est en cours maintenant (états NetDiag, incidents HostMonitor non résolus, incidents SIEM ouverts) ; status=all ajoute l'historique de la période (alertes NetDiag envoyées, incidents ouverts dans la fenêtre). Chaque élément porte kind, severity (critical|high|medium|low|info), status (open|resolved), title, target et details propres à la source.
| Parameter | In | Type | Description |
|---|---|---|---|
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
status | query | open · all, default all | |
kind | query | string | Sources, séparées par des virgules : netdiag, hostmonitor, siem (toutes par défaut) |
limit | query | integer, default 200, max 500 |
Responses : 200 OK · 403 Portée manquante
POST /alerts/{id}/ack
Acquitter un incident HostMonitor ou SIEM — portée write:alerts
id tel que renvoyé par GET /alerts : hm-<n> (HostMonitor : acknowledged, la note va dans les notes de l'incident si elles sont vides) ou siem-<id> (SIEM : statut OPEN → ACKNOWLEDGED, note ajoutée aux actions). Les alertes NetDiag (nd-…) ne s'acquittent pas : elles se résolvent au retour à OK.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | string |
{
"note": "Pris en charge par l'astreinte, ticket #1234"
}Responses : 200 Acquitté · 400 Identifiant invalide ou alerte NetDiag · 404 Incident inconnu · 409 Déjà acquitté / plus ouvert
Disponibilité
GET /monitors
Moniteurs HostMonitor : état, dernier contrôle, disponibilité 24 h / 7 j / 30 j — portée read:monitors
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | ex. up, down, degraded |
active | query | 1 · 0 |
Responses : 200 OK
GET /monitors/{id}
Un moniteur
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer |
Responses : 200 OK · 404 Moniteur inconnu
GET /monitors/{id}/incidents
Incidents d'un moniteur (période par défaut : 30 jours, incidents en cours toujours inclus)
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer, default 100, max 500 |
Responses : 200 OK · 404 Moniteur inconnu
Inventaire
GET /inventory/assets
Actifs inventoriés : matériel, OS, rôles, risque CVE, logiciels en fin de vie — portée read:inventory
Pagination par curseur.
| Parameter | In | Type | Description |
|---|---|---|---|
q | query | string | Recherche dans hostname, fqdn, IP, OS |
limit | query | integer, default 100, max 500 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 Liste paginée
GET /inventory/assets/{id}
Un actif et ses logiciels installés (500 max)
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer |
Responses : 200 OK · 404 Actif inconnu
GET /inventory/software
Logiciels installés, tous actifs confondus
Filtres has_cve=1 (au moins une CVE), eol=1 (statut eol : fin de vie atteinte, ou warning : fin de support proche ; unknown exclu).
| Parameter | In | Type | Description |
|---|---|---|---|
q | query | string | Recherche dans nom, éditeur |
has_cve | query | 1 | |
eol | query | 1 | |
limit | query | integer, default 200, max 1000 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 Liste paginée
GET /inventory/cves
Vulnérabilités détectées (logiciel × CVE) avec description, CVSS, EPSS, exploitation connue
| Parameter | In | Type | Description |
|---|---|---|---|
min_cvss | query | number | |
status | query | string | ex. open, acknowledged, mitigated |
limit | query | integer, default 200, max 1000 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 Liste paginée
Assistants IA
POST /mcp
Serveur MCP (Model Context Protocol) en lecture seule
Transport Streamable HTTP sans état : envoyez les messages JSON-RPC 2.0 (initialize, tools/list, tools/call, ping) en POST avec le même jeton. 58 outils en lecture seule couvrant tous les modules, chacun appelant la route v1 correspondante : portées, quota et journal s'appliquent. tools/list ne montre que les outils couverts par les portées du jeton. Voir la section « Assistants IA » de la documentation pour la configuration de Claude Code et Claude Desktop.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "netdiag_summary",
"arguments": {
"hostname": "POSTE-01",
"period": "24h"
}
}
}Responses : 200 Réponse JSON-RPC · 202 Notification reçue (sans corps) · 401 Jeton absent ou invalide
Exploitation
GET /maintenance
Fenêtres de maintenance — portée read:monitors
Fenêtres ponctuelles et récurrentes, sondes couvertes (covers = all | some | none), active_now. Une liste de sondes vide couvre tout le tenant.
| Parameter | In | Type | Description |
|---|---|---|---|
active | query | string | 1 = seulement celles actives maintenant |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /heartbeats
Heartbeats — portée read:monitors
Traitements planifiés qui doivent se signaler : dernier signal, code de sortie, état.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /profiles
Profils applicatifs — portée read:monitors
Profils (sondes, requêtes de contrôle, fenêtres, paramètres) et leurs déploiements.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /profiles/{id}
Définition d'un profil — portée read:monitors
Document complet firstsi-profile/1, avec la trace de vérification.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /profiles/deployments/{id}/compare
Écarts d'un déploiement de profil — portée read:monitors
Pour chaque élément : conforme, modifie (champ, attendu, réel), absent, non_deploye, indetermine.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Sécurité
GET /security/logons
Ouvertures de session Active Directory — portée read:security
Événements 4624 (réussite) et 4625 (échec) : compte, postes source et cible, adresse, type d'ouverture, raison de l'échec. Fenêtre bornée à 7 jours (meta.window_capped). Pagination par curseur.
| Parameter | In | Type | Description |
|---|---|---|---|
user | query | string | Compte (partiel) |
host | query | string | Poste source ou cible (partiel) |
source_ip | query | string | Adresse source exacte |
result | query | string | success / failure |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer, default 100, max 500 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/lockouts
Verrouillages et déverrouillages de comptes — portée read:security
Événements 4740 et 4767 ; fenêtre par défaut 7 jours, 90 au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
user | query | string | Compte (partiel) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/account-changes
Changements de l'annuaire — portée read:security
Comptes, groupes, ordinateurs, stratégie d'audit, objets d'annuaire (47xx, 5136-5141) : auteur, cible, attribut. Fenêtre par défaut 7 jours, 90 au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
user | query | string | Auteur, compte visé ou objet (partiel) |
type | query | string | account / group / computer / policy / directory |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer, default 100, max 500 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/risky-accounts
Comptes les plus à risque — portée read:security
Classement issu du graphe des connexions (administrateur, postes atteints, échecs, centralité).
| Parameter | In | Type | Description |
|---|---|---|---|
limit | query | integer | 50 par défaut, 200 au plus |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/anomalies
Anomalies de comportement — portée read:security
Écarts au comportement habituel détectés par SI-Tracer.
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | Statut |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/incidents
Incidents SIEM — portée read:security
status=open pour ceux en cours (OPEN, ACKNOWLEDGED, INVESTIGATING) ; sinon incidents actifs sur la période.
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | open ou statut précis |
severity | query | string | CRITICAL / HIGH / MEDIUM / LOW |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 100 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/incidents/{id}
Détail d'un incident SIEM — portée read:security
Incident et ses 200 derniers événements corrélés.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | string |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /security/rules
Règles de corrélation SIEM — portée read:security
Règles globales du produit et règles propres au tenant.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Bases de données
GET /databases/instances
Instances surveillées — portée read:databases
Version, édition, état ; jamais le compte ni le mot de passe enregistrés.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/instances/{id}/metrics
Indicateurs d'une instance — portée read:databases
CPU, mémoire, connexions, latences d'E/S, attentes ; 500 points au plus, fenêtre de 31 jours au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/instances/{id}/slow-queries
Requêtes lentes — portée read:databases
Triées par durée ; sans le plan d'exécution.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
min_ms | query | integer | Durée minimale |
limit | query | integer | 50 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/instances/{id}/top-queries
Requêtes les plus coûteuses — portée read:databases
Cumul des instantanés sur la période (7 jours au plus), par CPU, durée ou lectures.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
by | query | string | cpu / duration / reads |
limit | query | integer | 20 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/instances/{id}/sessions
Sessions : qui exécute quoi — portée read:databases
Échantillons de sessions actives (compte, poste, programme, attente, bloqué par, requête).
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
login | query | string | Compte (partiel) |
limit | query | integer | 100 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/instances/{id}/blocking
Blocages — portée read:databases
Session bloquante, durée, requêtes.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/alerts
Alertes DB Monitor — portée read:databases
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | open / all |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/checks
Requêtes de contrôle — portée read:databases
Requêtes métier en lecture seule et leur dernier résultat.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /databases/checks/{id}/results
Historique d'une requête de contrôle — portée read:databases
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Pare-feu
GET /firewall/devices
Pare-feu et passerelles déclarés — portée read:firewall
Équipements dont les journaux syslog et les flux IPFIX sont relayés par un agent du site.
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /firewall/events
Journaux des pare-feu — portée read:firewall
Journaux analysés (WatchGuard, UniFi, CEF, LEEF, clé=valeur) : category (auth, vpn, tunnel, ids, deny, allow, admin, system, other), action (success, failure, blocked, allowed, detected, changed, up, down, info), compte, adresses, service. ad_events : événements du contrôleur de domaine rapprochés (même compte, ±15 s), qui ne voient que l'adresse du pare-feu. Fenêtre de 7 jours au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
category | query | string | Catégorie |
action | query | string | Action |
device_id | query | integer | Équipement |
user | query | string | Compte (partiel) |
ip | query | string | Adresse source ou destination exacte |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 100 par défaut, 1000 au plus |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /firewall/traffic
Trafic des passerelles — portée read:firewall
Flux IPFIX / NetFlow v9 agrégés par heure complète : plus gros émetteurs et principales destinations. Fenêtre de 31 jours au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
device_id | query | integer | Équipement |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 20 par défaut, 200 au plus |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /firewall/threats
Adresses malveillantes contactées — portée read:firewall
Une ligne par appareil interne, adresse externe et jour : source de l'observation (gateway, firewall, agent), indicateur, identification de l'appareil, statut, incident SIEM. Période par défaut : 30 jours.
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | open / acknowledged |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 100 par défaut, 500 au plus |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /firewall/report
Rapport de la période — portée read:firewall
Synthèse, comptes visés (dont comptes réels de l'annuaire), adresses attaquantes, connexions réussies, menaces, trafic bloqué, tunnels, état de la collecte, incidents. Le PDF est disponible dans l'interface.
| Parameter | In | Type | Description |
|---|---|---|---|
period | query | string | 24h / 7d / 30d / 90d (défaut 7d) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
DNS
GET /dns/resolutions
Résolutions DNS des postes — portée read:dns
Fenêtre de 7 jours au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
machine | query | string | Nom d'hôte exact |
domain | query | string | Domaine (partiel) |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 100 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /dns/top-domains
Domaines les plus demandés — portée read:dns
| Parameter | In | Type | Description |
|---|---|---|---|
machine | query | string | Nom d'hôte exact |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer | 50 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /dns/threats
Requêtes vers des domaines malveillants — portée read:dns
| Parameter | In | Type | Description |
|---|---|---|---|
acknowledged | query | string | 0 / 1 |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /dns/server-queries
Journaux des serveurs DNS — portée read:dns
Si la collecte des serveurs DNS est active.
| Parameter | In | Type | Description |
|---|---|---|---|
domain | query | string | Domaine (partiel) |
suspicious | query | string | 1 = seulement les suspectes |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Fichiers
GET /files/events
Accès aux fichiers partagés — portée read:files
Qui a lu, créé, modifié, supprimé ou renommé quoi ; fenêtre de 31 jours au plus ; pagination par curseur.
| Parameter | In | Type | Description |
|---|---|---|---|
user | query | string | Utilisateur (partiel) |
path | query | string | Chemin (partiel) |
type | query | string | Type d'action |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
limit | query | integer, default 100, max 1000 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /files/summary
Synthèse des accès aux fichiers — portée read:files
Volumes par action, utilisateurs et dossiers les plus actifs.
| Parameter | In | Type | Description |
|---|---|---|---|
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Infrastructure réseau
GET /network/sites
Sites — portée read:network
| Parameter | In | Type | Description |
|---|---|---|---|
q | query | string | Nom ou ville (partiel) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/devices
Équipements réseau — portée read:network
Pagination par curseur.
| Parameter | In | Type | Description |
|---|---|---|---|
site_id | query | integer | Site |
type | query | string | Type d'équipement |
status | query | string | État |
q | query | string | Nom, IP ou modèle (partiel) |
limit | query | integer, default 100, max 500 | |
cursor | query | string | Valeur meta.next_cursor de la page précédente |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/devices/{id}
Un équipement, ses liens WAN et interfaces — portée read:network
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/devices/{id}/metrics
Indicateurs d'un équipement — portée read:network
500 points au plus.
| Parameter | In | Type | Description |
|---|---|---|---|
id (required) | path | integer | |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/tunnels
Tunnels VPN inter-sites — portée read:network
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | État |
site_id | query | integer | Site |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/alerts
Alertes réseau — portée read:network
| Parameter | In | Type | Description |
|---|---|---|---|
status | query | string | open / all |
period | query | 1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24h | Fenêtre glissante jusqu'à maintenant (ignorée si from/to) |
from | query | string (date-time) | Début (ISO 8601, UTC) |
to | query | string (date-time) | Fin (ISO 8601, UTC) |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
GET /network/ports
Ports ouverts découverts — portée read:network
| Parameter | In | Type | Description |
|---|---|---|---|
ip | query | string | Adresse exacte |
port | query | integer | Port |
state | query | string | État |
limit | query | integer | 200 par défaut |
Responses : 200 OK · 403 Portée absente du jeton · 404 Élément inconnu dans ce tenant
Source: · FirstSI Docs · updated 2026-10-10