Error codes
| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid request parameters |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Insufficient permissions for this endpoint |
| 404 | NOT_FOUND | Resource not found (domain, technology, etc.) |
| 409 | CONFLICT | Resource already exists |
| 429 | RATE_LIMIT | Rate limit exceeded — see rate limits |
| 500 | INTERNAL_ERROR | Server error — retry after a brief delay |
Examples
- 404 Not found
- 429 Rate limited
- 400 Validation
How to handle errors
Check the status code
Use the HTTP status code for control flow.
2xx means success, 4xx means client error, 5xx means server error.Read the error code
The
error.code field provides a machine-readable error type you can switch on in your code.Related pages
Rate limits
Request limits and retry strategies for 429 errors.
Authentication
Fix 401 errors with proper API key setup.
Credits
Avoid credit exhaustion errors with usage monitoring.
Live detection
Resolve 404 errors with real-time scanning.
Frequently asked questions
Which errors should I retry?
Which errors should I retry?
Retry
429 (rate limit) after waiting the Retry-After header value, and 500 (server error) with exponential backoff. Do not retry 400 (validation), 401 (auth), 403 (permissions), or 404 (not found) — these require fixing the request itself.Why am I getting 404 for a domain lookup?
Why am I getting 404 for a domain lookup?
The domain might not be in the pre-crawled database yet. Try the live detection endpoint (
POST /v1/technology-lookup-live) for real-time scanning. Live detection costs 5 credits.