Skip to main content
Search the PhishTank community database for phishing sites that impersonate your brand. Use it to find live and historical phishing pages built around your name or domain, so you can confirm an active campaign and push the URLs to takedown. This source is asynchronous. You submit a search, poll until it finishes, then read the matching phishing pages.
1

Submit

Submit a brand term. The response returns a search request id you will poll and read against.
See create_phishing_search_request.
2

Poll

Poll the request by id until status shows the search is finished.
See get_phishing_search_request.
3

Read

Read the phishing pages. Pass the request id as searchrequest. Results are paginated.
See list_phishing_search_result.

Request parameters

Every endpoint here costs 0 credits. Throttles are per day: 100 submits, 500 polls, and 500 result reads.

What comes back

The submit and poll endpoints both return the search request itself. The fields that matter while polling:
  • id — the search request ID; use it as searchrequest when you read results.
  • search_term — the brand term you submitted.
  • status — request state; poll until it reports finished.
  • create_date / update_date — when the request was created and last updated.
The read endpoint returns a paginated object — count, next, previous, and a results array. Each result is one phishing page:
  • id — result ID.
  • link — the phishing URL.
  • phish_id — the PhishTank submission ID for the page.
  • verified — whether the PhishTank community confirmed it as phishing.
  • online — whether the page was still live at last check.
  • target — the brand PhishTank recorded the page as targeting.
  • date_created — when the page was recorded.
  • source — origin of the record.
  • detail — raw PhishTank metadata for the entry.
  • searchrequest — the parent search request ID.
Treat verified and online pages as live takedown candidates — pull the link and phish_id, file the abuse report with the hosting provider, and re-run the search on a schedule to catch new variants of the same campaign.