> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.middesk.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.middesk.com/_mcp/server.

# Assess identifier risk

> Read the identifier assessments on a Middesk risk assessment to see which email addresses, phone numbers, and URLs carry 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](/business-risk/risk-assessments).

Identifier assessments complement [risk dimensions](/business-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:

| Value        | Scores                           | Draws on                                                                                                          |
| ------------ | -------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `email_risk` | An email address on the business | Validity, disposable address detection, and deliverability signals                                                |
| `phone_risk` | A phone number on the business   | Validity, line activity, risky-behavior flags, recent abuse, prepaid detection, breach exposure, and spam reports |
| `url_risk`   | The business's website URL       | Suspicion 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`**

```json title="Example identifier assessment"
{
  "object": "email_risk",
  "id": "idr_1f6a9c04d2b7e853",
  "resource": {
    "type": "email_address",
    "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
    "value": "owner@rosecitybakery.com"
  },
  "score": 0.87,
  "attributes": [
    { "name": "email_is_valid", "type": "boolean", "value": true },
    { "name": "email_is_disposable", "type": "boolean", "value": true },
    { "name": "email_deliverability_low", "type": "boolean", "value": true }
  ]
}
```

| Field                | Type                       | Description                                                                                                                         |
| -------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `object`             | string                     | The assessment type. One of `email_risk`, `phone_risk`, or `url_risk`.                                                              |
| `id`                 | string                     | A stable identifier for the assessment entry, prefixed with `idr_`.                                                                 |
| `resource`           | object                     | A pointer to the business sub-resource the assessment scored.                                                                       |
| `resource.type`      | string                     | The type of sub-resource. One of `email_address` (on `email_risk`), `phone_number` (on `phone_risk`), or `website` (on `url_risk`). |
| `resource.id`        | string                     | The ID of the sub-resource on the business. Use this ID to join the assessment back to the business.                                |
| `resource.value`     | string                     | The natural value of the resource, such as the email address itself, included for convenience.                                      |
| `score`              | number                     | A risk score from 0 to 1. Higher scores indicate higher risk.                                                                       |
| `attributes`         | object\[]                  | The measured facts that back the score.                                                                                             |
| `attributes[].name`  | string                     | The attribute name, such as `email_is_disposable` or `phone_is_prepaid`.                                                            |
| `attributes[].type`  | string                     | The type of `value`. One of `boolean`, `string`, or `number`.                                                                       |
| `attributes[].value` | boolean, string, or number | The 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

| Attribute                  | Type    | Description                                                          |
| -------------------------- | ------- | -------------------------------------------------------------------- |
| `email_is_valid`           | boolean | Whether the email address is valid. An invalid address signals risk. |
| `email_is_disposable`      | boolean | Whether the email is a disposable address.                           |
| `email_deliverability_low` | boolean | Whether the email's deliverability is low.                           |

### Phone attributes

| Attribute                | Type    | Description                                                                                       |
| ------------------------ | ------- | ------------------------------------------------------------------------------------------------- |
| `phone_is_valid`         | boolean | Whether the phone number is valid. An invalid number signals risk.                                |
| `phone_is_active`        | boolean | Whether the phone line is active and reachable. An inactive line signals risk.                    |
| `phone_is_risky`         | boolean | Whether the phone shows risky characteristics, such as fraud, scams, robocalls, or fake accounts. |
| `phone_has_recent_abuse` | boolean | Whether the phone has verified abuse activity within the past few days.                           |
| `phone_is_prepaid`       | boolean | Whether the phone is a prepaid number.                                                            |
| `phone_is_leaked`        | boolean | Whether the phone was recently exposed in a data breach.                                          |
| `phone_is_spammer`       | boolean | Whether the phone was recently reported for spam or harassing calls or texts.                     |

### URL attributes

| Attribute                     | Type    | Description                                              |
| ----------------------------- | ------- | -------------------------------------------------------- |
| `url_is_suspicious`           | boolean | Whether the URL is possibly malicious or used for abuse. |
| `url_has_phishing`            | boolean | Whether the URL is tied to phishing behavior.            |
| `url_has_malware`             | boolean | Whether the URL is tied to malware or viruses.           |
| `url_domain_parked`           | boolean | Whether the domain is parked with a for-sale notice.     |
| `url_domain_trust_malicious`  | boolean | Whether the domain's reputation is rated malicious.      |
| `url_domain_trust_suspicious` | boolean | Whether the domain's reputation is rated suspicious.     |
| `url_domain_trust_unrated`    | boolean | Whether 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[]`**

```json title="Entry in identifier_assessments[]"
{
  "object": "email_risk",
  "id": "idr_1f6a9c04d2b7e853",
  "resource": {
    "type": "email_address",
    "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
    "value": "owner@rosecitybakery.com"
  },
  "score": 0.87,
  "attributes": [
    { "name": "email_is_valid", "type": "boolean", "value": true },
    { "name": "email_is_disposable", "type": "boolean", "value": true },
    { "name": "email_deliverability_low", "type": "boolean", "value": true }
  ]
}
```

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[]`**

```json title="Matching entry in email_addresses[]"
{
  "object": "email_address",
  "id": "b7c9d1e3-52f4-4a6b-9c8d-0a1b2c3d4e5f",
  "email": "owner@rosecitybakery.com",
  "submitted": false,
  "sources": [
    {
      "id": "4f2e1d0c-9b8a-4765-8321-a1b2c3d4e5f6",
      "type": "profile",
      "metadata": {
        "url": "https://www.yelp.com/biz/rose-city-bakery-portland"
      }
    }
  ]
}
```

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](/business-risk/risk-assessments) for snapshot semantics.

For `url_risk`, the resource points at the assessed [website](/reference/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](https://www.middesk.com/contact-sales) to inquire about access.