Skip to main content
The most common End User Protection query: check whether an email address appears in stolen-credential records, e.g. during login, password-reset, or account-creation flows to warn users about credential reuse.

Request

POST /v1/search/emails · Required scope: search:login (all tiers)
ParameterTypeRequiredDefaultDescription
emailsstring[]YesEmail addresses to search, min 1 item. Lowercased automatically.
typeemployees | users | bothNobothSee Domain Intelligence Overview
start_datestring (date-time) | nullNoInclusive start filter, clamped by query_window_days
end_datestring (date-time) | nullNoInclusive end filter
sort_directionasc | descNodescMust stay constant across pages
cursorstring | nullNoPagination token
limitintegerNo251–500, clamped to your tier’s max_rows

Example request

curl -X POST https://api.vantaprism.me/v1/search/emails \
  -H "api-key: $VANTAPRISM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "emails": ["john.doe@acme-corp.com"], "limit": 25 }'

Response

200 OK — array of CredentialExposureResult, cursor-paginated.
{
  "data": [
    {
      "stealer_id": "RL-2026-AC91F3",
      "victim_id": "a3f1c9e8b2d4567890abcdef1234567890abcdef1234567890abcdef123456",
      "username": "john.doe@acme-corp.com",
      "password": "••••",
      "domain": "acme-corp.com",
      "url": "https://login.microsoftonline.com/***",
      "infection_date": "2026-05-02T14:22:31Z"
    }
  ],
  "nextCursor": null,
  "meta": {
    "request_id": "req_01HZXK3Q7N8YV6F3M2P9JABCDE",
    "took_ms": 33.5,
    "tier": "free",
    "masked_fields": ["password", "url"]
  }
}
FieldDescription
stealer_idlog_victim_id of the infected machine
victim_idSHA-256 victim ID — use with Victim Profiles
usernameReturned unmasked — exactly matches a value you searched for
passwordMasked to "••••" on free tier
domainRegistrable domain extracted from url
urlMasked to scheme://host/*** on free tier
infection_dateWhen the log was captured
Note that username is unmasked here even on free tier — it’s the exact email you searched for. See Data Masking.

Pagination

Cursor-paginated — see Pagination.

Errors

StatuscodeCause
400VALIDATION_ERRORemails is empty or exceeds limits
400INVALID_CURSORTampered or stale cursor
403FORBIDDEN_SCOPEKey lacks search:login
See Errors for the full catalog.

Tier notes

password and url are masked on free tier; username (the searched value) is always raw. start_date/limit clamping follows the standard per-tier rules in Rate Limits & Tiers.