ZxR Cyber Sentinel 4.1 est disponible — Découvrir nos modeles IA
Documentation
API Reference

Reference API Zaxyr

Documentation technique complete : 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éréz une clé dans Settings > API Keys de votre console Zaxyr. Passez-la dans le header Authorization de chaque requete.

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

Ne partagez jamais vos cles API. Utilisez des variables d'environnement et le principe du moindre privilege (scopes read/write par ressource).

OAuth 2.0 (Partenaires)

Pour les integrations partenaires, Zaxyr supporté 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 reel. Chaque requete inclut une signature HMAC-SHA256 pour verification.

Configuration

  1. 1Rendez-vous dans Settings > Webhooks de votre console.
  2. 2Ajoutez votre URL endpoint (HTTPS obligatoire).
  3. 3Sélectionnez les événements a ecouter.
  4. 4Copiez le secret de signature pour verifier les requetes entrantes.

Evenements disponibles

EvenementDescription
incident.createdNouvel incident de sécurité cree
incident.updatedStatut ou details d'un incident modifies
incident.resolvedIncident clos et resolu
assessment.completedÉvaluation de conformité terminee
assessment.score_changedScore de conformité modifie
risk.createdNouveau risque enregistre
risk.mitigatedRisque attenue ou traite
risk.escalatedRisque escalade (severite augmentee)
audit.finding_addedNouveau constat ajoute à un audit
audit.action_completedAction corrective terminee
asset.discoveredNouvel actif decouvert (scan)
asset.classification_changedClassification CIA modifiee
user.login_failedTentative de connexion echouee
user.role_changedRole d'un utilisateur modifie

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'echec (non-2xx), Zaxyr retente avec un backoff exponentiel : 1s, 5s, 30s, 5 minutes. Apres 4 echecs consecutifs, l'evenement est marque comme echoue.

SDKs

Bibliotheques 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
SovereignIllimiteCustomCustom

Headers de reponse

X-RateLimit-LimitNombre max de requetes par fenetre
X-RateLimit-RemainingRequetes restantes dans la fenetre actuelle
X-RateLimit-ResetTimestamp Unix de remise a zero du compteur
Retry-AfterSecondes a attendre avant la prochaine requete (si 429)

Codes d'Erreur

CodeNomDescription
400Bad RequestRequete invalide : verifiez le payload JSON et les champs requis.
401UnauthorizedAPI key manquante ou invalide. Verifiez le header Authorization.
403ForbiddenPermissions insuffisantes pour cette ressource. Verifiez les scopes de votre cle.
404Not FoundRessource inexistante. Verifiez l'ID et le chemin de l'endpoint.
429Too Many RequestsLimite de taux dépassee. Respectez les headers Retry-After et X-RateLimit-*.
500Internal Server ErrorErreur interne. Retentez apres quelques secondes. Si persistant, contactez le support.

Format de reponse d'erreur

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

Pret a Integrer Zaxyr ?

Creez votre première clé API et commencéz a automatiser votre cyber-gouvernance.