Reference API Zaxyr
Documentation technique complete : endpoints REST, authentification, webhooks, SDKs et codes d'erreur.
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 -H "Authorization: Bearer cy_live_abc123..." \
https://api.zaxyr.com/v1/frameworksNe 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.
/oauth/authorize/oauth/token/oauth/revokeEndpoints
AI
3 endpointsCompliance
3 endpointsRisk
2 endpointsAudit
2 endpointsAssets
2 endpointsIncidents
3 endpointsWebhooks
Configurez des webhooks pour recevoir des notifications en temps reel. Chaque requete inclut une signature HMAC-SHA256 pour verification.
Configuration
- 1Rendez-vous dans Settings > Webhooks de votre console.
- 2Ajoutez votre URL endpoint (HTTPS obligatoire).
- 3Selectionnez les evenements a ecouter.
- 4Copiez le secret de signature pour verifier les requetes entrantes.
Evenements disponibles
| Evenement | Description |
|---|---|
incident.created | Nouvel incident de securite cree |
incident.updated | Statut ou details d'un incident modifies |
incident.resolved | Incident clos et resolu |
assessment.completed | Evaluation de conformite terminee |
assessment.score_changed | Score de conformite modifie |
risk.created | Nouveau risque enregistre |
risk.mitigated | Risque attenue ou traite |
risk.escalated | Risque escalade (severite augmentee) |
audit.finding_added | Nouveau constat ajoute a un audit |
audit.action_completed | Action corrective terminee |
asset.discovered | Nouvel actif decouvert (scan) |
asset.classification_changed | Classification CIA modifiee |
user.login_failed | Tentative de connexion echouee |
user.role_changed | Role d'un utilisateur modifie |
Verification HMAC-SHA256 (Node.js / 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"));SDKs
Bibliotheques officielles pour Python, JavaScript et Go. Type-safe, avec retry automatique et gestion d'erreurs integree.
pip install zaxyrfrom 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
| Plan | Requetes | Burst | Webhooks |
|---|---|---|---|
| Starter | 100 / min | 20 / sec | 10 events / sec |
| Professional | 500 / min | 50 / sec | 50 events / sec |
| Enterprise | 2 000 / min | 200 / sec | 200 events / sec |
| Sovereign | Illimite | Custom | Custom |
Headers de reponse
X-RateLimit-LimitNombre max de requetes par fenetreX-RateLimit-RemainingRequetes restantes dans la fenetre actuelleX-RateLimit-ResetTimestamp Unix de remise a zero du compteurRetry-AfterSecondes a attendre avant la prochaine requete (si 429)Codes d'Erreur
| Code | Nom | Description |
|---|---|---|
| 400 | Bad Request | Requete invalide — verifiez le payload JSON et les champs requis. |
| 401 | Unauthorized | API key manquante ou invalide. Verifiez le header Authorization. |
| 403 | Forbidden | Permissions insuffisantes pour cette ressource. Verifiez les scopes de votre cle. |
| 404 | Not Found | Ressource inexistante. Verifiez l'ID et le chemin de l'endpoint. |
| 429 | Too Many Requests | Limite de taux depassee. Respectez les headers Retry-After et X-RateLimit-*. |
| 500 | Internal Server Error | Erreur interne. Retentez apres quelques secondes. Si persistant, contactez le support. |
Format de reponse d'erreur
{
"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"
}
}