Overview
Every successful response (HTTP2xx) is a JSON object with a data field
and a meta field. The shape of data depends on the endpoint:
data shape | Used by |
|---|---|
Array + nextCursor | Cursor-paginated list endpoints (most search/* and data/* endpoints) |
Array, no nextCursor | Non-paginated aggregations that return multiple rows (stats/families, stats/countries, stats/timeline, search/keyword) |
| Single object | Single-resource and aggregation endpoints (domain/overview, domain/assets, victims/{id}, account, search/infection-analysis, search/categorize-domains, stats/overview) |
Paginated list response
Non-paginated array response
Single-object response
GET /v1/account returns only data with no meta — see its
reference page.
The meta object
| Field | Type | Always present | Description |
|---|---|---|---|
request_id | string | yes | Unique ID for this request. Include this when contacting support about a specific call. |
took_ms | number | yes | Server-side processing time in milliseconds. |
tier | free | pro | ultra | yes | The tier of the API key that made the request. |
masked_fields | string[] | no | Names of fields in data that were masked or converted to a has_* boolean for this tier. Empty/absent if nothing was masked. See Data Masking. |
freshness_at | string (ISO 8601) | null | no | Timestamp of the most recent underlying data point — present on cached/aggregated responses (e.g. stats/*, domain/overview). |
Errors don’t use this envelope
Error responses use a separate{ "error": { ... } } shape — see
Errors.