Infogroup is a marketing services and analytics provider that delivers best in class data-driven customer-centric technology solutions. Our data and software-as-a-service (DaaS & SaaS) offerings help clients of all sizes, from small companies to FORTUNE 100™ enterprises, increase their sales and customer loyalty. Infogroup provides both digital and traditional marketing channel expertise that is enhanced by access to our proprietary data on 235MM individuals and 24MM businesses, which is distributed real-time to our clients.
Infoconnect is an API solution that provides real-time access to the broadest selection of data sources and the highest quality business and consumer information available.
At Infogroup, we harness the power of this data by sourcing, refining, matching, appending, filtering and delivering the best quality data to our clients. We also ensure that our data is the most accurate. We verify our data at the rate of almost 100,000 phone calls per day to ensure absolute accuracy at every second. All of this takes the guess work out of the process for you and helps you make your data, big and small, drive revenue regardless of your size or vertical. Where did we get all that data anyway?
To get started on Infoconnect, go to developer.infoconnect.com. Register for the site and log in.
After you have logged in, set up a test application and get an API key. Read through the developer documentation, and then use your new API key to test-drive Infoconnect using the console.
As listed in our Terms of Use, your use of the service is limited to calls to the API over a given time period. If you exceed the limit, the API will temporarily stop working for you. If you exceed the limit on more than one occasion, your access to and use of the service may be permanently terminated. If you would like to request an increased volume of API calls for your API key, please send your request to support@infoconnect.com. The company reserves the right to change these limits and caps at any time in its sole discretion.

Customer Type

Throttle Rate

Periodic Cap

Free Trial (Sandbox)

30 per minute

2,500 lifetime

Credit Card

600 per minute

12,500 per week

Periodic Billing

 

 

Level A

600 per minute

75,000 per week

Level B

600 per minute

400,000 per week

Level C

600 per minute

1,000,000 per week

You can choose any billing schedule that works for you such as weekly, monthly, quarterly or yearly billing. Please work with your sales representative to arrange a custom billing cycle. Pricing is based on the total number of records returned and the format of those records. There are 2 main types of formats: Basic and Enhanced. The basic rate is $0.04/record and the enhanced rate is $0.20/record. Please note that pricing is the same for a Business and Consumer record unless its format is different (basic vs enhanced). Infoconnect also has a weekly minimum charge of $200 per week. More details can be found in our Terms of Use.
Through Infoconnect, you have access to the following databases: U.S. Business Database, U.S. New Business Database, CA Business Database, CA New Business Database, U.S. Consumer Database, U.S. New Movers Database, U.S. Consumer Universe Database, Consolidated Email, and CA White Pages (Consumer-Match only).
Infoconnect supports a huge number of ways to search for companies or people based on geography. There are straight forward searches that use a city or zip code, multiple cities and zip codes, an area around one or more zip codes and even latitude/longitude coordinates. Infoconnect even supports searching an area based on a collection of latitude/longitude coordinates that form the vertices of a polygon.

The easiest way to search for a record is to use the City and State/Province, or a zip code. So to find all the Infogroup offices in Massachusetts, you could do a simple search like this with the StateProvince field:


{
"CompanyName":"Infogroup",
"StateProvince":"MA"
}


Or you can expand your search and include all the states in New England using the StatesProvinces field (notice the plural). This field is actually an array, where as the other one is a simple string.


{
"CompanyName":"Infogroup",
"StatesProvinces":["MA","CT","ME","VT","NH","RI"]
}


You can do the same with ZIP codes also:


{
"CompanyName":"Infogroup",
"PostalCode":["01803"]
}


The PostalCode field is already an array, so it's really easy to just start adding other ZIP codes to the array and get a wider search.


{
"CompanyName":"Infogroup",
"PostalCode":["01803","06831"]
}


Or if you prefer you can use the actual City and State names instead of the ZIP codes like so:


{
"CompanyName":"Infogroup",
"City":"Burlington", "StateProvince":"MA"
}


Or look in multiple cities using the CitiesByStateProvince field.:


{
"CompanyName":"Infogroup",
"CitiesByStateProvince":[
{"City":"Burlington", "StateProvince":"MA"},
{"City":"Papillion","StateProvince":"NE"}
]
}


This field is an array objects with City and StateProvince provided.

