Enigma Docs

Welcome to Enigma Docs

Welcome to Enigma! Here you'll find comprehensive guides and documentation to help you start working with Enigma's Businesses product as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Match Endpoint

The Match endpoint is built for retrieval of business records from Enigma’s SMB data. As the name suggests, the purpose of this endpoint is to determine whether Enigma has a business record that corresponds to - or matches - a business that is of interest to you.

For technical guidance around this endpoint, see our API Reference.

Overview

For example, suppose an SMB lender receives an application from a business for a loan. The application will contain some basic information about a business - such as the business name, address, and owner.

The match endpoint enables the lender to supply these inputs and instantly.

Find the right business in Enigma’s records

Learn more information about it from our detailed business attributes - such as registrations, industry, and corporate structure.

📘

Enigma has records for over 30 million businesses - through the match endpoint, you can easily query this data set to uniquely find the right one and obtain its business profile.

Making a request to businesses/match

Header

To make a Businesses API request, first ensure to enter your API key by adding the following request header.

'x-api-key': 'YOUR-API-KEY'

Inputs

The Match endpoint supports POST requests, which require a payload containing two of the following three input fields:

  • Business Name
  • Business Address
  • Associated person (typically an officer or the business owner)
Request

Below is an example of a POST request to lookup a business using its name and address. (Note that the API works analogously for any other combination of two inputs).

import requests
import json

base_url = 'https://api.enigma.com'
headers = {
  'Content-Type': 'application/json',
  'x-api-key': 'YOUR-API-KEY'
}
url = base_url + '/businesses/match'

params = {}
body = {
  "name": "Enigma Technologies, Inc.",
  "address": {
    "street_address1": "245 5th Ave",
    "city": "New York",
    "state": "NY",
    "postal_code": "10016"
}
}
response = requests.post(url, json=body, params=params, headers=headers).json()
let requesturl = 'https://api.enigma.com/businesses/match';
let params = {
  "name": "Enigma Technologies, Inc.",
  "address": {
    "street_address1": "245 5th Ave",
    "city": "New York",
    "state": "NY",
    "postal_code": "10016"
}
}
// Configure request headers
let headers = new Headers();
headers.append('Content-Type': 'application/json');
headers.append('x-api-key': 'YOUR-API-KEY');

fetch(requesturl, {
  method: 'POST',
  body: JSON.stringify(params),
  headers: headers
})
.then(response => response.json())
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});
curl -X POST 'https://api.enigma.com/businesses/match' -H 'Content-Type: application/json' -H 'x-api-key: YOUR-API-KEY' -d '{"name": "Enigma Technologies, Inc.", "address": {"street_address1":"245 5th Ave","city":"New York","state":"NY","postal_code":"10016"}}' | python -m json.tool

The Match Model

Once you send the request, Enigma runs a match model against our SMB data. The model uses precision data science techniques to query Enigma’s SMB records and return the business that most closely resembles the inputs provided.

Interpreting the Response

If the request inputs match one of the SMBs represented in our data, the API returns a JSON response containing the profile of the matching business. The profile is made up of our basic attributes, which helps you learn more about the business and be sure that you’ve identified the correct one.

The response also denotes the fields that were matched to your input, so that you can understand why that specific business result was returned.

Enigma ID

In the response you’ll also find the business’s Enigma ID. This is the unique, persistent ID for the entity in Enigma’s SMB data, assigned as a result of our expert Entity Resolution process.

