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": {}
}
requestIdest injecté par le middleware de contexte quand disponible.detailsest optionnel.
Exemples de codes fréquents
Auth / clés
MISSING_API_KEYINVALID_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/errorsi présents
Format d’erreur structuré (sendError)
{
"ok": false,
"code": "MACHINE_CODE",
"error": "Human readable message",
"requestId": "<optional>",
"details": {}
}
| Field | Type | Notes |
|---|---|---|
ok | boolean | Toujours false. |
code | string | Code machine stable. |
error | string | Message lisible. |
requestId | string | Optionnel (si middleware de contexte actif). |
details | object | Optionnel (indices, hints, metadata). |
Format minimal (legacy)
Certaines routes renvoient uniquement:
{ "error": "..." }
Statuts HTTP (convention)
| Status | Meaning |
|---|---|
| 400 | Validation / paramètres invalides. |
| 401 | Auth manquante ou clé invalide. |
| 403 | Auth valide mais action non autorisée (disabled/expired/scope). |
| 404 | Ressource introuvable. |
| 409 | Conflit (mode direct/run, idempotency conflict, état incompatible). |
| 410 | Ressource expirée (ex: captcha challenge, KYC session). |
| 429 | Rate limit / quota. |
| 5xx | Erreur serveur. |
Codes courants (Gateway / Marketplace)
| Code | Typical status | When |
|---|---|---|
MISSING_API_KEY | 401 | Header API key absent. |
INVALID_API_KEY | 401 | Clé inconnue. |
API_KEY_DISABLED | 403 | Clé désactivée/révoquée. |
API_KEY_EXPIRED | 403 | Clé expirée. |
SUBSCRIPTION_INACTIVE | 403 | Subscription non active. |
KEY_API_MISMATCH | 403 | Clé d’une autre API (Marketplace). |
SCOPE_DENIED | 403 | Scope ne couvre pas METHOD + path. |
UPSTREAM_NOT_ALLOWED | 400 | Upstream base URL non autorisée (sécurité). |
API_NOT_AVAILABLE | 403 | API Marketplace pas en statut publié/maintenance/deprecated. |
RUN_REQUIRED | 409 | Endpoint configuré run-only, appel direct refusé. |
DIRECT_REQUIRED | 409 | Endpoint configuré direct-only, run refusé. |
RATE_LIMIT_EXCEEDED | 429 | Limite atteinte (seconde/minute/heure). |
QUOTA_EXCEEDED | 429 | Quota mensuel dépassé. |
IDEMPOTENCY_CONFLICT | 409 | Même Idempotency-Key, payload différent. |
KEY_ENCRYPTION_NOT_CONFIGURED | 500 | API_KEY_ENCRYPTION_KEY manquante. |