City, State, and ZIP are only the beginning though! It's hard to get really targeted results with just those fields, especially if you are looking for very common things like convenience stores, or gas stations. It also doesn't help if you want to send a mailing to just a neighborhood. To get even more specific results you can search a small area around a ZIP code or, even better, a latitude / longitude coordinate. For ZIP codes, use the RadiusPostalCodeList field like this:


{
"CompanyName":"Infogroup",
"RadiusPostalCodeList": [
{ "PostalCode" : "01803",
"RadiusMiles" : "2"
},
{ "PostalCode" : "06831",
"RadiusMiles" : "2"
}
]
}


This field is an array of objects that contain the ZIP code and a radius in miles that you want to search in. If that isn't specific enough for your needs you can get even closer using a latitude / longitude coordinate and search around that using the RadiusCenterPointList field:


{
"CompanyName":"Infogroup",
"RadiusCenterPointList": [
{ "Latitude": 42.485072,
"Longitude": -71.211072,
"RadiusMiles" : "2"
},
{ "Latitude": 41.02819,
"Longitude": -73.662289,
"RadiusMiles" : "2"
}
]
}


What? That isn't specific enough for you?? Well how about searching within a polygon represented by a collection of points? Well, the PolygonList can do just that!


{
"CompanyName": "Infogroup",
"PolygonList": [
{
"Points": [
{
"Latitude": "42.48931",
"Longitude": "-71.22505"
},
{
"Latitude": "42.48931",
"Longitude": "-71.18008"
},
{
"Latitude": "42.47311",
"Longitude": "-71.22505"
},
{
"Latitude": "42.47311",
"Longitude": "-71.18008"
}
]
}
]
}
The Standard Industry Classification code (or SIC) is a 4 digit numeric identifier for a business that identifies what kind of business it is. For example, if you are a restaurant you will be assigned an SIC code of 5812. If you are interested in the full list of SIC codes they are available in many places around the web and the US Department of Labor maintains a searchable database of SIC codes as well as an encyclopedia of how SIC codes are structured and defined.

That's not the end of the story though when it comes to SIC codes. The basic 4 digit structure isn't really good at identifying smaller sub categories in businesses like the difference between new car dealers and used car dealers because both types of businesses are assigned the same code of 5511. However, sometimes you really need to know the differences. Maybe you are a car parts dealer and the car dealers that specialize in used cars are much more likely to buy your parts than new car dealers who tend to get their parts direct from the manufacturer. This is where Infogroup comes in! We saw that people were wasting time and money trying to target business with products or services they were probably never going buy. To help address this problem we took the standard SIC code and extended it with 2 additional digits. So, in the example above we now have 2 additional categories:
  • 551102 - Automobile Dealers - New Cars
  • 551103 - Automobile Dealers - Used Cars
Keep in mind, we have not changed the standard SIC codes, only extended them to add additional categories. Dealers with the new codes are still categorized and can still be found with the standard 4 digit code!

So not only does the existing 4 digit code, 5511, still identify both types of car dealers, but the Infogroup extension helps you better target exactly the kind of car dealer you want! Additionally we have a great API for researching the exact SIC code you are looking for by just keywords.

https://api.infoconnect.com/v1/sics?keyword=car%20dealer

This turns up 60 different categories that contain the words 'car dealer' in the description. Now you get as specific as you want when looking for businesses to target. All you need to do is take one of the SIC codes that was returned and pass that as one of your search criteria to the /companies api like this:

http://api.infoconnect.com/v1/companies/search

POST Data:


{
"ResourceType":"Basic",
"StateProvince":"MA",
"PrimarySic":"551103"
}

This gives you a list of all the used car dealers in Massachusetts!

This is only one example of the kind of detailed classification that goes into the Infogroup data, and really sets our data apart from the competition. Our extended SIC codes help you zero in on exactly the kind of businesses you are looking for! Don't forget to get in touch with us with any questions you have by sending an email to support@infoconnect.com
To see the difference between our Companies, People, Match and SIC API’s, please visit http://developer.infoconnect.com/api.
Depending on the API you call, you will get back one or more ‘records’ (assuming your search found something that is). The format of the record that you get back is actually controlled by a parameter in the request called ‘ResourceType’. Common to the /people, /companies and /match APIs there are 3 record types: Core, Basic, and Enhanced. The people API also includes 2 additional types: TargetReady, and LifeStyle.

