ScamVerify™
Email

Email Analysis

Analyze email content and headers for phishing, scam patterns, and sender authenticity. Includes SPF/DKIM/DMARC validation, sender domain analysis, brand impersonation detection, and embedded URL/phone extraction with sub-lookups. **Authentication boosts:** SPF/DKIM failures add +15 to risk score. Return-path mismatch adds +10. Auth failures also trigger verdict floor promotion. **Quota:** Consumes 1 email quota. Sub-lookups do NOT consume additional quota.

POST
/email/analyze

Analyze email content and headers for phishing, scam patterns, and sender authenticity. Includes SPF/DKIM/DMARC validation, sender domain analysis, brand impersonation detection, and embedded URL/phone extraction with sub-lookups.

Authentication boosts: SPF/DKIM failures add +15 to risk score. Return-path mismatch adds +10. Auth failures also trigger verdict floor promotion.

Quota: Consumes 1 email quota. Sub-lookups do NOT consume additional quota.

Authorization

BearerAuth
AuthorizationBearer <token>

API key from your Developer Dashboard. Keys start with sv_live_ (production) or sv_test_ (test mode).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://scamverify.ai/api/v1/email/analyze" \  -H "Content-Type: application/json" \  -d '{    "email_body": "Dear Customer, We have detected unusual activity on your account. Please verify your identity by clicking the link below within 24 hours or your account will be suspended.",    "sender_email": "security@bank-alerts.example.com",    "subject": "Urgent: Account Verification Required",    "raw_headers": "Received: from mail.example.com\nAuthentication-Results: spf=fail; dkim=fail; dmarc=fail\nReturn-Path: <bounces@spam-server.example.net>"  }'
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "message_hash": "string",
  "risk_score": 100,
  "verdict": "safe",
  "confidence": 1,
  "explanation": "string",
  "red_flags": [
    "string"
  ],
  "scam_type": "string",
  "sender_analysis": {
    "domain": "string",
    "domain_age_days": 0,
    "brand_impersonation": {
      "detected": true,
      "brand": "string"
    }
  },
  "header_analysis": {
    "spf": "pass",
    "dkim": "pass",
    "dmarc": "pass",
    "return_path_mismatch": true
  },
  "extracted": {
    "phone_numbers": [
      "string"
    ],
    "urls": [
      "string"
    ]
  },
  "sub_lookups": {
    "phones": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "phone_number": "string",
        "normalized": "string",
        "risk_score": 100,
        "verdict": "safe",
        "confidence": 1,
        "explanation": "string",
        "signals": {
          "ftc_complaints": 0,
          "ftc_most_recent": "2019-08-24",
          "ftc_categories": [
            "string"
          ],
          "fcc_complaints": 0,
          "carrier": "string",
          "line_type": "landline",
          "caller_name": "string",
          "robocall_flagged": true,
          "high_risk_carrier": true,
          "community_reports": 0,
          "community_scam_rate": 0
        },
        "sources_checked": [
          "string"
        ],
        "cached": true,
        "cache_expires_at": "2019-08-24T14:15:22Z",
        "created_at": "2019-08-24T14:15:22Z"
      }
    ],
    "urls": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "url": "string",
        "domain": "string",
        "risk_score": 100,
        "verdict": "safe",
        "confidence": 1,
        "explanation": "string",
        "signals": {
          "domain_age_days": 0,
          "registrar": "string",
          "ssl_issuer": "string",
          "ssl_age_days": 0,
          "redirect_count": 0,
          "brand_impersonation": {
            "detected": true,
            "brand": "string",
            "confidence": 0
          },
          "google_web_risk": "string",
          "urlhaus_listed": true,
          "threatfox_listed": true,
          "ipqs_risk_score": 0,
          "community_reports": 0
        },
        "sources_checked": [
          "string"
        ],
        "cached": true,
        "cache_expires_at": "2019-08-24T14:15:22Z",
        "created_at": "2019-08-24T14:15:22Z"
      }
    ]
  },
  "unified_risk_score": 100,
  "sources_checked": [
    "string"
  ],
  "cached": true,
  "created_at": "2019-08-24T14:15:22Z"
}
{
  "error": {
    "code": "validation_error",
    "message": "Invalid request body",
    "details": {
      "issues": [
        {
          "field": "phone_number",
          "message": "phone_number is required"
        }
      ]
    }
  }
}

{
  "error": {
    "code": "missing_api_key",
    "message": "Authorization header is required. Use 'Bearer sv_live_...' format."
  }
}

{
  "error": {
    "code": "quota_exhausted",
    "message": "Monthly phone quota exhausted. Upgrade your plan for more lookups.",
    "upgrade_url": "https://scamverify.ai/settings/api"
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Please wait before making another request.",
    "retry_after": 12
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred. Please try again later."
  }
}