Aller au contenu principal
Version: 1.0.0

Référence des erreurs

Cette page documente chaque erreur que l'API Scan Cert-IX peut retourner, organisée par catégorie. Utilisez-la comme référence lors du débogage de vos intégrations.

Format de réponse

Toutes les réponses d'erreur suivent une enveloppe JSON cohérente :

{
"success": false,
"error": "Description lisible de l'erreur",
"code": "CODE_MACHINE_LISIBLE"
}
ChampDescription
successToujours false pour les erreurs
errorMessage descriptif expliquant le problème
codeCode d'erreur stable et lisible par machine pour le traitement programmatique

Codes de statut HTTP

StatutCatégorieSignification
400Erreur clientRequête invalide — JSON malformé, champs requis manquants, paramètres invalides
401AuthentificationClé API manquante, invalide, expirée ou révoquée
403AutorisationClé valide mais portée insuffisante, IP non autorisée ou type d'analyse non permis
404Non trouvéLa ressource n'existe pas ou n'appartient pas à votre tenant
409ConflitConflit d'état de ressource (ex. : annuler une analyse déjà terminée)
429Limite de débitLimite de débit ou quota dépassé
500Erreur serveurErreur interne — contactez le support si persistante
503IndisponibleService temporairement indisponible — réessayez avec backoff

Erreurs d'authentification (401)

CodeMessageCauseRésolution
MISSING_API_KEYLa clé API est requisePas d'en-tête X-API-Key fourniAjoutez l'en-tête X-API-Key à votre requête
INVALID_API_KEYClé API invalideLe format est incorrect ou la clé n'existe pasVérifiez que la clé commence par cix_sk_
KEY_EXPIREDLa clé API a expiréLa clé a dépassé sa date expiresAtCréez une nouvelle clé ou effectuez une rotation
KEY_REVOKEDLa clé API a été révoquéeLa clé a été explicitement révoquéeCréez une nouvelle clé
KEY_SUSPENDEDLa clé API a été suspendueLa clé a été suspendue par un administrateurContactez l'administrateur de votre organisation

Erreurs d'autorisation (403)

CodeMessageCauseRésolution
INSUFFICIENT_SCOPEPortée insuffisante : nécessite {scope}La clé n'a pas la portée requiseCréez une nouvelle clé avec la portée requise
SCAN_TYPE_NOT_ALLOWEDType d'analyse {type} non autoriséallowedScanTypes de la clé n'inclut pas ce moteurMettez à jour la clé ou créez-en une autorisant ce type
IP_NOT_ALLOWEDIP source non dans la liste autoriséeL'IP de la requête n'est pas dans allowedIpAddressesAjoutez l'IP source à l'allowlist ou supprimez les restrictions
TENANT_SUSPENDEDLe compte du tenant est suspenduLe compte de votre organisation a été suspenduContactez [email protected]

Erreurs d'analyse (400 / 404 / 409)

CodeHTTPMessageRésolution
SCAN_NOT_FOUND404Analyse non trouvéeVérifiez l'ID d'analyse et le paramètre scanType
INVALID_SCAN_TYPE400Type d'analyse invalide : {type}Utilisez un moteur valide : nmap, zap, trivy, nuclei, nikto, sqlmap, wapiti, harvester, sublist3r, sentinel
INVALID_TARGET400Format de cible invalideVérifiez que la cible correspond au format attendu pour le type d'analyse
INVALID_PRIORITY400Priorité invalide : {value}Utilisez : critical, high, normal ou low
SCAN_ALREADY_COMPLETED409L'analyse est déjà terminéeImpossible d'annuler une analyse ayant atteint un état terminal
SCAN_ALREADY_CANCELLED409L'analyse est déjà annuléeL'analyse a déjà été annulée
SCAN_ALREADY_FAILED409L'analyse a déjà échouéImpossible d'annuler une analyse en échec
RESULTS_NOT_READY409Les résultats ne sont pas encore disponiblesAttendez que l'analyse atteigne le statut completed

Erreurs de modèles (400 / 404)

CodeHTTPMessageRésolution
TEMPLATE_NOT_FOUND404Modèle d'analyse non trouvéVérifiez l'ID du modèle
TEMPLATE_NAME_REQUIRED400Le nom du modèle est requisFournissez un champ name
DUPLICATE_TEMPLATE_NAME400Le nom du modèle existe déjàUtilisez un nom unique

Erreurs de webhooks (400 / 404)

