Greyphish

API Reference

Programmatic access to Greyphish threat intelligence data.

Base URL

https://api.greyphish.com/api/v1

Authentication

All requests require a Greyphish API key passed in the X-API-Key header. Keys are provisioned automatically when you subscribe to Greyphish Pro.

curl -H "X-API-Key: sk_live_your_key_here" \
  https://api.greyphish.com/api/v1/greyphish/stats

Rate Limits

Rate limits are per API key and enforced per endpoint. Response headers indicate your current usage:

HeaderDescription
X-RateLimit-LimitMax requests per minute
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the window resets
EndpointRate LimitMax Results
/greyphish/threats120/min5,000
/greyphish/threats/recent240/min500
/greyphish/stats240/min
/greyphish/domains/{}/whois60/min

Response Format

All responses follow a consistent envelope:

{
  "success": true,
  "data": { ... },
  "meta": {
    "credits_cost": 0,
    "credits_remaining": 9988,
    "rate_limit": 120,
    "rate_limit_remaining": 119,
    "execution_time_ms": 12,
    "result_count": 25,
    "total_results": 4200
  }
}

Errors return:

{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded for this endpoint"
  }
}

Endpoints

GET/greyphish/threatsmin: greyphish_pro

Paginated, filterable threat feed. Returns phishing domains detected from Certificate Transparency logs and ICANN zone files.

Query Parameters

ParamTypeDefaultDescription
limitint100Results per page (max 5,000)
offsetint0Pagination offset
daysint365Lookback window in days
brandstringFilter by target brand (partial match)
levelstringFilter by threat level: critical, high, medium, low
typestringFilter by threat type (e.g. typosquat)
sourcestringFilter by source: CT or CZDS
domainstringFilter by domain (partial match)
min_confidencefloatMinimum confidence score (0.0–1.0)

Example

curl -H "X-API-Key: sk_live_..." \
  "https://api.greyphish.com/api/v1/greyphish/threats?brand=paypal&level=critical&limit=10"

{
  "success": true,
  "data": {
    "threats": [
      {
        "id": 12345,
        "domain": "paypa1",
        "tld": "com",
        "full_domain": "paypa1.com",
        "source_type": "CT",
        "threat_level": "critical",
        "threat_type": "typosquat",
        "target_brand": "PayPal",
        "confidence": 0.97,
        "timestamp": "2026-03-06T14:22:01Z"
      }
    ],
    "pagination": {
      "limit": 10,
      "offset": 0,
      "total": 420
    }
  }
}
GET/greyphish/threats/recentmin: greyphish_pro

Returns the most recently detected threats, newest first. Designed for dashboard widgets and real-time monitoring.

ParamTypeDefaultDescription
limitint25Number of threats to return (max 500)

Example

curl -H "X-API-Key: sk_live_..." \
  "https://api.greyphish.com/api/v1/greyphish/threats/recent?limit=5"

{
  "success": true,
  "data": {
    "threats": [
      {
        "id": 45678,
        "full_domain": "arnazon-secure.net",
        "threat_level": "high",
        "threat_type": "combosquat",
        "target_brand": "Amazon",
        "confidence": 0.92,
        "source_type": "CT",
        "timestamp": "2026-03-06T16:01:33Z"
      }
    ]
  }
}
GET/greyphish/statsmin: greyphish_pro

Aggregate statistics across all detected threats. No parameters required.

Example

curl -H "X-API-Key: sk_live_..." \
  "https://api.greyphish.com/api/v1/greyphish/stats"

{
  "success": true,
  "data": {
    "total_threats": 128450,
    "total_scanned": 45000000,
    "by_threat_level": {
      "critical": 3200,
      "high": 18400,
      "medium": 62000,
      "low": 44850
    },
    "by_source_type": {
      "CT": 95000,
      "CZDS": 33450
    },
    "top_brands": [
      { "brand": "PayPal", "count": 12400 },
      { "brand": "Chase", "count": 9800 }
    ]
  }
}
GET/greyphish/domains/{domain}/whoismin: greyphish_pro

Returns cached WHOIS and DNS enrichment for a specific phishing domain. Returns 404 if the domain has not been enriched yet.

ParamTypeDefaultDescription
domainpathFully-qualified domain name (e.g. paypa1.com)

Example

curl -H "X-API-Key: sk_live_..." \
  "https://api.greyphish.com/api/v1/greyphish/domains/paypa1.com/whois"

{
  "success": true,
  "data": {
    "domain": "paypa1.com",
    "cached_at": "2026-03-06T12:00:00Z",
    "registrar": "NameCheap, Inc.",
    "country": "US",
    "created_date": "2026-03-01",
    "expires_date": "2027-03-01",
    "nameservers": ["ns1.example.com", "ns2.example.com"],
    "dns_a": ["192.0.2.1"]
  }
}

Threat Object

FieldTypeDescription
idintInternal ID
domainstringDomain label (without TLD)
tldstringTop-level domain
full_domainstringFull domain as detected
source_typestringCT (Certificate Transparency) or CZDS (zone file)
threat_levelstringcritical, high, medium, or low
threat_typestringSquatting pattern (typosquat, combosquat, etc.)
target_brandstringBrand being impersonated
confidencefloatMatch confidence score (0.0–1.0)
timestampdatetimeISO 8601 detection time
sourcestringSpecific CT log or zone file
industrystringIndustry vertical of the targeted brand
matched_patternstringdnstwist permutation that matched

Error Codes

CodeHTTPDescription
INVALID_API_KEY401Missing, invalid, or expired API key
ENDPOINT_NOT_ALLOWED403Key does not have access to this endpoint
RATE_LIMIT_EXCEEDED429Per-minute rate limit exhausted
NOT_FOUND404Resource not found (e.g. WHOIS not cached)
INVALID_REQUEST400Missing or invalid parameters
DATABASE_ERROR500Internal server error

© 2026 Sima Technologies LLC. All rights reserved.