Response
{
  "businesses": [
    {
      "match_confidence": 0.99,
      "matched_fields": {
        "name": "Enigma Technologies",
        "person": "HICHAM OUDGHIRI",
        "address": {
          "street_address1": "245 5 AVE",
          "street_address2": "17 FL",
          "city": "NEW YORK",
          "state": "NY",
          "postal_code": "10016"
        }
      },
      "data_sources": [
        "Third-Party Active Business",
        "H1B Visa Applications",
        "UCC Loans",
        "Corporate Registrations"
      ],
      "is_matched": true,
      "aliases": [
        "ENIGMA TECHNOLOGIES INC",
        "ENIGMA TECHNOLOGIES"
      ],
      "addresses": [
        {
          "street_address1": "245 5 AVE",
          "street_address2": "FL 17",
          "city": "NEW YORK",
          "state": "NY",
          "postal_code": "10016",
          "is_primary": true
        },
        {
          "street_address1": "245 5 AVE",
          "street_address2": "",
          "city": "NEW YORK",
          "state": "NY",
          "postal_code": "10016",
          "is_primary": false
        },
        {
          "street_address1": "245 5 AVE",
          "street_address2": "17 FL",
          "city": "NEW YORK",
          "state": "NY",
          "postal_code": "10016",
          "is_primary": false
        },
        {
          "street_address1": "245 5 AVE 17",
          "street_address2": "",
          "city": "NEW YORK",
          "state": "NY",
          "postal_code": "10016",
          "is_primary": false
        },
        {
          "street_address1": "501 LOUISIANA AVE",
          "street_address2": "",
          "city": "BATON ROUGE",
          "state": "LA",
          "postal_code": "70802",
          "is_primary": false
        }
      ],
      "ein": [
        "422236667"
      ],
      "associated_people": [
        {
          "name": "OUDGHIRI HICHAM",
          "titles": [
            "OFFICER"
          ]
        },
        {
          "name": "HICHAM OUDGHIRI",
          "titles": [
            "OFFICER"
          ]
        }
      ],
      "registered_agents": [
        "CORPORATION SERVICE COMPANY",
        "ENIGMA TECHNOLOGIES INC",
        "CORPORATION SERVICE COMPANY"
      ],
      "phone_numbers": [
        "+8005102856"
      ],
      "websites": [
        "https://www.enigma.com/"
      ],
      "registrations": [
        {
          "state": "DC",
          "issue_date": "2017-08-18",
          "file_number": null
        },
        {
          "state": "TN",
          "issue_date": null,
          "file_number": null
        },
        {
          "state": "TX",
          "issue_date": "2017-10-27",
          "file_number": null
        },
        {
          "state": "WA",
          "issue_date": "2017-08-20",
          "file_number": null
        },
        {
          "state": "DE",
          "issue_date": "2011-11-09",
          "file_number": "4163621"
        },
        {
          "state": "NY",
          "issue_date": "2011-11-09",
          "file_number": null
        },
        {
          "state": "CA",
          "issue_date": "2018-01-17",
          "file_number": null
        },
        {
          "state": "HI",
          "issue_date": "2019-01-26",
          "file_number": null
        },
        {
          "state": "LA",
          "issue_date": "2016-05-10",
          "file_number": null
        }
      ],
      "corporate_structure": "CORPORATION",
      "company_description": [
        "Search and analyze billions of public records published by governments, companies and organizations. Enigma empowers the world to discover public data and build apps and services that leverage its power."
      ],
      "year_incorporated": "2011"
    }

📘

For further information on this topic, read about Entity Resolution in our Methods and Models section

We recommend storing the Enigma ID in order to make subsequent calls to the ID Endpoint, where you’ll be able to call the same business result based on its ID, and - most importantly - pull Enigma’s premium attributes for that entity.

The Enigma ID can also be used for Entity Resolution across your internal data set.

Match Confidence

You’ll notice the response also contains an attribute called match_confidence.
This attribute - the output of our match model - is a quantitative representation of the proximity between the information provided in the request input and the business returned from our records. The score ranges from 0 to 1, where 1 indicates an exact match.

The Businesses API defines a match - and thus returns a business object - as a result whose match_confidence meets a threshold of 0.5. (From our in-depth research and numerous studies, this threshold provides the highest accuracy and while maintaining the best tradeoff between precision and recall).

📘

Our match model has been honed over time to find the best result from over 30m SMB profiles. To learn more, read about our Match Models in our Methods and Models section.

Configuration

Depending on your needs, the API response can be configured using parameters to modify:

  • The match threshold

    By setting match_threshold to the desired value between 0 and 1

  • The number of matches returned

    By setting top_N to the desired number of results

  • Show_non_matches

    In the event that no result meets the match_threshold, set show_non_matches: 1 so that the API still returns the best result it can find

Updated about a month ago


Match Endpoint


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.