Référence API

AfriPhish expose une API REST sous /api/v1. L'accès programmatique à l'API nécessite la formule Pro ou supérieure.

URL de basehttps://api.afriphish.com/api/v1 (votre déploiement peut différer). La documentation OpenAPI interactive est servie sur /docs côté backend.

Authentification

L'API utilise des jetons porteurs JWT. Obtenez-en un en vous connectant :

curl -X POST https://api.afriphish.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{ "email": "admin@yourcompany.com", "password": "••••••••" }'
{ "access_token": "eyJ…", "refresh_token": "eyJ…" }

Envoyez le jeton d'accès à chaque requête :

curl https://api.afriphish.com/api/v1/organizations/me \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Les jetons d'accès ont une durée de vie courte (15 min). Échangez un jeton de rafraîchissement contre une nouvelle paire sur POST /auth/refresh.

Points de terminaison courants

Méthode et cheminDescription
GET /plansCatalogue public des formules
GET /organizations/meVotre organisation
GET /organizations/me/entitlementsFormule actuelle, sièges, fonctionnalités, essai
POST /organizations/me/logoTéléverse/remplace le logo de l'organisation
GET /usersListe les utilisateurs
POST /users/inviteInvite un utilisateur
GET /users/rolesCatalogue des rôles attribuables
GET /phishing/campaignsListe les campagnes
POST /phishing/campaignsCrée une campagne
GET /training/modulesListe les modules de formation
GET /policiesListe les politiques
GET /policies/{id}/rosterRegistre des signatures (signées / non signées)
POST /policies/{id}/notifyDiffuse une politique à signer
GET /interventions/rulesRègles de coaching
GET /reports/catalogueRapports disponibles
GET /reports/download/{key}Exporte un rapport (?format=csv|json|pdf|html)
GET /legal/documentsModèles de documents juridiques (DPA / CGU / Confidentialité)

Erreurs

Codes de statut HTTP standards. Quelques-uns à connaître :

  • 401 Unauthorized — jeton manquant/expiré.
  • 402 Payment Required — votre formule n'inclut pas cette fonctionnalité, ou votre essai a expiré. Montez en gamme pour la débloquer. Voir Formules.
  • 403 Forbidden — votre rôle n'est pas autorisé, un plafond de sièges a été atteint, ou l'organisation est désactivée.

Les corps d'erreur sont au format JSON :

{ "detail": "Your plan does not include this feature. Upgrade to unlock it." }

Limites de débit

Les points de terminaison sont soumis à des limites de débit par catégorie (auth, tracking, default). Si vous dépassez une limite, vous recevrez 429 Too Many Requests ; patientez puis réessayez.


Des questions sur l'API ? Écrivez à sales@afriphish.com et nous vous mettrons en contact avec un ingénieur.