For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Contact SalesGet Support
HomeGuidesAPI reference
HomeGuidesAPI reference
  • Get started
    • Quickstart—Verify a Business
    • Quickstart—Register an entity for payroll taxes
    • Learn how Middesk works
    • Security
    • Changelog
  • Build with Middesk
    • Get your API keys
    • Understand API changes
    • Status codes and errors reference
    • Implement webhooks
    • Secure webhooks
    • Use GraphQL
    • Connect MCP
  • Verify a business (KYB)
    • Verify TIN
    • Verify name and address
    • Verify Secretary of State status
    • Verify owners and officers
    • Screen for sanctions and watchlists
    • Search for adverse media
    • Search for Politically Exposed Persons
    • Implement KYC
    • Discover connections
    • Evaluate online presence
    • Assess credit risk
    • Accelerate onboarding
    • Monitor business activity
    • Manage business entities
    • Work with agents
LogoLogo
Contact SalesGet Support
On this page
  • How Middesk discovers connections
  • Understanding connections
  • Confidence scoring
  • How to discover connections
Verify a business (KYB)

Discover connections

Was this page helpful?
Previous

Evaluate online presence

Next
Built with

When Middesk verifies a business, it analyzes the people, addresses, and business data associated with that business to discover connections to other businesses in its identity graph. These connections surface other businesses that may share common ownership, management, or operating locations, enabling more comprehensive due diligence without manual research.

Getting started

Middesk automatically discovers connections when you create a business. See the quickstart for a basic introduction to verifying a business.

How Middesk discovers connections

Middesk maintains an identity graph built from Secretary of State registrations, business filings, and other public records. When Middesk verifies a business, it compares the business’s people, addresses, and data against this graph to find other businesses that share those attributes. A shared officer appearing on two businesses, an overlapping registered address, or a common business relationship each represent a connection worth investigating.

Each discovered connection includes a confidence score between 0 and 1 that reflects the overall strength of the connection. The score increases when multiple attributes overlap. Middesk returns results in descending order by confidence, so the strongest connections appear first.

The API returns up to 250 connections per business and omits any beyond that limit.

Understanding connections

Every connection includes the specific connecting elements that link it to the ordered business. There are three connecting element types:

  • Connecting people. Individuals found on both the ordered business and the connected business. Each person includes their name, titles (for example, “CEO” or “Registered Agent”), and the sources where the connection was found, such as Secretary of State registrations.
  • Connecting addresses. Physical addresses shared between both businesses. Each address includes labels (for example, “primary”) and the sources where the address was found. A shared registered office or principal address suggests an operational link between the two businesses.
  • Connecting businesses. Businesses found in authoritative records that establish a link between the ordered and connected business. This happens in three ways:
    • Outbound reference. The ordered business’s own records name the connected business.
    • Inbound reference. The connected business’s records name the ordered business.
    • Shared reference. Both the ordered business and the connected business name the same third business in their records.

Middesk populates the sources array from the ordered business’s own authoritative records. Inbound references have an empty sources array because the evidence lives on the connected business’s records, not the ordered business’s. To access sources from the connecting business, order a report for the connected business. See Order a report from a connection below.

Confidence scoring

The confidence field is a float between 0 and 1 that represents how strongly two businesses are connected. Higher values indicate more overlapping data points across the connection types described above.

The score combines weighted signals:

  • High confidence (0.90 or above). Multiple connecting elements overlap. For example, a shared person plus a shared address, or an outbound or inbound business reference combined with a shared person or address.
  • Medium confidence. A single strong signal is present. For example, a shared person alone, or a direct business reference alone (outbound or inbound, where one business names the other in authoritative records).
  • Lower confidence. A shared address alone, particularly when the address is high-frequency (PO boxes, registered agent offices, or coworking addresses).
  • Lowest confidence. Only a shared third-party reference, with no overlapping people or addresses. This pattern is common when both businesses happen to use the same registered agent or share a generic service provider, which often doesn’t indicate a real operational link.

Use the confidence score to prioritize which connections to investigate first. Connections with high confidence are strong leads for further diligence, while lower-confidence connections may warrant manual review.

How to discover connections

1

Create or retrieve a business

