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

# Return complete business profiles with Business enrichment

> Use Business enrichment orders to retrieve business attributes with higher coverage for web analysis and industry classification.

A Business enrichment order is an asynchronous process similar to the synchronous [Smart populate API](/accelerate-onboarding/smart-populate). It returns attributes about a business and performs live scraping to achieve a higher fill rate on attributes like web analysis and industry classification.

> **Note**
>
> A Business enrichment order does not verify the business. Unlike a Business Verification order, it never goes to audit and completes relatively quickly.

## End-to-end flow

1. A user types their business name and address, or selects the name and address from the list returned by the [Autocomplete API](/accelerate-onboarding/autocomplete).
2. Your backend sends a request to Middesk's `POST /v1/businesses/` endpoint with the `business_enrichment` product.
3. Middesk returns an `id` for the Business enrichment order.
4. Because a Business enrichment order is asynchronous, set up [webhooks](/build/webhooks) to receive order updates.
5. Middesk returns information about the business that you can use to pre-fill fields during onboarding. This information has a higher fill rate than the synchronous Smart populate API.

## Create a Business enrichment order

#### Set up webhooks

Because Business enrichment orders are asynchronous, set up webhooks to receive notifications when the order completes. See [Implement webhooks](/build/webhooks) for details.

Listen for the `order.updated` event to know when your Business enrichment order is complete.

#### Create the order

Send a POST request to create a new business with the `business_enrichment` product:

**`Example request`**

```bash title="Example request"
curl -X POST https://api.middesk.com/v1/businesses \
  -H "Authorization: Bearer <API KEY>" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Dunder Mifflin Paper Company",
    "orders": [
      {
        "product": "business_enrichment"
      }
    ],
    "addresses": [
      {
        "full_address": "1725 Slough Avenue, Scranton, PA 18501"
      }
    ]
  }'
```

A successful request returns a `200 OK` with the Business object, including the order `id`:

**`Example response`**

```json title="Example response"
{
  "object": "business",
  "id": "021ebab4-173c-4b6c-838a-a313d566df76",
  "name": "Dunder Mifflin Paper Company",
  "created_at": "2025-11-14T17:03:47.177Z",
  "updated_at": "2025-11-14T17:03:51.546Z",
  "status": "pending",
  ...
}
```

#### Retrieve the completed order

Once you receive the webhook notification, fetch the completed Business enrichment order:

**`Example request`**

```bash title="Example request"
curl -X GET "https://api.middesk.com/v1/businesses/<id>" \
  -H "Authorization: Bearer <API KEY>" \
  -H "Accept: application/json"
```

The response contains rich business data that you can use to pre-fill onboarding fields:

**`Example response (truncated)`**

```json title="Example response (truncated)"
{
  "object": "business",
  "id": "021ebab4-173c-4b6c-838a-a313d566df76",
  "name": "Dunder Mifflin Paper Company",
  "status": "open",
  "tin": {
    "tin": "23-1043927",
    "tin_type": "EIN"
  },
  "formation": {
    "entity_type": "CORPORATION",
    "formation_date": "2002-03-19"
  },
  "website": {
    "url": "http://www.dundermifflin.com"
  },
  "names": [
    {
      "name": "Dunder Mifflin Paper Company",
      "type": "legal"
    }
  ],
  "addresses": [
    {
      "address_line1": "1725 Slough Avenue",
      "address_line2": null,
      "city": "Scranton",
      "state": "PA",
      "postal_code": "18501",
      "full_address": "1725 Slough Avenue, Scranton, PA 18501",
      "labels": []
    }
  ],
  "people": [
    {
      "name": "Michael Scott",
      "titles": [{ "title": "REGIONAL MANAGER" }],
      "phone_numbers": [
        {
          "phone_number": "570-555-5555",
          "recommended": true,
          "contact_type": "personal"
        }
      ],
      "emails": [
        {
          "email": "mscott@dundermifflin.com",
          "contact_type": "business"
        }
      ]
    }
  ],
  "industry_classification": {
    "status": "completed",
    "categories": [
      {
        "name": "Stationery, Office Supplies, and Gift Stores",
        "sector": "WHOLESALE_TRADE",
        "naics_codes": ["453210"]
      }
    ]
  },
  "created_at": "2025-11-14T17:03:47.177Z",
  "updated_at": "2025-11-14T17:03:51.546Z"
}
```

