Updated 2026-09-29
Everything a phone number can tell you before you trust it: whether it is real and dialable, who carries it, whether it was made in an app, whether its SIM just moved, which accounts are linked to it - and a risk score that says why.
curl -X POST "https://api.digifootprint.dev/v2/phone" \
-H "Authorization: Bearer dfp_your_key" \
-H "Content-Type: application/json" \
-d '{"phone": "+14155552671", "checks": {"riskSignals": true}}'{
"lookupId": "aaf935d9-...",
"phone": {
"number": "+14155552671",
"valid": true,
"e164": "+14155552671",
"nationalFormat": "(415) 555-2671",
"countryCode": "US",
"carrier": "Bandwidth.com",
"lineType": "nonFixedVoip",
"isVoip": true,
"voipClass": "nonFixed",
"simSwap": null,
"risk": {
"score": 25,
"signals": [
{ "id": "phone.internet_number", "label": "Internet (VOIP) number", "points": 15, "severity": "medium" },
{ "id": "phone.unanchored_voip", "label": "VOIP number anyone can create in an app", "points": 10, "severity": "medium" }
]
}
}
}Validity and formats from the numbering plan itself: whether the number is a real allocated range, its E.164 and national form, country and calling code. Carrier and line type from carrier data, with isVoip as the shorthand and voipClass as the signal - fixed VOIP is a business line, non-fixed VOIP is the throwaway kind. SIM-swap and call-forwarding risk detection on higher plans.
Digital Footprint analyses phone numbers for risk. We do not provide calling, SMS, SIM or any telecom service.
Add the footprint to the same request (POST /v2/lookup with a phone) to see which platforms have an account for the number. A number with no accounts anywhere is itself a signal.
Unknown is never no. A field no source could answer is null, not false - so a missing SIM-swap check never reads as “safe”.