API (Technique)
Erreurs & conventions
Codes d’erreur et formats de réponse.

API — Erreurs & conventions

Format d’erreur standard (backend)

Plusieurs routes backend utilisent une réponse structurée :

{
  "ok": false,
  "error": "Human readable message",
  "code": "MACHINE_CODE",
  "requestId": "...",
  "details": {}
}
  • requestId est injecté par le middleware de contexte quand disponible.
  • details est optionnel.

Exemples de codes fréquents

Auth / clés

  • MISSING_API_KEY
  • INVALID_API_KEY

API — Erreurs & conventions

Selon la route, Datalgeria renvoie soit un format “minimal” ({ error: "..." }), soit un format structuré (helper sendError). Une intégration robuste doit:

  • se baser d’abord sur le code HTTP
  • lire ensuite code/error si présents

Format d’erreur structuré (sendError)

{
  "ok": false,
  "code": "MACHINE_CODE",
  "error": "Human readable message",
  "requestId": "<optional>",
  "details": {}
}
FieldTypeNotes
okbooleanToujours false.
codestringCode machine stable.
errorstringMessage lisible.
requestIdstringOptionnel (si middleware de contexte actif).
detailsobjectOptionnel (indices, hints, metadata).

Format minimal (legacy)

Certaines routes renvoient uniquement:

{ "error": "..." }

Statuts HTTP (convention)

StatusMeaning
400Validation / paramètres invalides.
401Auth manquante ou clé invalide.
403Auth valide mais action non autorisée (disabled/expired/scope).
404Ressource introuvable.
409Conflit (mode direct/run, idempotency conflict, état incompatible).
410Ressource expirée (ex: captcha challenge, KYC session).
429Rate limit / quota.
5xxErreur serveur.

Codes courants (Gateway / Marketplace)

CodeTypical statusWhen
MISSING_API_KEY401Header API key absent.
INVALID_API_KEY401Clé inconnue.
API_KEY_DISABLED403Clé désactivée/révoquée.
API_KEY_EXPIRED403Clé expirée.
SUBSCRIPTION_INACTIVE403Subscription non active.
KEY_API_MISMATCH403Clé d’une autre API (Marketplace).
SCOPE_DENIED403Scope ne couvre pas METHOD + path.
UPSTREAM_NOT_ALLOWED400Upstream base URL non autorisée (sécurité).
API_NOT_AVAILABLE403API Marketplace pas en statut publié/maintenance/deprecated.
RUN_REQUIRED409Endpoint configuré run-only, appel direct refusé.
DIRECT_REQUIRED409Endpoint configuré direct-only, run refusé.
RATE_LIMIT_EXCEEDED429Limite atteinte (seconde/minute/heure).
QUOTA_EXCEEDED429Quota mensuel dépassé.
IDEMPOTENCY_CONFLICT409Même Idempotency-Key, payload différent.
KEY_ENCRYPTION_NOT_CONFIGURED500API_KEY_ENCRYPTION_KEY manquante.