The 3 most common types are Core, Basic, and Enhanced.
The most basic record is the ‘Core’ record and it looks like this:
https://api.infoconnect.com/v1/companies/719342925?resourceType=core
Result:
{
        "ETag": "b8cc3f99",
        "Id": "719342925",
        "Links": [
            {
                "Href": "/v1/companies/719342925",
                "Rel": "self"
            },
            {
                "Href": "/v1/companies/452186299",
                "Rel": "parent"
            }
        ],
        "ParentCompany": "452186299"
}
Both ETag and Id are internal record ids that uniquely identify this particular record. The 'Id' field is especially usfull because you can use it in a call to the get API for companies or people to retrieve this particular record again. The same goes for ‘ParentCompany’ if this company has one.
In fact, you can see in the ‘Links’ array, we return these exact URIs for both this record and the parent company record (if there is one).
 
So that is the 'Core' record. It contains just the most basic identifier for the data. The next type of format is the ‘Basic’ record and builds on the 'Core' record to include more information. Below is an example of what this looks like for the same company:
https://api.infoconnect.com/v1/companies/719342925?resourceType=basic
Result:
{
    "ETag": "4e9b0263",
    "Id": "719342925",
    "Links": [
        {
            "Href": "/v1/companies/719342925",
            "Rel": "self"
        },
        {
            "Href": "/v1/companies/452186299",
            "Rel": "parent"
        }
    ],
     "Address": "777 Brockton Ave", "AddressParsed": { "Name": "Brockton", "Number": "777", "Suffix": "Ave" }, "City": "Abington", ""CompanyName": "SUBWAY", "FirstName": "J", "LastName": "Leone", "Location": { "Latitude": 42.096019, "Longitude": -70.967567 }, "Phone": "7814212014", "PostalCode": "02351", "StateProvince": "MA",
    "ParentCompany": "452186299"
}
The next step up from Basic is the ‘Enhanced’ record. This record, again, builds on the Core and Basic and includes even more information.
https://api.infoconnect.com/v1/companies/719342925?resourceType=enhanced
Result:
{
    "ETag": "c8ce34a6",
    "Id": "719342925",
    "Links": [
        {
            "Href": "/v1/companies/719342925",
            "Rel": "self"
        },
        {
            "Href": "/v1/companies/452186299",
            "Rel": "parent"
        }
    ],
    "Address": "777 Brockton Ave",
    "AddressParsed": {
        "Name": "Brockton",
        "Number": "777",
        "Suffix": "Ave"
    },
    "City": "Abington",
    "CompanyName": "SUBWAY",
    "FirstName": "J",
    "LastName": "Leone",
    "Location": {
        "Latitude": 42.096019,
        "Longitude": -70.967567
    },
    "Phone": "7814212014",
    "PostalCode": "02351",
    "StateProvince": "MA",
     "BusinessType": "Restaurants", "County": "Plymouth", "CreditRatingScore": "B+", "Franchise": "Subway", "Gender": "Male", "LocationEmployeesSizeActual": 7, "LocationEmployeesSizeRange": "5-9", "LocationSalesVolumeActual": 406000, "LocationSalesVolumeRange": "Less Than $500,000", "NaicsList": [ { "Code": "72251301", "Description": "Limited-Service Restaurants" }, { "Code": "72251117", "Description": "Full-Service Restaurants" }, { "Code": "72251302", "Description": "Limited-Service Restaurants" }, { "Code": "72251303", "Description": "Limited-Service Restaurants" } ], 
    "ParentCompany": "452186299",
     "PrimaryNaics": "72251117", "PrimarySic": "581208", "SicList": [ { "Code": "581206", "Description": "Foods-Carry Out", "YearFirstAppeared": "2009" }, { "Code": "581208", "Description": "Restaurants", "YearFirstAppeared": "2009" }, { "Code": "581209", "Description": "Delicatessens", "YearFirstAppeared": "2009" }, { "Code": "581219", "Description": "Sandwiches", "YearFirstAppeared": "2009" } ], "Title": "Owner", "UriList": [ { "Uri": "subway.com" } ], "ZipPlus4": "02351-2111"
}
Like SIC codes that this company has been assigned, employee size, sales volume, and credit score.
 
