Return complete business profiles with Business enrichment

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

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

1

Set up webhooks

Because Business enrichment orders are asynchronous, set up webhooks to receive notifications when the order completes. See Implement webhooks for details.

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

2

Create the order

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

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
1{
2 "object": "business",
3 "id": "021ebab4-173c-4b6c-838a-a313d566df76",
4 "external_id": null,
5 "name": "Dunder Mifflin Paper Company",
6 "created_at": "2025-11-14T17:03:47.177Z",
7 "updated_at": "2025-11-14T17:03:51.546Z",
8 "status": "pending",
9 ...
10}
3

Retrieve the completed order

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

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)
1{
2 "object": "business",
3 "id": "021ebab4-173c-4b6c-838a-a313d566df76",
4 "name": "Dunder Mifflin Paper Company",
5 "status": "open",
6 "tin": {
7 "name": "DUNDER MIFFLIN PAPER COMPANY",
8 "verified": true,
9 "tin_type": "EIN"
10 },
11 "formation": {
12 "entity_type": "CORPORATION",
13 "formation_date": "2002-03-19",
14 "formation_state": "PA"
15 },
16 "website": {
17 "url": "http://www.dundermifflin.com"
18 },
19 "names": [
20 {
21 "name": "Dunder Mifflin Paper Company",
22 "type": "legal"
23 }
24 ],
25 "addresses": [
26 {
27 "full_address": "1725 Slough Avenue, Scranton, PA 18501",
28 "property_type": "COMMERCIAL"
29 }
30 ],
31 "people": [
32 {
33 "name": "Michael Scott",
34 "titles": [{ "title": "REGIONAL MANAGER" }]
35 }
36 ],
37 "industry_classification": {
38 "status": "completed",
39 "categories": [
40 {
41 "name": "Stationery, Office Supplies, and Gift Stores",
42 "naics_codes": ["453210"],
43 "high_risk": false
44 }
45 ]
46 },
47 "registrations": [
48 {
49 "name": "DUNDER MIFFLIN PAPER COMPANY",
50 "status": "active",
51 "state": "PA",
52 "entity_type": "CORPORATION"
53 }
54 ]
55}

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

ParameterDescriptionRequired
nameBusiness name.Yes
addressesList of addresses.Yes
ordersSet to [{"product": "business_enrichment"}]Yes

Response statuses

CodeDescription
200Success
401Unauthorized
422Invalid 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

CodeDescription
200Success
401Unauthorized

Response schema

The response is a Business object. For Business enrichment orders, the following fields are populated:

PropertyTypeDescriptionGuaranteed
objectstringA definition of the type of object returnedYes
idstringMiddesk-generated unique identifier for the businessYes
external_idstringIdentifier from non-Middesk systemNo (populated if provided when creating the business)
namestringThe given name for the companyYes
created_attimestampCreation timestampYes
updated_attimestampLast update timestampNo
statusstringThe current status of the business lifecycleYes
tinobjectInformation about the employer identification numberNo
formationobjectInformation about the formation of the businessNullable
registrationsobject[]List and details of all known registrationsYes (can be an empty array)
namesobject[]Details about the business namesYes
addressesobject[]All known addresses tied to a business entityYes
reviewobjectThe business ReviewYes (empty until the business moves to in_review, approved, or rejected)
ordersobject[]Contains only the Business enrichment orderYes
peopleobject[]Information about peopleYes (can be an empty array)
profilesobject[]Information about profileYes (can be an empty array)
industry_classificationobjectInformation about Industry ClassificationNullable
tagsstring[]Custom tags added to a Business at creationYes (can be an empty array)
websiteobjectWebsite informationNullable

Person

The Person object has 2 additional keys:

PropertyTypeDescriptionGuaranteed
email_addressesobject[]An array of objectsyes - can be an empty array
email_addresses[].emailstringyes
email_addresses[].objectstring”email_address”yes
email_addresses[].contact_typestring”professional” or “personal”yes
phone_numbersobject[]An array of objectsyes - can be an empty array
phone_numbers[].phonestringyes
phone_numbers[].objectstring”phone_number”yes
phone_numbers[].contact_typestring”professional” or “personal”
phone_numbers[].recommendedbooleanyes
Business enrichment orders do not include the following attributes: policy_results, watchlist, liens, documents, adverse_media_screening, phone_numbers, politically_exposed_person_screening, monitor, bankruptcies, document_verifications, tax_exempt_organization, or fmcsa_registrations.
Get a demo
Contact your account manager or contact sales to inquire about access.