Foutcodes
Foutcodes
Alle API-fouten retourneren een consistent JSON-formaat:
{
"error": "Not Found",
"message": "Resume not found",
"statusCode": 404
}HTTP Statuscodes
| Code | Naam | Beschrijving |
|---|---|---|
200 | OK | Verzoek geslaagd |
201 | Created | Resource succesvol aangemaakt |
400 | Bad Request | Ongeldige verzoekbody of parameters |
401 | Unauthorized | Ontbrekende of ongeldige API-sleutel |
402 | Payment Required | Geen tegoed meer. Koop meer of wacht op de maandelijkse reset |
403 | Forbidden | Actie niet toegestaan (bijv. BYOK zonder abonnement) |
404 | Not Found | Resource bestaat niet |
413 | Payload Too Large | Bestandsupload overschrijdt de limiet van 10MB |
422 | Unprocessable Entity | Geldige JSON maar semantisch ongeldig (bijv. vacatureomschrijving te kort) |
429 | Too Many Requests | Frequentielimiet overschreden. Probeer opnieuw na de waarde van de Retry-After header |
500 | Internal Server Error | Er is iets misgegaan aan onze kant |
Veelvoorkomende Foutscenario's
Ontbrekende API-sleutel
{
"error": "Unauthorized",
"message": "Missing x-api-key header",
"statusCode": 401
}Oplossing: Voeg je API-sleutel toe aan de x-api-key header.
Ongeldige API-sleutel
{
"error": "Unauthorized",
"message": "Invalid API key",
"statusCode": 401
}Oplossing: Controleer je sleutel op console.laddro.com. Sleutels kunnen zijn ingetrokken.
Geen Tegoed
{
"error": "Payment Required",
"message": "No credits remaining. Purchase credits at console.laddro.com",
"statusCode": 402
}Oplossing: Koop een tegoed-pakket of wacht op de maandelijkse reset van de gratis versie.
BYOK Zonder Actief Abonnement
{
"error": "Forbidden",
"message": "BYOK requires an active recurring Laddro subscription",
"statusCode": 403
}Oplossing: Neem een abonnement op laddro.com met een doorlopend plan.
Ongeldige Providersleutel
{
"error": "Unprocessable Entity",
"message": "API key validation failed for provider 'anthropic': invalid_api_key",
"statusCode": 422
}Oplossing: Controleer je provider-API-sleutel opnieuw. De API valideert sleutels met een testaanroep voordat ze worden opgeslagen.
Retry Strategie
Voor 429- en 5xx-fouten, implementeer exponential backoff:
async function withRetry(fn: () => Promise<Response>, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fn()
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get('Retry-After') || '1')
await new Promise(r => setTimeout(r, retryAfter * 1000))
continue
}
return response
} catch (error) {
if (i === maxRetries - 1) throw error
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000))
}
}
}