Aller au contenu principal
DiffHook/Documentation
Référence APIGestion des erreurs

Gestion des erreurs

Format d'erreur

La plupart des erreurs d'API renvoient un objet JSON avec une seule chaîne error :

{ "error": "Monitor not found" }

Certaines erreurs incluent des champs supplémentaires :

Les erreurs de limite de débit (429) incluent un champ retry_after_seconds :

{
  "error": "Too many requests",
  "retry_after_seconds": 60
}

Les erreurs de jeton OAuth suivent RFC 6749 et incluent un error_description :

{
  "error": "invalid_client",
  "error_description": "Invalid client credentials"
}

Codes d'état HTTP

StatutSignification
400Mauvaise demande — champs manquants ou invalides
401Non authentifié : jeton manquant, invalide ou expiré
403Interdit : jeton valide mais autorisations insuffisantes ou limite du plan atteinte
404Ressource introuvable
429Limite de débit atteinte — réessayez
500Erreur de serveur interne : transitoire, réessayez avec interruption
503Service indisponible – la dépendance en amont (par exemple, le fournisseur OAuth) est en panne

Messages d'erreur courants

MessagesStatutQue s'est-il passé
"Authorization header missing or invalid"401Pas d'en-tête Authorization: Bearer <token>
"Invalid or expired token"401Le jeton a expiré ou a été falsifié — réauthentifier
"Invalid API key"401La clé API utilisée pour générer ce jeton a été révoquée
"Monitor not found"404Aucun moniteur avec cet ID n'existe dans votre équipe
"Your plan allows a maximum of N monitors"403Mettez à niveau votre plan pour créer plus de moniteurs
"Too many requests"429Vous avez dépassé la limite de débit — voir le champ retry_after_seconds
"Internal server error"500Erreur de serveur transitoire : réessayez avec une interruption exponentielle

Gestion des erreurs dans le code

const res = await fetch('https://www.diffhook.com/api/monitors', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${accessToken}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
})

if (!res.ok) {
  const body = await res.json()
  const message = body.error

  if (res.status === 429) {
    const retryAfter = body.retry_after_seconds ?? 60
    // wait and retry
  } else if (res.status === 401) {
    // re-authenticate with POST /api/oauth/token
  } else {
    console.error(message)
  }
}

Erreurs 5xx

Les erreurs du serveur sont transitoires. Réessayez avec un intervalle exponentiel : la plupart sont résolus en quelques secondes. Si un 500 ou 503 persiste pendant plus de quelques minutes, consultez notre page d'état ou envoyez un e-mail à support@diffhook.com.

DiffHook - Surveillance de sites web