To discover connections, first create a new business or retrieve an existing verified business.

curl
$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_line_1": "123 Main Street",
> "city": "San Francisco",
> "state": "CA",
> "postal_code": "94105"
> }
> ],
> "orders": [
> { "product": "business_verification_verify" }
> ]
> }'

Wait for the business.updated webhook indicating verification is complete. Set up webhooks to receive notifications.

2

List connections

Once Middesk verifies the business, retrieve its connections. The API paginates results and orders them by confidence score.

curl
$curl https://api.middesk.com/v1/businesses/{business_id}/connections \
> -H "Authorization: Bearer YOUR_API_KEY"

Pass page and per_page query parameters to paginate through results.

3

Review connections

Each connection in the response includes the connecting people, addresses, and businesses that link it to the ordered business, along with a confidence score.

Example response
1{
2 "object": "list",
3 "data": [
4 {
5 "object": "connection",
6 "id": "00000000-0000-0000-0000-000000000001",
7 "name": "Acme Holdings LLC",
8 "confidence": 0.96,
9 "connected_business_id": null,
10 "connecting_people": [
11 {
12 "name": "John Doe",
13 "titles": ["CEO"],
14 "sources": [
15 {
16 "id": "00000000-0000-0000-0000-000000000002",
17 "type": "sos_registration",
18 "metadata": {
19 "state": "IL",
20 "file_number": "12345"
21 }
22 }
23 ]
24 }
25 ],
26 "connecting_addresses": [
27 {
28 "full_address": "123 Main St, Springfield, IL 62701",
29 "labels": ["primary"],
30 "sources": [
31 {
32 "id": "00000000-0000-0000-0000-000000000002",
33 "type": "sos_registration",
34 "metadata": {
35 "state": "IL",
36 "file_number": "12345"
37 }
38 }
39 ]
40 }
41 ],
42 "connecting_businesses": [
43 {
44 "name": "Acme Holdings LLC",
45 "titles": ["MANAGER"],
46 "sources": [
47 {
48 "id": "00000000-0000-0000-0000-000000000002",
49 "type": "sos_registration",
50 "metadata": {
51 "state": "IL",
52 "file_number": "12345"
53 }
54 }
55 ]
56 },
57 {
58 "name": "Acme Corporation",
59 "titles": [],
60 "sources": []
61 },
62 {
63 "name": "National Registered Agents Inc",
64 "titles": ["REGISTERED AGENT"],
65 "sources": [
66 {
67 "id": "00000000-0000-0000-0000-000000000002",
68 "type": "sos_registration",
69 "metadata": {
70 "state": "IL",
71 "file_number": "12345"
72 }
73 }
74 ]
75 }
76 ]
77 }
78 ],
79 "has_more": false,
80 "total_count": 1
81}

In this example, “Acme Holdings LLC” shares a person (John Doe, listed as CEO), a primary address, a registered agent, and is also named as its manager on the ordered business’s SOS filing. Together, these signals produce a high confidence score of 0.96. The connected_business_id is null because you haven’t ordered a report on this connection yet.

The connecting_businesses array shows all three reference types: an outbound reference where the ordered business’s own SOS filing names “Acme Holdings LLC” as its owner (sources populated); an inbound reference where “Acme Holdings LLC“‘s filing names “Acme Corporation” (sources and titles empty because the evidence lives on the connected business’s records, not the ordered business’s); and a shared reference to “National Registered Agents Inc”, a registered agent company that appears on both businesses’ filings (sources populated).

4

Order a report from a connection

To investigate a connection further, create a new business using the connection id as the connection_id. This pre-fills the business details from the connection so you don’t need to provide them manually.

curl
$curl -X POST https://api.middesk.com/v1/businesses \
> -H "Authorization: Bearer YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "connection_id": "00000000-0000-0000-0000-000000000001",
> "orders": [{ "product": "business_verification_verify" }]
> }'

When you provide a connection_id:

  • Middesk pre-fills the business name from the connection
  • Middesk pre-fills the business address from the connection’s primary address, unless you explicitly provide addresses
  • The connected_business_id on the original connection updates to link back to the newly created business

You can’t combine connection_id with signal_id. The API allows only one source parameter per request.

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