Nouveau : Zaxyr Intelligence 2.0 est disponible
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)

Methode principale. Generez une cle 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 supporte le flow OAuth 2.0 Authorization Code. Contactez partners@zaxyr.com 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. 3Selectionnez les evenements a ecouter.
  4. 4Copiez le secret de signature pour verifier les requetes entrantes.

Evenements disponibles

EvenementDescription
incident.createdNouvel incident de securite cree
incident.updatedStatut ou details d'un incident modifies
incident.resolvedIncident clos et resolu
assessment.completedEvaluation de conformite terminee
assessment.score_changedScore de conformite modifie
risk.createdNouveau risque enregistre
risk.mitigatedRisque attenue ou traite
risk.escalatedRisque escalade (severite augmentee)
audit.finding_addedNouveau constat ajoute a 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 integree.

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 IMY
response = client.ai.chat(
    model="imy-3.2",
    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 depassee. 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 depasse 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 premiere cle API et commencez a automatiser votre cyber-gouvernance.