Skip to content
FirstSIDocs

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.

ParameterInTypeDescription
statusquerystringFiltre sur l'état de l'agent (ex. online, offline)
limitqueryinteger, default 100, max 500
cursorquerystringValeur 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

ParameterInTypeDescription
hostname (required)pathstringNom 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.

ParameterInTypeDescription
machinequerystringNom d'hôte exact ; absent = tous les postes du tenant
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d
fromquerystring (date-time)
toquerystring (date-time)
protocolqueryTCP · UDP
directionqueryinbound · outbound
remote_ipquerystringAdresse distante ; un préfixe suffit (ex. 10.20.0.)
remote_portqueryinteger
processquerystringNom du processus, correspondance partielle
destinationquerystringCherche dans l'adresse ET le nom d'hôte distant
include_listeningquery1Inclure les sockets en écoute, masquées par défaut (aucun pair en face)
limitqueryinteger, default 100, max 500
cursorquerystring

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).

ParameterInTypeDescription
sourcequeryagent · gateway · all, default agent
machinequerystringNom d'hôte exact ; absent = tous les postes du tenant
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d
fromquerystring (date-time)
toquerystring (date-time)
limitqueryinteger, 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.

ParameterInTypeDescription
machinequerystringNom d'hôte exact ; absent = tous les postes du tenant
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d
fromquerystring (date-time)
toquerystring (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.

ParameterInTypeDescription
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d
fromquerystring (date-time)
toquerystring (date-time)
limitqueryinteger, 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.

ParameterInTypeDescription
machinequerystringNom d'hôte exact
typequerystringType d'échec
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger100 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).

ParameterInTypeDescription
dimsquerystringDimensions séparées par des virgules (1 à 3)
sourcequerystringall / agent / gateway / firewall (journaux du pare-feu, mesure = connexions ; dimensions action, regle, categorie)
periodquerystring1h / 6h / 24h / 7d / 30d
metricquerystringbytes / flows
filterquerystringFiltre textuel
limitqueryintegerValeurs 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).

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
sourcequerystring
qquerystringTexte cherché dans le message
limitqueryinteger, default 200, max 1000
cursorquerystring

Responses : 200 Liste paginée

GET /netdiag/machines/{hostname}/apps

Applications suivies : verdicts, charge, dépendances réseau, sondes, tendance mémoire

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
langqueryfr · en, default fr
tzquerystring, 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.

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
Request body
{
  "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.

ParameterInTypeDescription
hostname (required)pathstringNom du poste (tel qu'affiché dans FirstSI)
Request body
{
  "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.

ParameterInTypeDescription
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
statusqueryopen · all, default all
kindquerystringSources, séparées par des virgules : netdiag, hostmonitor, siem (toutes par défaut)
limitqueryinteger, 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.

ParameterInTypeDescription
id (required)pathstring
Request body
{
  "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

ParameterInTypeDescription
statusquerystringex. up, down, degraded
activequery1 · 0

Responses : 200 OK

GET /monitors/{id}

Un moniteur

ParameterInTypeDescription
id (required)pathinteger

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)

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger, 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.

ParameterInTypeDescription
qquerystringRecherche dans hostname, fqdn, IP, OS
limitqueryinteger, default 100, max 500
cursorquerystringValeur 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)

ParameterInTypeDescription
id (required)pathinteger

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).

ParameterInTypeDescription
qquerystringRecherche dans nom, éditeur
has_cvequery1
eolquery1
limitqueryinteger, default 200, max 1000
cursorquerystringValeur 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

ParameterInTypeDescription
min_cvssquerynumber
statusquerystringex. open, acknowledged, mitigated
limitqueryinteger, default 200, max 1000
cursorquerystringValeur 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.

Request body
{
  "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.

ParameterInTypeDescription
activequerystring1 = 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.

ParameterInTypeDescription
id (required)pathinteger

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.

ParameterInTypeDescription
id (required)pathinteger

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.

ParameterInTypeDescription
userquerystringCompte (partiel)
hostquerystringPoste source ou cible (partiel)
source_ipquerystringAdresse source exacte
resultquerystringsuccess / failure
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger, default 100, max 500
cursorquerystringValeur 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.

ParameterInTypeDescription
userquerystringCompte (partiel)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
userquerystringAuteur, compte visé ou objet (partiel)
typequerystringaccount / group / computer / policy / directory
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger, default 100, max 500
cursorquerystringValeur 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é).

ParameterInTypeDescription
limitqueryinteger50 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.

ParameterInTypeDescription
statusquerystringStatut
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
statusquerystringopen ou statut précis
severityquerystringCRITICAL / HIGH / MEDIUM / LOW
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger100 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.

ParameterInTypeDescription
id (required)pathstring

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.

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
min_msqueryintegerDurée minimale
limitqueryinteger50 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.

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
byquerystringcpu / duration / reads
limitqueryinteger20 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).

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
loginquerystringCompte (partiel)
limitqueryinteger100 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.

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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

ParameterInTypeDescription
statusquerystringopen / all
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
categoryquerystringCatégorie
actionquerystringAction
device_idqueryintegerÉquipement
userquerystringCompte (partiel)
ipquerystringAdresse source ou destination exacte
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger100 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.

ParameterInTypeDescription
device_idqueryintegerÉquipement
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger20 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.

ParameterInTypeDescription
statusquerystringopen / acknowledged
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger100 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.

ParameterInTypeDescription
periodquerystring24h / 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.

ParameterInTypeDescription
machinequerystringNom d'hôte exact
domainquerystringDomaine (partiel)
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger100 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

ParameterInTypeDescription
machinequerystringNom d'hôte exact
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger50 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

ParameterInTypeDescription
acknowledgedquerystring0 / 1
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
domainquerystringDomaine (partiel)
suspiciousquerystring1 = seulement les suspectes
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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.

ParameterInTypeDescription
userquerystringUtilisateur (partiel)
pathquerystringChemin (partiel)
typequerystringType d'action
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (date-time)Fin (ISO 8601, UTC)
limitqueryinteger, default 100, max 1000
cursorquerystringValeur 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.

ParameterInTypeDescription
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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

ParameterInTypeDescription
qquerystringNom 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.

ParameterInTypeDescription
site_idqueryintegerSite
typequerystringType d'équipement
statusquerystringÉtat
qquerystringNom, IP ou modèle (partiel)
limitqueryinteger, default 100, max 500
cursorquerystringValeur 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

ParameterInTypeDescription
id (required)pathinteger

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.

ParameterInTypeDescription
id (required)pathinteger
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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

ParameterInTypeDescription
statusquerystringÉtat
site_idqueryintegerSite

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

ParameterInTypeDescription
statusquerystringopen / all
periodquery1h · 3h · 6h · 12h · 24h · 3d · 7d · 30d, default 24hFenêtre glissante jusqu'à maintenant (ignorée si from/to)
fromquerystring (date-time)Début (ISO 8601, UTC)
toquerystring (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

ParameterInTypeDescription
ipquerystringAdresse exacte
portqueryintegerPort
statequerystringÉtat
limitqueryinteger200 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