Every endpoint returns a consistent JSON structure. This page documents the shared envelope, types, and error codes that apply across all endpoints.
Response envelope
Every response uses a consistent JSON envelope with five top-level fields:
success
boolean
true if the request was processed successfullydata
object
| null
null on error or when no data is returned)errorobjectShow child attributesHide child attributes
code
string
API_KEY_MISSING, VALIDATION_ERROR)message
string
details
object
null when success is true.
Tip
Include metadata.requestId from error responses when contacting support – it speeds up troubleshooting.
quotasobjectShow child attributesHide child attributes
creditsConsumed
number
workspaceobjectShow child attributesHide child attributes
id
string
hasUnlimitedCredits
boolean
allowDailyOvercost
boolean
creditsobjectShow child attributesHide child attributes
total
number
used
number
left
number
dailyLimitobjectShow child attributesHide child attributes
limit
number
used
number
left
number
nextReset
string
| null
null when no daily limit is configured.
minuteRateLimitobjectShow child attributesHide child attributes
limit
number
used
number
left
number
nextReset
string
| null
keyobjectShow child attributesHide child attributes
id
string
dailyLimitobjectShow child attributesHide child attributes
limit
number
used
number
left
number
nextReset
string
| null
null when no daily limit is configured.
minuteRateLimitobjectShow child attributesHide child attributes
limit
number
used
number
left
number
nextReset
string
| null
The key field is null when the request is made from the dashboard (no API key).
When authentication or quota context is unavailable (e.g. invalid API key), quotas may be omitted.
metadataobjectShow child attributesHide child attributes
requestId
string
executionTimeMs
number
updatedAt
string
Shared types
Some types are reused across multiple endpoints. They are documented here once to avoid repetition – individual endpoint pages reference them by name.
start
string
| null
end
string
| null
Error codes
| Status | Description |
|---|---|
400 |
Invalid JSON body or endpoint-specific business validation |
401 |
Missing or invalid API key |
402 |
No credits left, purchase more to continue. The free /check endpoints return NO_CREDITS |
404 |
Data not found |
422 |
Schema or validation error, disposable email domain, or missing webhook URL on async endpoints |
429 |
Rate limit exceeded , wait and retry after nextReset |
451 |
Data Subject Blocked , the profile has been removed per GDPR/CCPA data subject request |
5xx |
Temporary upstream or platform issue , retry with backoff |
Tip
For 429 errors, read the quotas.workspace.minuteRateLimit.nextReset field and retry after that timestamp.
Tip
For 5xx errors, use exponential backoff starting at 1 second.
Note
For async endpoints, the initial response is a standard V2 acknowledgement containing a webhookId. Retrieve the result via polling (recommended) or via webhook callback (advanced). Webhook callback payloads do not use the full V2 envelope.