Return synchronous business details with Smart populate

The Smart populate API (/prefill/businesses) returns real-time data about a business that you can use to pre-fill fields during the onboarding process. This synchronous API provides instant responses with business names, addresses, people, entity type, TIN, website, and industry classifications.

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/prefill/businesses endpoint.
  3. Middesk returns real-time information about the business including:
    • Names
    • Addresses
    • People
    • Entity type
    • Last 4 digits of EIN
    • Website
    • Industry classifications
  4. Use the returned data to pre-fill fields during the business onboarding process.
For higher fill rates on attributes like web analysis and industry classification, use the asynchronous Business enrichment Order instead.

Integrate the Smart populate API

1

Prepare your request

To search for a business, provide either:

  • Business names and addresses, OR
  • Business TIN

If you provide all three (names, addresses, and TIN), the API only searches by names and addresses.

2

Make a Smart populate request

Send a POST request to the prefill endpoint with the business name and address:

Example request
$curl -X POST "https://api.middesk.com/v1/prefill/businesses" \
> -H "Authorization: Bearer <API KEY>" \
> -H "Accept: application/json" \
> -H "Content-Type: application/json" \
> -d '{
> "names": ["Dunder Mifflin Paper Company"],
> "addresses": ["1725 Slough Avenue, Scranton, PA 18501"]
> }'

A successful request returns a 200 OK with business data in the response body:

Example response
1{
2 "names": [
3 {
4 "name": "Dunder Mifflin Paper Company",
5 "type": "legal"
6 }
7 ],
8 "addresses": [
9 {
10 "full_address": "1725 Slough Avenue, Scranton, PA 18501",
11 "address_line1": "1725 Slough Avenue",
12 "address_line2": null,
13 "city": "Scranton",
14 "state": "PA",
15 "postal_code": "18501",
16 "labels": ["mailing", "primary"]
17 }
18 ],
19 "tin": {
20 "tin_type": "EIN",
21 "last_four": "7890"
22 },
23 "formation": {
24 "entity_type": "CORPORATION"
25 },
26 "industry_classifications": [
27 {
28 "name": "Paper and Paper Product Merchant Wholesalers",
29 "score": 0.78,
30 "category": "WHOLESALE_SERVICES",
31 "high_risk": false,
32 "naics_codes": ["4241"],
33 "classification_system": "NAICS"
34 }
35 ],
36 "people": [
37 {
38 "name": "Michael Scott",
39 "titles": ["MANAGER", "REGISTERED AGENT"]
40 },
41 {
42 "name": "David Wallace",
43 "titles": ["Chief Executive Officer"]
44 }
45 ],
46 "website": {
47 "url": "https://dunder-mifflin.netlify.app/"
48 }
49}
The API returns null if no business is found.
3

Use the data to pre-fill your forms

Map the returned data to the appropriate fields in your onboarding forms:

  • Use names for the business name field
  • Use addresses for address fields
  • Use formation.entity_type for entity type selection
  • Use people to pre-populate owner or officer fields
  • Use tin.last_four to verify TIN input

API reference

Method: POST

URL: https://api.middesk.com/v1/prefill/businesses

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

Request body

ParameterDescriptionRequired
namesList of business names.No (required if TIN not provided)
addressesList of addresses.No (required if TIN not provided)
TINTIN for the business.No (required if names and addresses not provided)

Response statuses

CodeDescription
200Success
401Unauthorized
422Invalid parameters
429Rate limit exceeded

Response schema

FieldTypeDescription
namesName[]Array of associated names.
addressesAddress[]Array of associated addresses.
peoplePerson[]Array of associated people.
formationFormation or nullFormation information for the business.
industry_classificationsClassification[]Industry Classification for the business.
tinTIN or nullTIN for the business.
websiteWebsite or nullWebsite for the business.

Name object

FieldTypeDescription
namestringA name associated with the business.
typestringThe name type. Possible values: dba or legal

Address object

FieldTypeDescription
full_addressstringFull normalized address.
address_line1string or nullFirst line of address.
address_line2string or nullSecond line of address.
citystring or nullCity.
statestring or nullState.
postal_codestring or nullPostal code.
labelsstring[]Labels applied to the address.

Person object

FieldTypeDescription
namestringFull name of associated person.
titlesstring[]List of titles associated with person.

Formation object

FieldTypeDescription
entity_typestringThe legal structure of the entity. Possible values: LLC, CORPORATION, NON_PROFIT, PARTNERSHIP, TRUST, SOLE PROPRIETORSHIP, AGENT, and UNKNOWN

TIN object

FieldTypeDescription
tin_typestringType of TIN. Value: EIN
last_fourstringLast four digits of the TIN.

Website object

FieldTypeDescription
urlstringThe URL of the website for the business.

Classification object

For detailed description of the classification object, see Industry Classification.

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