Skip to main content
Check whether any infected machine has saved credentials or cookies for a given domain — the primary entry point for assessing an organization’s exposure to infostealer malware.

Request

POST /v1/domain/search · Required scope: search:domain (all tiers)
ParameterTypeRequiredDefaultDescription
domainsstring[]YesDomains to search, min 1 item. e.g. ["acme-corp.com"]
subdomainsstring[]No[]Restrict to specific subdomain labels, e.g. ["mail", "vpn"]. Takes priority over include_subdomains — see Overview
include_subdomainsbooleanNofalseWhen true and subdomains is empty, include all subdomains
typeemployees | users | bothNobothClassification filter — see Overview
start_datestring (date-time) | nullNoInclusive start filter on inserted_at. Clamped by your tier’s query_window_days
end_datestring (date-time) | nullNoInclusive end filter
sort_directionasc | descNodescMust stay constant across pages of the same query
cursorstring | nullNoPagination token from a previous response’s nextCursor
limitintegerNo251–500, clamped to your tier’s max_rows

Example request

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

Response

200 OK — array of DomainSearchResult, cursor-paginated.
{
  "data": [
    {
      "stealer_id": "RL-2026-AC91F3",
      "victim_id": "a3f1c9e8b2d4567890abcdef1234567890abcdef1234567890abcdef123456",
      "domain": "acme-corp.com",
      "url": "https://login.microsoftonline.com/common/oauth2",
      "username": "jondoe@*******.com",
      "password": "••••",
      "infection_date": "2026-05-02T14:22:31Z",
      "type": "employee"
    }
  ],
  "nextCursor": null,
  "meta": {
    "request_id": "req_01HZXK3Q7N8YV6F3M2P9JABCDE",
    "took_ms": 38.2,
    "tier": "free",
    "masked_fields": ["username", "password"]
  }
}
FieldDescription
stealer_idlog_victim_id of the infected machine that harvested this record
victim_idSHA-256 victim ID — use with Victim Profiles
domainRegistrable domain extracted from url
urlFull URL (no masking applied to this field on this endpoint)
usernameMasked via partial_login on free tier
passwordMasked to "••••" on free tier
infection_dateWhen the log was captured
typeemployee | user — present when classification matched

Pagination

Cursor-paginated — see Pagination. Pass nextCursor back as cursor to get the next page, keeping sort_direction constant.

Errors

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

Tier notes

  • Free tier masks username and password as shown above.
  • start_date older than your tier’s query_window_days is silently clamped (90 days on free, 365 on pro, unlimited on ultra).
  • limit above your tier’s max_rows (25 / 100 / 500) is clamped.