Skip to main content
GET
Search identifications by Identification ID, user, device, visitor, session, cookie or IPv4 address. Results are scoped to the domain of your Private API Key.

Authentication

string
required
Bearer PRIVATE_API_KEY. Use the domain’s Private API Key, not its browser Public Key or Management Secret Key.
An empty data array is valid: no matching result is stored yet, or none matches in this domain. For a new Identification ID, use a bounded retry or an SDK retrieval helper. Handle an unavailable result explicitly.

Path parameters

string
required
One of identification_id, user_hid, device_id, visitor_id, ip, session_id or cookie_id.
string
required
The identifier to match, URL-encoded once. ip accepts IPv4 addresses.
Unsupported search types return 400. Empty values, . or .., slashes, backslashes, control characters and values longer than 1,024 bytes are rejected. Local IPs have no search type.

Query parameters

integer
default:"20"
Number of rows to return, from 1 to 100.
integer
default:"0"
Non-negative number of matching rows to skip.
Invalid, empty or repeated pagination parameters return 400, including a limit outside 1–100.

Response

The endpoint returns a JSON object. The example shows a shortened History row.
object[]
required
Matching identifications, newest first. An empty array is valid. See History row fields.
integer
required
Total matches for this identifier and domain, before pagination.
History and webhooks have different field names: History rows include identity, score, selected is_* flags and optional traffic-attribution fields. They do not expose the full webhook flag catalog. Server SDKs can normalize either operating-system mismatch result into detection_flags.os_mismatch. Use webhook signals for the weighted explanation of a new check.

Pagination

Search by the pseudonymous User HID and page with offset:
The example deliberately caps the read and reports truncation. New identifications can arrive during offset pagination; use identification_id to deduplicate rows if you save them. Treat a maximum score over these rows as a summary of the retrieved sample, not the analytics dashboard’s current identity category. History reads do not consume identification quota. The History endpoint allows 15 requests per second per domain; back off on 429. It retrieves individual checks, not a replay of multi-account group changes.

Errors

A 200 response with an empty data array is not an API error. Do not assume that every error body includes code. Authentication middleware can return JSON text with a non-JSON content type.