> 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.

# Verify email and phone

> Verify a business's email addresses and phone numbers against its website and third-party profiles

An email address and phone number are often the only direct line between your team and a business you're onboarding. They are also the easiest identifiers to fabricate: anyone can create a mailbox or provision a phone number in minutes, and neither leaves the paper trail that a registered name or address does.

Corroboration turns a claimed contact into evidence. When a submitted email address or phone number also appears on the business's website or on third-party platforms the business does not control, the contact has a public history that is difficult to fabricate. Middesk corroborates submitted contact details against these sources and reports what it finds, complementing [name and address verification](/verify-business/name-address) in a KYB program.

> **How to trigger email and phone verification**
>
> Contact extraction runs as part of web presence analysis. Include an order that runs the `web_analysis` subproduct when you create the business. Read [Analyze web presence](/online-presence/web-presence) for ordering details.

## How Middesk verifies email addresses and phone numbers

Middesk extracts email addresses and phone numbers from sources the business presents publicly:

* **The business website.** During web presence analysis, Middesk crawls the business's website and parses contact details from its pages.
* **Third-party profiles.** Middesk matches the business to [profiles](/reference/profile) on Yelp, Facebook, LinkedIn, Instagram, and Google Places, and extracts the contact details published on each profile page.

### Merging submitted and discovered contacts

Middesk reconciles every extracted contact with the entries already on the business:

* A discovered email address or phone number that matches a submitted one merges into the existing entry. The entry keeps `submitted: true` and gains a source describing where the contact was found. For example, a submitted email that also appears on the business's Facebook page gains a source of type `profile` with `metadata.url` set to the profile page URL.
* A discovered contact that does not match any submitted one becomes a new entry in `email_addresses[]` or `phone_numbers[]` with `submitted: false`.
* Each corroborating profile adds its own source, so a phone number listed on both a Yelp page and a Google Places listing carries two `profile` sources.

The following entry shows a submitted email address corroborated by the business's Facebook page:

**`Submitted email with a profile source`**

```json title="Submitted email with a profile source"
{
  "object": "email_address",
  "id": "c3d4e5f6-7890-12ab-cdef-3456789012ab",
  "email": "office@acmecorp.example",
  "submitted": true,
  "sources": [
    {
      "id": "d4e5f6a7-8901-23ab-cdef-4567890123ab",
      "type": "profile",
      "metadata": {
        "url": "https://facebook.com/acmecorp"
      }
    }
  ]
}
```

### Source types

Each entry in `email_addresses[]` and `phone_numbers[]` carries a `sources` array describing where Middesk found the contact. Each source is an object with an `id`, a `type`, and a `metadata` object whose contents depend on the type.

| Type           | Description                                                                                                                        |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `profile`      | The contact appears on a third-party profile page, such as a Yelp or Facebook page. `metadata.url` is the URL of the profile page. |
| `website`      | The contact appears on the business's website.                                                                                     |
| `registration` | The contact appears in a government filing, such as a Secretary of State registration.                                             |

## How to verify email and phone

#### Create a business with email and phone

Submit a business with email addresses and phone numbers, plus an order that runs web analysis.

```bash
curl -X POST https://api.middesk.com/v1/businesses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corporation",
    "addresses": [
      {
        "address_line1": "123 Main Street",
        "city": "San Francisco",
        "state": "CA",
        "postal_code": "94105"
      }
    ],
    "email_addresses": [
      { "email": "office@acmecorp.example" }
    ],
    "phone_numbers": [
      { "phone_number": "+14155550100" }
    ],
    "website": {
      "url": "https://www.acmecorp.example"
    },
    "orders": [
      {
        "product": "website",
        "subproducts": ["web_analysis"]
      }
    ]
  }'
```

#### Wait for web analysis to complete

Middesk sends a `business.updated` webhook when the order completes. Set up [webhooks](/build/webhooks) to receive notifications, or poll the business endpoint.

#### Read the sources on each contact

Retrieve the business and inspect `sources[]` on each entry in `email_addresses[]` and `phone_numbers[]`:

* An entry with `submitted: true` and one or more sources is corroborated: the contact you collected also appears in the business's public footprint.
* An entry with `submitted: true` and an empty `sources` array is uncorroborated. Treat this as an absence of evidence rather than a red flag on its own; businesses with a thin web presence publish few contact details.
* An entry with `submitted: false` is a contact Middesk discovered that the applicant did not provide. Compare it with the submitted details to spot stale information or a mismatch between the application and the business's public identity.

> **Get a demo**
>
> Contact your account manager or [contact sales](https://www.middesk.com/contact-sales) to inquire about access.