Skip to main content
For up to 10 keywords, find which domains have harvested URLs or page titles containing that keyword, along with occurrence and unique-victim counts. Useful for discovering internal tools, admin panels, or staging environments that may have been exposed — e.g. searching "admin-panel" or "jenkins" across your domain’s exposed browser history.

Request

POST /v1/search/keyword · Required scope: search:keyword (pro and ultra tiers) · Not paginated
ParameterTypeRequiredDefaultDescription
keywordsstring[]YesUp to 10 keywords to match against harvested URLs and page titles, e.g. ["admin-panel", "jenkins"]
start_datestring (date-time) | nullNoInclusive start filter, clamped by query_window_days
end_datestring (date-time) | nullNoInclusive end filter
limitintegerNo251–25 (note: lower max than other search endpoints)
This endpoint is counted as an aggregation request against your tier’s agg_per_min limit — see Rate Limits & Tiers.

Example request

curl -X POST https://api.vantaprism.me/v1/search/keyword \
  -H "api-key: $VANTAPRISM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "keywords": ["admin-panel", "jenkins"], "limit": 25 }'

Response

200 OK — array of KeywordSearchResult. nextCursor is not present — this endpoint is not paginated.
{
  "data": [
    {
      "keyword": "admin-panel",
      "domain": "acme-corp.com",
      "occurrences": 14,
      "unique_victims": 6
    },
    {
      "keyword": "jenkins",
      "domain": "acme-corp.com",
      "occurrences": 3,
      "unique_victims": 2
    }
  ],
  "meta": {
    "request_id": "req_01HZXK3Q7N8YV6F3M2P9JABCDE",
    "took_ms": 88.1,
    "tier": "pro",
    "masked_fields": []
  }
}
FieldDescription
keywordWhich of your searched keywords this row matches
domainDomain on which the keyword was found in a harvested URL or title
occurrencesTotal number of matching browser-history entries
unique_victimsNumber of distinct victims with at least one match

Not paginated

This endpoint is capped by limit (max 25) and returns all matches in a single response — cursor/sort_direction do not apply.

Errors

StatuscodeCause
400VALIDATION_ERRORkeywords is empty or exceeds 10 items, or limit exceeds 25
403FORBIDDEN_SCOPEKey lacks search:keyword (free tier)
429RATE_LIMIT_EXCEEDEDExceeded your tier’s agg_per_min
See Errors for the full catalog.

Tier notes

This endpoint requires search:keyword, which is not included on the free tier — a free-tier key receives 403 FORBIDDEN_SCOPE. To see the individual matching URLs behind these aggregate counts, use Keyword → URLs.