Foutcodes
Bekijk de API-documentatie voor Foutcodes, aanvraagparameters, responsvelden, codevoorbeelden en foutafhandeling voor DomScan-integraties.
Foutcodes
Gestructureerde fouten
Elke API-fout geeft dezelfde JSON-structuur terug: een object error met een stabiele code, een leesbaar message, het type en de HTTP-status, de aanduiding of het retryable is, de request_id en een docs_url. De request_id komt altijd overeen met de responseheader X-Request-Id, dus vermeld deze wanneer u contact opneemt met support.
{
"error": {
"code": "INVALID_DOMAIN",
"message": "Ongeldig domeinformaat",
"suggestion": "Gebruik een registreerbaar domein zoals example.com",
"type": "validation_error",
"status": 400,
"retryable": false,
"request_id": "m5x7k2p-a9f3",
"docs_url": "https://domscan.net/docs/check-availability"
}
}
Foutvelden
| Veld | Beschrijving |
|---|---|
code | Stabiele, machineleesbare foutcode. Codes worden nooit hernoemd, dus u kunt er veilig op vertakken. |
message | Leesbare uitleg van de fout. De formulering kan veranderen, dus verwerk deze niet programmatisch. |
type | Brede foutcategorie, zoals validation_error, authentication_error of rate_limit_error. |
status | De HTTP-statuscode, herhaald in de body voor logs en wachtrijen. |
retryable | Of hetzelfde verzoek kan slagen als u het later opnieuw probeert. |
request_id | Unieke verzoek-ID. Komt overeen met de header X-Request-Id. |
docs_url | Link naar het documentatiegedeelte dat deze fout toelicht. |
suggestion | Optionele tip om het verzoek te corrigeren. |
details | Optionele gestructureerde context, zoals de toegestane methoden of de ongeldige parameter. |
retry_after | Optioneel aantal seconden om te wachten voordat u het opnieuw probeert. Wordt ook verzonden als de header Retry-After. |
Veelvoorkomende foutcodes
Dit zijn de codes die de meeste clients moeten afhandelen. Sommige endpoints geven specifiekere codes terug die dezelfde regels volgen; de volledige lijst met status, type en gedrag bij opnieuw proberen staat in de OpenAPI-specificatie onder x-domscan-error-codes. RATE_LIMIT_EXCEEDED wordt nog steeds geaccepteerd als alias van RATE_LIMITED.
| Code | HTTP-status | Type | Opnieuw te proberen | Beschrijving |
|---|---|---|---|---|
BAD_REQUEST |
400 | validation_error |
Nee | Ontbrekende of ongeldige parameters |
MISSING_PARAMETER |
400 | validation_error |
Nee | Een verplichte parameter ontbreekt |
INVALID_PARAMETER |
400 | validation_error |
Nee | Een parameter heeft een ongeldige waarde |
INVALID_JSON |
400 | validation_error |
Nee | De body van het verzoek is geen geldige JSON |
INVALID_DOMAIN |
400 | validation_error |
Nee | Ongeldige domeinindeling |
UNSUPPORTED_TLD |
400 | validation_error |
Nee | TLD niet ondersteund |
SUBDOMAIN_NOT_SUPPORTED |
400 | validation_error |
Nee | Dit endpoint accepteert registreerbare domeinen, geen subdomeinen |
VALIDATION_ERROR |
422 | validation_error |
Nee | Het verzoek is correct opgebouwd, maar kan niet worden verwerkt |
AUTH_REQUIRED |
401 | authentication_error |
Nee | Er is geen API-sleutel of sessie opgegeven |
INVALID_API_KEY |
401 | authentication_error |
Nee | De API-sleutel is ongeldig of is ingetrokken |
INSUFFICIENT_CREDITS |
402 | credits_error |
Nee | Uw account heeft niet genoeg credits voor dit verzoek |
FORBIDDEN |
403 | permission_error |
Nee | U hebt geen toestemming voor deze actie |
NOT_FOUND |
404 | not_found_error |
Nee | Het endpoint of de resource bestaat niet |
METHOD_NOT_ALLOWED |
405 | request_error |
Nee | Het endpoint bestaat, maar accepteert deze HTTP-methode niet. De header Allow vermeldt de ondersteunde methoden. |
CONFLICT |
409 | conflict_error |
Nee | Het verzoek botst met de huidige staat van de resource |
IDEMPOTENCY_CONFLICT |
409 | conflict_error |
Nee | De idempotentiesleutel is al gebruikt met een ander verzoek |
IDEMPOTENCY_KEY_REUSED |
422 | validation_error |
Nee | Deze Idempotency-Key is de afgelopen 24 uur al gebruikt voor een ander verzoek. Gebruik een nieuwe sleutel voor een nieuw verzoek. |
IDEMPOTENCY_IN_PROGRESS |
409 | conflict_error |
Ja | Een verzoek met deze Idempotency-Key loopt nog. Probeer het zo opnieuw om het opgeslagen antwoord te ontvangen. |
RATE_LIMITED |
429 | rate_limit_error |
Ja | Te veel verzoeken |
INTERNAL |
500 | api_error |
Nee | Onverwachte serverfout. Neem contact op met support en vermeld het verzoek-ID als de fout aanhoudt. |
UPSTREAM_ERROR |
502 | upstream_error |
Ja | Een upstreambron gaf een onbruikbaar antwoord terug |
UPSTREAM_UNAVAILABLE |
503 | upstream_error |
Ja | Een upstreambron is tijdelijk niet beschikbaar |
SERVICE_UNAVAILABLE |
503 | upstream_error |
Ja | De dienst is tijdelijk niet beschikbaar |
TIMEOUT |
504 | timeout_error |
Ja | Een upstreambron of register reageerde niet op tijd |
Richtlijnen voor opnieuw proberen
- Probeer het alleen opnieuw wanneer
retryablede waardetrueheeft. Bij validatie-, authenticatie- en rechtenfouten moet u eerst het verzoek corrigeren. - Als
retry_afterof de headerRetry-Afteraanwezig is, wacht dan minstens dat aantal seconden voor de volgende poging. - Gebruik anders exponentiële backoff met jitter, bijvoorbeeld 1, 2, 4 en 8 seconden, en stop na een paar pogingen.
- Stuur bij het aanmaken van batches en jobs een header
Idempotency-Keymee, zodat een herhaald verzoek nooit een dubbele job aanmaakt. - Bij andere POST-verzoeken die credits in rekening brengen, zorgt een
Idempotency-Key-header ervoor dat een nieuwe poging het opgeslagen antwoord teruggeeft in plaats van opnieuw te rekenen.
Compatibiliteit
Sinds 10 oktober 2026 gebruikt elk endpoint dit formaat. Velden die sommige endpoints al teruggaven, zoals credits_remaining, purchase_url, login_url, success of meta, blijven tijdens een compatibiliteitsperiode behouden, zodat bestaande integraties blijven werken. Lees foutdetails in nieuwe code uit het object error.