Skip to main content

Endpoint

POST /v1/fraud-signals
Cost: 1–5 credits per request (dynamic) Built for risk and fraud teams who need a single, actionable decision. Use Fraud Signals when you want a composite fraud_score and risk_level you can gate on directly — not raw data to evaluate yourself. It’s the right choice for account opening checks, payment screening, and lead quality filtering where speed and simplicity matter more than field-level detail.
If you need the full structured breakdown per entity — geolocation, DNS health, carrier country, and more — see Contact Intelligence. It shares the same inputs but returns detailed enrichment data instead of a composite score.
Fraud Signals returns a unified risk assessment with a composite fraud score across email, phone, IP, and domain. You are only billed for the fields you include — omit any optional field to reduce the credit cost.
Fields providedCredits charged
email only1
email + ip2
email + phone3
email + domain3
email + ip + phone4
email + ip + domain4
All fields (email + phone + ip + domain)5

Request body

{
  "email": "alex@acme.com",
  "phone": "+447700900123",
  "ip": "8.8.8.8",
  "domain": "acme.com"
}
FieldTypeRequiredDescription
emailstringYesEmail address to validate
phonestringNoPhone number in E.164 format
ipstringNoIPv4 or IPv6 address
domainstringNoDomain to score (without protocol)

Example request

curl -X POST https://api.datalinkapis.com/v1/fraud-signals \
  -H "Authorization: Bearer dl_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "alex@acme.com",
    "phone": "+447700900123",
    "ip": "8.8.8.8",
    "domain": "acme.com"
  }'

Response

{
  "fraud_score": 8,
  "risk_level": "low",
  "email": {
    "address": "alex@acme.com",
    "valid": true,
    "deliverable": true,
    "disposable": false,
    "spam_trap": false,
    "role_account": false
  },
  "phone": {
    "number": "+447700900123",
    "valid": true,
    "reachable": true,
    "line_type": "mobile",
    "carrier": "EE",
    "ported": false
  },
  "ip": {
    "address": "8.8.8.8",
    "country_code": "US",
    "is_vpn": false,
    "is_proxy": false,
    "is_tor": false,
    "is_datacenter": true,
    "threat_score": 10
  },
  "domain": {
    "domain": "acme.com",
    "registered": true,
    "age_days": 10580,
    "disposable": false,
    "safety_score": 92
  },
  "credits_used": 5
}

Response fields

FieldTypeDescription
fraud_scoreintegerComposite fraud risk score 0–100. Higher = higher risk.
risk_levelstringlow, medium, or high based on fraud_score
emailobjectEmail risk signals
email.addressstringNormalised email address
email.validbooleanPasses syntax and DNS checks
email.deliverablebooleanSMTP-confirmed deliverable
email.disposablebooleanTemporary/throwaway address
email.spam_trapbooleanKnown spam trap address
email.role_accountbooleanRole address (e.g. info@, support@)
phoneobjectPhone risk signals (present when phone was provided)
phone.numberstringE.164 formatted number
phone.validbooleanValid, dialable number
phone.reachablebooleanLive HLR confirms number is active
phone.line_typestringmobile, landline, voip, or unknown
phone.carrierstringCurrent network operator
phone.portedbooleanNumber has been ported — a common fraud vector
ipobjectIP risk signals (present when ip was provided)
ip.addressstringQueried IP address
ip.country_codestringISO 3166-1 alpha-2 country code
ip.is_vpnbooleanKnown VPN exit node
ip.is_proxybooleanKnown proxy
ip.is_torbooleanTor exit node
ip.is_datacenterbooleanDatacenter IP — real users rarely originate from these
ip.threat_scoreintegerProvider threat score 0–100
domainobjectDomain risk signals (present when domain was provided)
domain.domainstringQueried domain
domain.registeredbooleanDomain is registered
domain.age_daysintegerDays since registration (-1 if unknown)
domain.disposablebooleanKnown disposable/temporary domain
domain.safety_scoreintegerDomain trust score 0–100
credits_usedintegerCredits deducted — 1–5 depending on fields provided
Fraud Signals surfaces risk-specific fields not available in Contact Intel: email.spam_trap, ip.is_datacenter, and phone.ported. Contact Intel surfaces enrichment-oriented fields instead: email.mx_found, ip.city, phone.country_code, and domain.dns_healthy.

Risk level thresholds

fraud_score rangerisk_level
0–30low
31–69medium
70–100high

Use cases

  • Account opening fraud — score new signups before granting access
  • Payment fraud prevention — run a full entity check before processing a transaction
  • KYB / onboarding — validate that a business contact’s details are consistent and legitimate
  • Lead scoring — filter out low-quality or fraudulent leads before they enter your CRM
The fraud_score is a composite signal derived from all provided data types. It is designed to surface risk — a high score does not confirm fraud, but warrants additional scrutiny or a manual review step.