API Reference

Access phishunt's phishing intelligence programmatically. Free, open, no authentication required.

Introduction

The detection pipeline identifies active suspicious phishing sites in real time by monitoring multiple threat intelligence sources and Certificate Transparency logs. Data is enriched with IP geolocation, TLS certificate information, and detection verdicts.

Detection sources:

Pipeline schedule

ProcessFrequencyDescription
Detection pipelineEvery hourScans Certificate Transparency logs and checks threat intel sources for new suspicious phishing domains
Active site re-checkEvery 6 hoursRe-visits active sites, captures fresh screenshots, and updates detection verdicts
New registration scanDaily (00:30 UTC)Scans newly registered domains for suspicious keyword patterns
Data enrichmentOn detectionIP geolocation, ASN, TLS certificate, and hosting organization via ipinfo.io

Authentication

No authentication required. All endpoints are open and free to use. Just send a request - no API keys, no tokens, no sign-up.

Rate limits

API and feed endpoints are rate-limited to 10 requests per second per IP, with a burst allowance of 20. Exceeding this limit returns a 429 response.

Base URL

https://phishunt.io

Get domains

Returns active suspicious phishing domains with enrichment data including IP geolocation, TLS certificate, and detection verdicts from multiple sources.

GET /api/v1/domains

Query parameters

ParameterTypeDescription
limit integer Number of results to return. Default 100, max 1000.
offset integer Number of results to skip for pagination. Default 0, max 10000.
format string Response format: json, csv, or txt. Default json.
company string Filter by targeted brand (e.g. amazon, paypal). See targeted brands.
since ISO 8601 Only entries after this date (e.g. 2026-03-01).

Example request

# Get the latest 50 suspicious phishing domains
curl "https://phishunt.io/api/v1/domains?limit=50"

# Filter by targeted brand
curl "https://phishunt.io/api/v1/domains?company=amazon"

# Get entries since a date in CSV format
curl "https://phishunt.io/api/v1/domains?since=2026-03-01&format=csv"

# Paginate: get results 101-200
curl "https://phishunt.io/api/v1/domains?offset=100&limit=100"

Example response

{
  "count": 2,
  "offset": 0,
  "limit": 100,
  "results": [
    {
      "url": "https://amazon.example-phish.com/signin",
      "domain": "amazon.example-phish.com",
      "company": "amazon",
      "date": "2026-03-27T14:30:00+00:00",
      "first_seen": "2026-03-25T09:12:00+00:00",
      "uuid": "54889cb5-146d-484f-8b94-7a0b7385bff7",
      "ip": "198.51.100.42",
      "country": "United States",
      "asn": "64496",
      "org": "Example Hosting Inc.",
      "cert": "Let's Encrypt R3",
      "malicious_google": false,
      "malicious_openphish": true,
      "malicious_phishtank": false,
      "malicious_tweetfeed": false,
      "malicious_urlscan": true
    }
  ]
}

Feeds

Download the complete active suspicious phishing feed. Updated every hour. Full dataset with no filtering - use the domains endpoint for query parameters.

Feed files return all active entries as a download. The JSON feed is a flat array (no wrapper object). The TXT feed contains one URL per line. Import the OpenAPI spec into Postman or Insomnia.

Response fields

Each object in the results array (or feed entries) contains these fields.

FieldTypeDescription
urlstringFull URL of the suspicious site
domainstringDomain name including subdomains
companystringTargeted brand slug (e.g. amazon, paypal)
datedatetimeLast check timestamp (ISO 8601)
first_seendatetimeWhen the site was first detected (ISO 8601)
uuidstringUnique identifier for this entry (UUID v4)
ipstringResolved IPv4 address
countrystringHosting country name
asnstringAutonomous System Number (e.g. 13335)
orgstringHosting organization
certstringTLS certificate issuer
malicious_googlebooleantrue if flagged by Google Safe Browsing
malicious_openphishbooleantrue if present in OpenPhish feed
malicious_phishtankbooleantrue if present in PhishTank
malicious_tweetfeedbooleantrue if present in TweetFeed
malicious_urlscanbooleantrue if flagged by urlscan.io

Pagination

Use offset and limit to paginate through results. The response includes both values so you can compute the next page.

# Page 1
curl "https://phishunt.io/api/v1/domains?limit=100&offset=0"

# Page 2
curl "https://phishunt.io/api/v1/domains?limit=100&offset=100"

# Page 3
curl "https://phishunt.io/api/v1/domains?limit=100&offset=200"

When count is less than limit, you've reached the last page.

Status codes

CodeDescription
200 Success. Response body contains the requested data.
400 Bad request. Invalid parameter value (e.g. malformed since date).
429 Rate limited. Back off and retry.

Notes

CORS - All API responses include Access-Control-Allow-Origin: *, so you can call the API from browser applications.
Terms - Data is provided on a best-effort basis. False positives may occur. See Terms of Service.
IP geolocation data powered by ipinfo.io.