Assess identifier risk

A risk assessment scores more than the business as a whole. Identifier assessments score the individual identifiers on a business, including email addresses, phone numbers, and the website URL, so you can see which specific contact point carries the risk. Each scored identifier produces one entry in the identifier_assessments[] array on the risk assessment.

Identifier assessments complement risk dimensions. A dimension scores the business through one analytical lens, while an identifier assessment attaches a score and supporting facts to a single identifier Middesk evaluated.

Identifier assessment types

The object field on each entry identifies what kind of identifier the entry scores. There are three values:

ValueScoresDraws on
email_riskAn email address on the businessValidity, disposable address detection, and deliverability signals
phone_riskA phone number on the businessValidity, line activity, risky-behavior flags, recent abuse, prepaid detection, breach exposure, and spam reports
url_riskThe business’s website URLSuspicion flags, phishing and malware detection, domain parking, and domain trust ratings

The identifier assessment object

Every entry in identifier_assessments[] has the same shape regardless of type.

Example identifier assessment
1{
2 "object": "email_risk",
3 "id": "idr_1f6a9c04d2b7e853",
4 "resource": {
5 "type": "email_address",
6 "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
7 "value": "[email protected]"
8 },
9 "score": 0.87,
10 "attributes": [
11 { "name": "email_is_valid", "type": "boolean", "value": true },
12 { "name": "email_is_disposable", "type": "boolean", "value": true },
13 { "name": "email_deliverability_low", "type": "boolean", "value": true }
14 ]
15}
FieldTypeDescription
objectstringThe assessment type. One of email_risk, phone_risk, or url_risk.
idstringA stable identifier for the assessment entry, prefixed with idr_.
resourceobjectA pointer to the business sub-resource the assessment scored.
resource.typestringThe type of sub-resource, such as email_address.
resource.idstringThe ID of the sub-resource on the business. Use this ID to join the assessment back to the business.
resource.valuestringThe natural value of the resource, such as the email address itself, included for convenience.
scorenumberA risk score from 0 to 1. Higher scores indicate higher risk.
attributesobject[]The measured facts that back the score.
attributes[].namestringThe attribute name, such as email_is_disposable or phone_is_prepaid.
attributes[].typestringThe type of value. One of boolean, string, or number.
attributes[].valueboolean, string, or numberThe measured value.

The attribute list varies by assessment type and by run. Middesk emits only measured facts: an attribute that was not measured on a run is omitted rather than reported with a default value.

Attributes by assessment type

The following tables list every attribute each assessment type can carry.

Email attributes

AttributeTypeDescription
email_is_validbooleanWhether the email address is valid. An invalid address signals risk.
email_is_disposablebooleanWhether the email is a disposable address.
email_deliverability_lowbooleanWhether the email’s deliverability is low.

Phone attributes

AttributeTypeDescription
phone_is_validbooleanWhether the phone number is valid. An invalid number signals risk.
phone_is_activebooleanWhether the phone line is active and reachable. An inactive line signals risk.
phone_is_riskybooleanWhether the phone shows risky characteristics, such as fraud, scams, robocalls, or fake accounts.
phone_has_recent_abusebooleanWhether the phone has verified abuse activity within the past few days.
phone_is_prepaidbooleanWhether the phone is a prepaid number.
phone_is_leakedbooleanWhether the phone was recently exposed in a data breach.
phone_is_spammerbooleanWhether the phone was recently reported for spam or harassing calls or texts.

URL attributes

AttributeTypeDescription
url_is_suspiciousbooleanWhether the URL is possibly malicious or used for abuse.
url_has_phishingbooleanWhether the URL is tied to phishing behavior.
url_has_malwarebooleanWhether the URL is tied to malware or viruses.
url_domain_parkedbooleanWhether the domain is parked with a for-sale notice.
url_domain_trust_maliciousbooleanWhether the domain’s reputation is rated malicious.
url_domain_trust_suspiciousbooleanWhether the domain’s reputation is rated suspicious.
url_domain_trust_unratedbooleanWhether the domain has no reputation rating.

Mapping assessments back to the business

The resource object is the pointer from an assessment back to the business. resource.id is the ID of the sub-resource on the business: an email_risk entry points at an entry in the business’s email_addresses[] array, and a phone_risk entry points at an entry in phone_numbers[].

For example, this assessment scores an email address on the business:

Entry in identifier_assessments[]
1{
2 "object": "email_risk",
3 "id": "idr_1f6a9c04d2b7e853",
4 "resource": {
5 "type": "email_address",
6 "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
7 "value": "[email protected]"
8 },
9 "score": 0.87,
10 "attributes": [
11 { "name": "email_is_valid", "type": "boolean", "value": true },
12 { "name": "email_is_disposable", "type": "boolean", "value": true },
13 { "name": "email_deliverability_low", "type": "boolean", "value": true }
14 ]
15}

On the business, the entry in email_addresses[] whose id matches resource.id is the scored address. Its sources[] array shows where the address came from. Here the profile source shows Middesk found the address on the business’s Yelp page, and submitted: false shows the applicant did not provide it.

Matching entry in email_addresses[]
1{
2 "object": "email_address",
3 "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
4 "email": "[email protected]",
5 "submitted": false,
6 "sources": [
7 {
8 "id": "4f2e1d0c-9b8a-4765-8321-a1b2c3d4e5f6",
9 "type": "profile",
10 "metadata": {
11 "url": "https://www.yelp.com/biz/rose-city-bakery-portland"
12 }
13 }
14 ]
15}

Assessments are immutable, but the business is not. Later orders can refresh sub-resources, so the live business may no longer match what an assessment referenced. When investigating an assessment, always fetch the business as of the assessment’s order with GET /businesses/{id}?order_id={order_id}, or follow the assessment’s business_snapshot_url. See Get a risk assessment for snapshot semantics.

For url_risk, the resource points at the assessed website. The assessed URL in resource.value is authoritative for what Middesk scored. Don’t assume it equals the website submitted on the business: the assessed URL can differ, for example after redirect resolution or when Middesk discovers a website where none was submitted.

Absence is not a clean signal

Resources that were not scored produce no entry in identifier_assessments[]. Never read the absence of an identifier assessment as a signal that the identifier is low risk. It only means the identifier was not scored on that run.

Get a demo
Contact your account manager or contact sales to inquire about access.