CodeHTTPMessageRésolution
WEBHOOK_NOT_FOUND404Webhook non trouvéVérifiez l'ID du webhook
INVALID_WEBHOOK_URL400L'URL du webhook doit utiliser HTTPSAssurez-vous que votre URL commence par https://
WEBHOOK_URL_UNREACHABLE400Impossible de joindre l'URL du webhookVérifiez que votre endpoint est accessible publiquement
INVALID_WEBHOOK_EVENT400Type d'événement invalide : {event}Utilisez des événements valides : scan.completed, scan.failed, scan.started, scan.cancelled
WEBHOOK_DISABLED409Webhook désactivé suite à des échecs consécutifsRéactivez avec PATCH et corrigez votre endpoint

Erreurs de limite de débit et quotas (429)

CodeMessageRésolution
RATE_LIMIT_EXCEEDEDLimite de débit dépassée. Réessayez dans {N} secondes.Implémentez un backoff exponentiel ; vérifiez l'en-tête Retry-After
QUOTA_EXCEEDEDQuota mensuel d'analyses dépasséMettez à niveau votre plan ou attendez la prochaine période de facturation

Erreurs de validation (400)

CodeMessageRésolution
INVALID_JSONLe corps de la requête n'est pas du JSON valideVérifiez votre syntaxe JSON
MISSING_REQUIRED_FIELDChamp requis manquant : {field}Incluez tous les champs requis
INVALID_FIELD_TYPELe champ {field} doit être de type {type}Corrigez le type de données du champ
INVALID_PAGELa page doit être un entier positifUtilisez page ≥ 1
INVALID_LIMITLa limite doit être entre 1 et 100Utilisez limit entre 1 et 100

Erreurs serveur (500 / 503)

CodeMessageRésolution
INTERNAL_ERRORUne erreur interne du serveur s'est produiteRéessayez avec backoff ; contactez le support si persistant
SERVICE_UNAVAILABLEService temporairement indisponibleRéessayez avec backoff ; vérifiez status.cert-ix.com
DATABASE_ERRORL'opération de base de données a échouéRéessayez ; contactez le support si persistant
KAFKA_ERRORL'opération de file de messages a échouéRéessayez ; la file d'attente peut être temporairement congestionnée

Guide de dépannage

« 401 — MISSING_API_KEY »

Vérifiez : Passez-vous l'en-tête X-API-Key ?

# ✅ Correct
curl -H "X-API-Key: cix_sk_..." https://api.cert-ix.com/scan-api/api/v1/scans

# ❌ Incorrect — clé dans les paramètres URL
curl "https://api.cert-ix.com/scan-api/api/v1/scans?apiKey=cix_sk_..."

# ❌ Incorrect — utilisation de l'en-tête Authorization
curl -H "Authorization: Bearer cix_sk_..." https://api.cert-ix.com/scan-api/api/v1/scans

« 403 — INSUFFICIENT_SCOPE »

Votre clé n'a pas la portée requise. Vérifiez quelle portée est nécessaire dans le message d'erreur, puis créez une nouvelle clé ou mettez à jour l'existante avec la portée requise.

« 404 — SCAN_NOT_FOUND »

Causes les plus courantes :

  1. Mauvais scanType — Si vous avez créé une analyse zap, vous devez interroger avec ?scanType=zap
  2. Mauvais ID d'analyse — Revérifiez l'UUID
  3. Tenant différent — Les clés d'organisations différentes ne peuvent pas voir les analyses des autres

« 429 — RATE_LIMIT_EXCEEDED »

Implémentez un backoff exponentiel :

import time

def requete_avec_backoff(func, max_retries=5):
for tentative in range(max_retries):
response = func()
if response.status_code != 429:
return response
retry_after = int(response.headers.get("Retry-After", 2 ** tentative))
print(f"Limité. Réessai dans {retry_after}s...")
time.sleep(retry_after)
raise Exception("Nombre maximum de tentatives dépassé")

« 429 — QUOTA_EXCEEDED »

Options :

  1. Mettez à niveau votre plan pour un quota plus élevé
  2. Attendez la prochaine période de facturation (1er du mois, minuit UTC)
  3. Optimisez — Réduisez les analyses inutiles ou utilisez des modèles avec des options plus restreintes

« 500 — INTERNAL_ERROR »

  1. Réessayez — La plupart des erreurs 500 sont transitoires
  2. Vérifiez status.cert-ix.com pour les informations de panne
  3. Contactez [email protected] avec l'ID de requête de la réponse d'erreur

Prochaines étapes :