## API reference

### Create Business enrichment order

**Method**: `POST`

**URL**: `https://api.middesk.com/v1/businesses`

**Headers**: Include the API key in the `Authorization` header using Bearer authorization

#### Request body

| Parameter   | Description                                   | Required |
| :---------- | :-------------------------------------------- | :------- |
| `name`      | Business name.                                | Yes      |
| `addresses` | List of addresses.                            | Yes      |
| `orders`    | Set to `[{"product": "business_enrichment"}]` | Yes      |

#### Response statuses

| Code  | Description        |
| :---- | :----------------- |
| `200` | Success            |
| `401` | Unauthorized       |
| `422` | Invalid parameters |

### Fetch Business enrichment order

**Method**: `GET`

**URL**: `https://api.middesk.com/v1/businesses/<id>`

**Headers**: Include the API key in the `Authorization` header using Bearer authorization

#### Response statuses

| Code  | Description  |
| :---- | :----------- |
| `200` | Success      |
| `401` | Unauthorized |

### Response schema

The response is a [Business object](/reference/business). For Business enrichment orders, the following fields are populated:

| Property                  | Type        | Description                                           | Guaranteed                  |
| :------------------------ | :---------- | :---------------------------------------------------- | :-------------------------- |
| `object`                  | `string`    | A definition of the type of object returned           | Yes                         |
| `id`                      | `string`    | Middesk-generated unique identifier for the business  | Yes                         |
| `name`                    | `string`    | The given name for the company                        | Yes                         |
| `created_at`              | `timestamp` | Creation timestamp                                    | Yes                         |
| `updated_at`              | `timestamp` | Last update timestamp                                 | No                          |
| `status`                  | `string`    | The current status of the business lifecycle          | Yes                         |
| `tin`                     | `object`    | Tax identification number details (`tin`, `tin_type`) | No                          |
| `formation`               | `object`    | Information about the formation of the business       | Nullable                    |
| `names`                   | `object[]`  | Details about the business names                      | Yes                         |
| `addresses`               | `object[]`  | All known addresses tied to a business entity         | Yes                         |
| `orders`                  | `object[]`  | Contains only the Business enrichment order           | Yes                         |
| `people`                  | `object[]`  | Information about people                              | Yes (can be an empty array) |
| `industry_classification` | `object`    | Information about Industry Classification             | Nullable                    |
| `website`                 | `object`    | Website information                                   | Nullable                    |

**Person**

The [Person object](/reference/person) has 2 additional keys:

| Property                          | Type       | Description                  | Guaranteed                  |
| :-------------------------------- | :--------- | :--------------------------- | :-------------------------- |
| email\_addresses                  | `object[]` | An array of objects          | yes - can be an empty array |
| email\_addresses\[].email         | `string`   |                              | yes                         |
| email\_addresses\[].object        | `string`   | "email\_address"             | yes                         |
| email\_addresses\[].contact\_type | `string`   | "professional" or "personal" | yes                         |
| phone\_numbers                    | `object[]` | An array of objects          | yes - can be an empty array |
| phone\_numbers\[].phone           | `string`   |                              | yes                         |
| phone\_numbers\[].object          | `string`   | "phone\_number"              | yes                         |
| phone\_numbers\[].contact\_type   | `string`   | "professional" or "personal" |                             |
| phone\_numbers\[].recommended     | `boolean`  |                              | yes                         |

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