So far all these examples have applied to companies, but people also have the same kinds of records, each with more and more information returned with them. Check out the people api pages [http://developer.infoconnect.com/post-search-0#tabs-4] for all the details on those!
 
One final thing before we finish is that while these types are basically fixed in what data they will return, the APIs also support what is essentially a custom record. Using the 'Fields' parameter in a POST request and omitting the ResourceType paramter you can get only the data back that you want! So, for example, if you only want the company name, geo location, and phone number you could make a POST request like this:
POST https://api.infoconnect.com/v1/companies/search?apikey=
Body:
{
  "Id":["719342925"],
  "Fields":["CompanyName","Location","Phone"]
}
The result will be a ‘Core’ record along with the fields you requested.
{
    "ETag": "7148eab3",
    "Id": "719342925",
    "Links": [
        {
            "Href": "/v1/companies/719342925",
            "Rel": "self"
        },
        {
            "Href": "/v1/companies/452186299",
            "Rel": "parent"
        }
    ],
     "CompanyName": "SUBWAY", "Location": { "Latitude": 42.096019, "Longitude": -70.967567 }, "Phone": "7814212014", 
    "ParentCompany": "452186299"
}


The API documentation contains a list of all the available fields for people and company records in the “Custom Output” section of the doc for each API.

Companies – Custom Output
People – Custom output
For fields available for output for companies: http://developer.infoconnect.com/api/companies
For fields available for output for people: http://developer.infoconnect.com/api/people
By default, the /companies and /people API only return the first 10 records. If more than 10 records are available for a given search, you can make an additional call to the API with the “offset” parameter set to 10. This will return the next 10 records. To increase the overall number of records returned from a single request, use the “limit” parameter. For example, setting the limit to 50 will return 50 records.
Email addresses are available through Infoconnect. In order to receive emails, please contact your sales rep or support@infoconnect.com to have the email service profile added to your API key.
The Infoconnect API, as do all REST API’s, make extensive use of HTTP status codes. It is not going to be a common occurrence, but it is a good idea to understand what to do about error codes you might get back from our API. Here is a breakdown of how Infoconnect lets you know when there is an error by status code.

200 - If everything goes right, the Infoconnect API will return a status code of 200. You may or may not get an actual record back - that depends on your search was, but a return code of 200 means that everything was processed correctly. 400 – An error 400 typically means that the data you provided was formatted ok, but it violated some other API specific rule. The most common reason is when you use the ‘Fields’ parameter to request specific data in the output , but have also passed in the ‘requestType’ parameter. Since these two parameters conflict the API doesn’t know which you meant, so it returns an error. Usually this kind of error will also include specifics in the response text as to the exact nature of the problem.

For example, when submitting the request described above you get this error:

Request:
{ "ResourceType":"enhanced", "StateProvince":"NE", "Fields":["phone"], 'City':"Papillion", "CompanyName":"Target" }

Response:
[ { "Description": "'resourcetype' parameter is not allowed when 'fields' parameter is specified.", "Item": "fields" } ]

401 – This is the second most common kind of error. An error 401 means that there was something wrong with the API key you passed in. It could be that you had a type-o or possibly the key was turned off for some reason. If you continually get this error you should contact us at support@infoconnect.com so we can help get it sorted out.

404 – You will only get this if you try to request a resource by ID that doesn’t exist. Make sure that the URL is correct and the ID you are requesting is also valid. The API is essentially telling you that we don’t have the record you requested.

405 – This error means that the server was expecting something that it didn’t get. One example would be setting the Content-Type header to application/xml but then providing something that isn’t XML in the post data – like JSON. Another common cause of this error is a badly formatted XML or JSON request object – failing to terminate a node in XML or missing a quote or comma in the JSON text.

415 – This simply means that the server cannot accept the data you sent to the API, or it doesn’t support the output that you requested. Double check your Content-Type and Accept headers to be sure there are no typos.

429 – This error is a specific kind of access error and means that you have exceeded either your monthly transaction quota, or have tried to make too many requests in too short of a time. Most keys have a request limit that prevents any user from monopolizing the service, or exceed their accounts billing parameters. Basically this helps us maintain a consistent level of service for all users. If the API detects that you are making too many requests it may shut your key off. If this happens you will receive an error 429. When this happens, you will need to contact us at support&infoconnect.com to get your key re-enabled.

500 – It’s not you this time it’s us. Hopefully you never see this error because, if you do, it means that something bad happened on our side. In almost all cases this is a temporary situation, but don’t hesitate to contact us at support&infoconnect.com if you see this too often.