Skip to content
ZxR Cyber Sentinel 4.1 is available — Discover our AI models
Documentation
API Reference

Référence API Zaxyr

Documentation technique complète : endpoints REST, authentification, webhooks, SDKs et codes d'erreur.

Base URL : https://api.zaxyr.com/v1/v1.0 Stable

Authentification

API Keys (Bearer Token)

Méthode principale. Générez une clé dans Settings > API Keys de votre console Zaxyr. Passez-la dans le header Authorization de chaque requête.

cURL
curl -H "Authorization: Bearer cy_live_abc123..." \
     https://api.zaxyr.com/v1/frameworks

Ne partagez jamais vos clés API. Utilisez des variables d'environnement et le principe du moindre privilège (scopes read/write par ressource).

OAuth 2.0 (Partenaires)

Pour les intégrations partenaires, Zaxyr supporte le flow OAuth 2.0 Authorization Code. Contactez [email protected] pour obtenir vos client credentials.

Authorization
/oauth/authorize
Token
/oauth/token
Revoke
/oauth/revoke

Endpoints

AI

3 endpoints

Compliance

3 endpoints

Risk

2 endpoints

Audit

2 endpoints

Assets

2 endpoints

Incidents

3 endpoints

Webhooks

Configurez des webhooks pour recevoir des notifications en temps réel. Chaque requête inclut une signature HMAC-SHA256 pour vérification.

Configuration

  1. 1Rendez-vous dans Settings > Webhooks de votre console.
  2. 2Ajoutez votre URL endpoint (HTTPS obligatoire).
  3. 3Sélectionnez les événements à écouter.
  4. 4Copiez le secret de signature pour vérifier les requêtes entrantes.

Événements disponibles

ÉvénementDescription
incident.createdNouvel incident de sécurité créé
incident.updatedStatut ou détails d'un incident modifiés
incident.resolvedIncident clos et résolu
assessment.completedÉvaluation de conformité terminée
assessment.score_changedScore de conformité modifié
risk.createdNouveau risque enregistré
risk.mitigatedRisque atténué ou traité
risk.escalatedRisque escaladé (sévérité augmentée)
audit.finding_addedNouveau constat ajouté à un audit
audit.action_completedAction corrective terminée
asset.discoveredNouvel actif découvert (scan)
asset.classification_changedClassification CIA modifiée
user.login_failedTentative de connexion échouée
user.role_changedRôle d'un utilisateur modifié

Verification HMAC-SHA256 (Node.js / Express)

JavaScript : Express
const crypto = require("crypto");
const express = require("express");
const app = express();

app.use(express.json());

const WEBHOOK_SECRET = process.env.ZAXYR_WEBHOOK_SECRET;

function verifySignature(payload, signature) {
  const expected = crypto
    .createHmac("sha256", WEBHOOK_SECRET)
    .update(JSON.stringify(payload))
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

app.post("/webhooks/zaxyr", (req, res) => {
  const signature = req.headers["x-zaxyr-signature"];

  if (!signature || !verifySignature(req.body, signature)) {
    return res.status(401).json({ error: "Invalid signature" });
  }

  const { event, data } = req.body;

  switch (event) {
    case "incident.created":
      console.log("New incident:", data.id, data.severity);
      // Trigger your internal alert pipeline
      break;
    case "assessment.completed":
      console.log("Assessment done:", data.framework, data.score);
      break;
    case "risk.escalated":
      console.log("Risk escalated:", data.id, data.severity);
      break;
    default:
      console.log("Unhandled event:", event);
  }

  res.status(200).json({ received: true });
});

app.listen(3000, () => console.log("Webhook server on port 3000"));
Retry automatique : en cas d'échec (non-2xx), Zaxyr retente avec un backoff exponentiel : 1s, 5s, 30s, 5 minutes. Après 4 échecs consécutifs, l'événement est marqué comme échoué.

SDKs

Bibliothèques officielles pour Python, JavaScript et Go. Type-safe, avec retry automatique et gestion d'erreurs intégrée.

Installation
pip install zaxyr
Python
from zaxyr import ZaxyrClient

client = ZaxyrClient(api_key="YOUR_API_KEY")

# Gap analysis ISO 27001
assessment = client.compliance.assess(
    framework="iso-27001",
    include_recommendations=True
)
print(f"Score: {assessment.score}%")

# Chat avec ZxR Cyber Pro
response = client.ai.chat(
    model="zxr-cyber-pro",
    messages=[{"role": "user", "content": "Risques RGPD ?"}]
)
print(response.choices[0].message.content)

Limites de Taux

PlanRequetesBurstWebhooks
Starter100 / min20 / sec10 events / sec
Professional500 / min50 / sec50 events / sec
Enterprise2 000 / min200 / sec200 events / sec
SovereignIllimitéCustomCustom

Headers de réponse

X-RateLimit-LimitNombre max de requêtes par fenêtre
X-RateLimit-RemainingRequêtes restantes dans la fenêtre actuelle
X-RateLimit-ResetTimestamp Unix de remise à zéro du compteur
Retry-AfterSecondes à attendre avant la prochaine requête (si 429)

Codes d'Erreur

CodeNomDescription
400Bad RequestRequête invalide : vérifiez le payload JSON et les champs requis.
401UnauthorizedAPI key manquante ou invalide. Vérifiez le header Authorization.
403ForbiddenPermissions insuffisantes pour cette ressource. Vérifiez les scopes de votre clé.
404Not FoundRessource inexistante. Vérifiez l'ID et le chemin de l'endpoint.
429Too Many RequestsLimite de taux dépassée. Respectez les headers Retry-After et X-RateLimit-*.
500Internal Server ErrorErreur interne. Retentez après quelques secondes. Si persistant, contactez le support.

Format de réponse d'erreur

JSON
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Vous avez dépassé la limite de 500 requêtes/min.",
    "status": 429,
    "details": {
      "limit": 500,
      "remaining": 0,
      "reset_at": "2026-03-27T14:01:00Z"
    },
    "request_id": "req_abc123xyz"
  }
}

Prêt à Intégrer Zaxyr ?

Créez votre première clé API et commencez à automatiser votre cyber-gouvernance.