Error Response Format
API-generated errors generally use a consistent envelope, even when the successful response for that endpoint is raw JSON or a file stream:HTTP Status Codes
Do not assume every successful
2xx response includes a success field. Search endpoints and most point lookups do, but job endpoints, autocomplete endpoints, manifests, scanner endpoints, and download endpoints may not.Common Errors
400 Bad Request
- missing required parameters
- invalid
filterJSON - filter nesting deeper than 2 levels
- more than 50 filter leaf conditions
- unsupported filter operator or field for that endpoint
- wildcard-like patterns that are too short
- unsupported scanner
query_configkeys - malformed
filter_id
401 Unauthorized
- missing
x-api-key - revoked or invalid key
403 Forbidden
Typical causes:- daily lookup quota exhausted
- endpoint requires a higher plan
- scanner quota exhausted
- file search, exports, bulk search, or AI filter not enabled on the current plan
404 Not Found
Typical causes:- unknown
log_id,file_id,job_id,scanner_uid, orrun_uid - job or scanner exists but is not owned by the authenticated caller
429 Too Many Requests
Typical causes:- endpoint rate limit exceeded
- daily bulk-search limit reached
- scanner creation or test-delivery rate limits hit
Client Handling Pattern
When writing a client:- trust HTTP status first
- parse JSON when the endpoint is documented as JSON
- only inspect
successwhen the payload actually includes it - treat download endpoints as raw text or binary streams