Documentation développeur

API REST publique

OpenAPI 3.0 — consommez les utilisateurs, progrès, score de conformité et exports SIEM depuis vos outils GRC, BI, HRIS. Auth Bearer, rate-limit, exports SIEM CEF/CIM.

Authentification

Header Authorization: Bearer hxa_xxx. Crée la clé dans /admin/api-keys (Pro+ minimum).

Rate limit

Variable selon endpoint. Evidence-export plafonné à 10 req/h pour éviter les abus.

Format SIEM

Endpoint /evidence-export accepte format=splunk-cim-v1 ou sentinel-cef-v1.

Endpoints

GET/api/v1/usersUsers

Liste des utilisateurs du tenant

Retourne les users actifs avec risk score, niveau, dernière connexion. Pour le provisioning, préférer SCIM /scim/v2/Users.

Requête

curl -X GET "https://humanix-academie.fr/api/v1/users?limit=50" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

Réponse (200)

{
  "users": [
    {
      "id": "clxyz123...",
      "email": "alice@acme.fr",
      "name": "Alice Martin",
      "role": "LEARNER",
      "service": "Comptabilité",
      "isActive": true,
      "riskScore": 72,
      "coins": 145,
      "level": 3,
      "lastSeenAt": "2026-05-09T08:14:23Z"
    }
  ],
  "total": 42
}
GET/api/v1/progressProgress

Avancement des utilisateurs

Rows Progress (un par paire user/episode). Idéal pour exports vers HRIS, BI, SIEM.

Requête

curl -X GET "https://humanix-academie.fr/api/v1/progress?since=2026-04-01T00:00:00Z" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

Réponse (200)

{
  "progress": [
    {
      "userEmail": "alice@acme.fr",
      "saisonSlug": "phishing",
      "episodeSlug": "01-mail-du-pdg",
      "status": "COMPLETED",
      "score": 85,
      "bestQuizScorePct": 100,
      "completedAt": "2026-05-08T14:23:45Z"
    }
  ],
  "total": 215
}
GET/api/v1/saisonsContent

Catalogue des saisons / parcours

Saisons publiées (globales + customs du tenant) avec compteur d'épisodes.

Requête

curl -X GET "https://humanix-academie.fr/api/v1/saisons" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

Réponse (200)

{
  "saisons": [
    {
      "slug": "phishing",
      "title": "Phishing & ingénierie sociale",
      "coverEmoji": "🎣",
      "order": 1,
      "isPublished": true,
      "episodeCount": 6
    }
  ]
}
GET/api/v1/conformity-scoreCompliance

Score de conformité agrégé

KPIs agrégés du tenant pour reporting GRC (NIS2, RGPD, ISO 27001).

Requête

curl -X GET "https://humanix-academie.fr/api/v1/conformity-score" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

Réponse (200)

{
  "tenantName": "ACME SAS",
  "framework": "ISO27001:2022",
  "masteryAverage": 71.4,
  "activationRate": 92,
  "mandatoryCompletionRate": 78,
  "generatedAt": "2026-05-09T12:00:00Z"
}
GET/api/v1/evidence-exportSIEM

Export de preuves SIEM-ready

Format compatible SIEM ou GRC : oscal-v1 (CISO Assistant, Eramba), splunk-cim-v1 (HEC), sentinel-cef-v1 (Sentinel/QRadar).

Requête

# Splunk CIM (NDJSON, ingestion HEC directe)
curl -X GET "https://humanix-academie.fr/api/v1/evidence-export?framework=ISO27001:2022&format=splunk-cim-v1" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

# Microsoft Sentinel CEF
curl -X GET "https://humanix-academie.fr/api/v1/evidence-export?framework=NIS2&format=sentinel-cef-v1" \
  -H "Authorization: Bearer hxa_xxxxxxxxxxxx"

Réponse (200)

# Splunk CIM v1 (NDJSON, 1 event par ligne)
{"time":1715241600,"host":"humanix-academie.fr","sourcetype":"humanix:compliance","event":{"control_id":"A.6.3","status":"compliant","severity":"informational"}}
{"time":1715241600,"host":"humanix-academie.fr","sourcetype":"humanix:compliance","event":{"control_id":"A.7.2","status":"partial","severity":"medium"}}

Pour le provisioning automatique des utilisateurs (Microsoft Entra ID, Okta), préférer SCIM 2.0. Pour les alertes temps réel (Slack, Teams, Jira, ServiceNow, PagerDuty), préférer les webhooks.

Importez /api/v1/openapi.json dans Postman, Insomnia, ou utilisez openapi-typescript / openapi-generator pour générer un client typé.