Top 10 API's for Company Information

, by Fred Rivett

How to turn a domain (e.g. aviva.co.uk) into a data rich UI?

At NUM, we've recently built CompanyDirectory.net, a website dedicated to company information, primarily for finding contact details including phone numbers, opening times, addresses and social media handles but also regulatory information such as Companies House details, FCA numbers and HMRC numbers. We needed to source this data from somewhere, so we looked at the main company information API's options, comparing them to an internal library we'd built to see which API would provide the best data for the site.

We compared the cost, limitations, search terms and data returned to see which options best fit our needs. Below is an overview of our research.

Overview

Below we’ve scored each API in 4 categories (great 🟩 [2 points] / ok 🟨 [1 point] / poor 🟥 [0 points]), with a total score shown at the end, ranked from overall worst to best.

API 💰 Pricing 🔐 Requirements 🔎 Search by ↪️ Returns 🔢 Score
10. Bing Entity Search API $3/1,000 queries (30 day, $200 free trial) Microsoft Azure account, phone number, company address, payment details (prepaid card cannot be used) Keywords & market (e.g. en-US) Name, URL, description and image 2
9. Google Places API $7 per 1000 queries (first $200/mo free, equivalent to 28,500 queries) Google account, payment details (prepaid cards not accepted), third party verification, Google accreditation, address, phone number and API tokens Keywords & location (latitude/longitude) Icon, icon background colour, photos, opening hours, address and user rating 3
8. Yelp Free for up to 5,000 queries/day Yelp account, Yelp app, API key, Yelp attribution and contacting sales for higher limits Keywords & location (latitude/longitude) OR phone number Name, address, rating, phone number, opening hours, category and photos 3
7. ZoomInfo No up-front pricing, you have to request a demo to gain access Signing up, then the sales team email and ring you Region, industry, company name and much more Name, website, domains, logo, social media handles, revenue, employee count, phone number, fax number, address, company status, company descriptions, competitors, industries, office locations, alexa rank, tech stack, revenue range, funding details, year founded and business model 4
6. Google Knowledge Graph Search API Free for 100,000 queries/day Google account and API key Keywords Logo, short and long descriptions from sources such as Wikipedia 4
5. Lusha No up-front pricing, you have to contact sales to gain access Sign up and contacting sales Domain name Company name, description, website, logo, language, estimated revenue range, estimated number of employees, year founded, address, social links, industry tags, categories, and website traffic 4
4. BrandFetch $129/mo for 2500 API calls (250 calls/mo free) Sign up but no payment details, quite a simple setup Domain name Company name, description, social links, logos and other images, brand colours and fonts 4
3. UpLead $149/mo for 400 queries (7 day free trial) Email address and company name Domain name OR company name Company name, description, domain, address, phone number, fax number, estimated employees, estimated revenue, year founded, total funding and alexa ranking 4
2. Clearbit $199/mo for 550 lookups ($0.36/lookup) Clearbit account, API key, phone number and contacting sales for higher limits Domain name OR email address Name, legal name, domain aliases, phone numbers, email addresses, company sector info, tags, description, year founded, location, logo, social handles, employee count, fundraising amounts, Alexa rank and tech stack 5
1. company-api Free forever No sign up, no rate limiting and no restrictions Domain name Company name, slogan, logos, addresses, social media profiles, phone numbers, opening hours, fax numbers, VAT number, FCA number and Companies House number 8

10. Bing Entity Search API

Key points

  • 💰 $3/1,000 queries (30 day, $200 free trial)
  • 🔐 Requires Microsoft Azure account, phone number, company address, payment details (prepaid card cannot be used)
  • 🔎 Search by keywords and market (e.g. en-US)
  • ↪️ Returns name, URL, description and image

Other upsides/downsides

  • ❌ Returns limited details
  • ❌ Lacks results for some well known smaller businesses (see example queries)
  • ❌ No free plan (just a 30 day free trial)
  • ❌ Proprietary closed source API, usage at Microsoft’s discretion, could be shut off at any point

Example queries

GET https://api.bing.microsoft.com/v7.0/entities?q=Aviva&mkt=en-US&responseFilter=entities

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "Aviva"
  },
  "entities": {
    "value": [
      {
        "id": "https://www.bingapis.com/api/v7/#Entities.0",
        "contractualRules": [
          {
            "_type": "ContractualRules/LicenseAttribution",
            "targetPropertyName": "description",
            "mustBeCloseToContent": true,
            "license": {
              "name": "CC-BY-SA",
              "url": "http://creativecommons.org/licenses/by-sa/3.0/"
            },
            "licenseNotice": "Text under CC-BY-SA license"
          },
          {
            "_type": "ContractualRules/LinkAttribution",
            "targetPropertyName": "description",
            "mustBeCloseToContent": true,
            "text": "Wikipedia",
            "url": "http://en.wikipedia.org/wiki/Aviva"
          },
          {
            "_type": "ContractualRules/MediaAttribution",
            "targetPropertyName": "image",
            "mustBeCloseToContent": true,
            "url": "http://www.aviva.com/"
          }
        ],
        "webSearchUrl": "https://www.bing.com/entityexplore?q=Aviva&filters=sid:%22b0013a80-43ba-2d1f-6709-a3fb3cdcd1e5%22&elv=AXXfrEiqqD9r3GuelwApulp7cajxAMSpVAANYxOLZVTSr2ezpkoBgPyEgKNbO8JBVtU0CbRCH!hXO5i7WY!44nXYP4Yx0XzLX!OsiUkxxSdI",
        "name": "Aviva",
        "url": "https://www.aviva.co.uk/",
        "image": {
          "name": "Aviva",
          "thumbnailUrl": "https://www.bing.com/th?id=AMMS_304de69b3cf448508810c52defd09dc9&w=110&h=110&c=7&rs=1&qlt=95&cdv=1&pid=16.1",
          "provider": [
            {
              "_type": "Organization",
              "url": "http://www.aviva.com/"
            }
          ],
          "hostPageUrl": "http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Aviva_Logo.svg/500px-Aviva_Logo.svg.png",
          "width": 110,
          "height": 110,
          "sourceWidth": 474,
          "sourceHeight": 340
        },
        "description": "Aviva plc is a British multinational insurance company headquartered in London, England. It has about 18 million customers across its core markets of the United Kingdom, Ireland and Canada. In the United Kingdom, Aviva is the largest general insurer and a leading life and pensions provider. Aviva is also the second largest general insurer in Canada.",
        "entityPresentationInfo": {
          "entityScenario": "DominantEntity",
          "entityTypeHints": [
            "Organization"
          ]
        },
        "bingId": "b0013a80-43ba-2d1f-6709-a3fb3cdcd1e5"
      }
    ]
  },
  "rankingResponse": {
    "sidebar": {
      "items": [
        {
          "answerType": "Entities",
          "resultIndex": 0,
          "value": {
            "id": "https://www.bingapis.com/api/v7/#Entities.0"
          }
        }
      ]
    }
  }
}

Data is quite limited though, searching for my favourite multi-store burger joint in London doesn’t return any information:

GET https://api.bing.microsoft.com/v7.0/entities?q=Bleecker Burger&mkt=en-US&responseFilter=entities

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "Bleecker Burger"
  },
  "rankingResponse": {
    "sidebar": {
      "items": [
        {
          "answerType": "Entities"
        }
      ]
    }
  }
}

Summary

The Bing Entity Search API is quite simple to use, can be queried by keywords and offers straightforward pricing, but there’s no free plan and the results are limited in both consistency and depth so alternatives would work better for anything more than an app that needs simple details.


9. Google Places API

Key points

  • 💰 $7 per 1000 queries (first $200/mo free, equivalent to 28,500 queries)
  • 🔐 Requires Google account, payment details (prepaid cards not accepted), third party verification, Google accreditation, address, phone number and API tokens
  • 🔎 Search by keywords & location (latitude/longitude)
  • ↪️ Returns icon, icon background colour, photos, opening hours, address and user rating

Other upsides/downsides

  • ❌ Returns information about specific store locations, not companies
  • ❌ Convoluted setup, requires granting permissions for two API’s (Maps Javascript API & Places API)
  • ❌ Complicated API documentation primarily aimed at displaying maps on websites
  • ❌ Returned results must be used on a Google Map if displayed on a map or show “Powered by Google” logo on any page that uses the Places API that doesn’t display data on a map
  • ❌ Rate limited to 100 requests a second
  • ❌ Proprietary closed source API, usage at Google’s discretion, could be shut off at any point

Example queries

Using <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=placeSearch&libraries=places&v=weekly&channel=2" async></script> we can query the Places Search endpoint with the following JS:

let map;
let service;
let infowindow;

function placeSearch() {
  const london = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();
  map = new google.maps.Map(document.getElementById("map"), {
    center: london,
    zoom: 15,
  });

  const request = {
    query: "Aviva",
    fields: ["business_status", "formatted_address", "icon", "icon_mask_base_uri", "icon_background_color", "name", "photos", "place_id", "plus_code", "types"],
  };

  service = new google.maps.places.PlacesService(map);
  service.findPlaceFromQuery(request, (results, status) => {
    console.log(results);
  });
}

Returns:

{
  "business_status": "OPERATIONAL",
  "formatted_address": "Fisher Michael Boundary Place, 4 County Pl, Chelmsford CM2 0RE, United Kingdom",
  "html_attributions": [],
  "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png",
  "icon_background_color": "#7B9EB0",
  "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet",
  "name": "Aviva",
  "place_id": "ChIJAw89stbr2EcRoe-Gv0hbwZc",
  "plus_code": {
    "compound_code": "PFJ9+6R Chelmsford",
    "global_code": "9F32PFJ9+6R"
  },
  "types": ["insurance_agency", "point_of_interest", "establishment"]
}

Then using <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=placeDetail&libraries=places&v=weekly&channel=2" async></script>, which is the same as the previous script but with a new callback function, we can take the place_id returned and do a look up to the Place Details API:

function placeDetails() {
  const london = new google.maps.LatLng(-33.867, 151.195);

  const map = new google.maps.Map(document.getElementById("map"), {
    center: london,
    zoom: 15,
  });
  const request = {
    placeId: "ChIJAw89stbr2EcRoe-Gv0hbwZc",
    fields: ["business_status", "formatted_address", "icon", "icon_mask_base_uri", "icon_background_color", "opening_hours", "name", "photos", "place_id", "plus_code", "price_level", "rating", "types", "user_ratings_total"],
  };
  const infowindow = new google.maps.InfoWindow();
  const service = new google.maps.places.PlacesService(map);

  service.getDetails(request, (place, status) => {
      console.log(place);
  });
}

Returns:

{
  "business_status": "OPERATIONAL",
  "formatted_address": "Fisher Michael Boundary Place, 4 County Pl, Chelmsford CM2 0RE, UK",
  "html_attributions": [],
  "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png",
  "icon_background_color": "#7B9EB0",
  "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet",
  "name": "Aviva",
  "opening_hours": {
    "isOpen": /* function */,
    "open_now": true,
    "periods": [{
  "close": {
    "day": 0,
    "hours": 16,
    "minutes": 0,
    "time": "1600"
  },
  "open": {
    "day": 0,
    "hours": 10,
    "minutes": 0,
    "time": "1000"
  }
}, {
  "close": {
    "day": 1,
    "hours": 17,
    "minutes": 30,
    "time": "1730"
  },
  "open": {
    "day": 1,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}, {
  "close": {
    "day": 2,
    "hours": 17,
    "minutes": 30,
    "time": "1730"
  },
  "open": {
    "day": 2,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}, {
  "close": {
    "day": 3,
    "hours": 17,
    "minutes": 30,
    "time": "1730"
  },
  "open": {
    "day": 3,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}, {
  "close": {
    "day": 4,
    "hours": 17,
    "minutes": 30,
    "time": "1730"
  },
  "open": {
    "day": 4,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}, {
  "close": {
    "day": 5,
    "hours": 17,
    "minutes": 30,
    "time": "1730"
  },
  "open": {
    "day": 5,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}, {
  "close": {
    "day": 6,
    "hours": 17,
    "minutes": 0,
    "time": "1700"
  },
  "open": {
    "day": 6,
    "hours": 8,
    "minutes": 30,
    "time": "0830"
  }
}],
    "weekday_text": ["Monday: 8:30 am – 5:30 pm", "Tuesday: 8:30 am – 5:30 pm", "Wednesday: 8:30 am – 5:30 pm", "Thursday: 8:30 am – 5:30 pm", "Friday: 8:30 am – 5:30 pm", "Saturday: 8:30 am – 5:00 pm", "Sunday: 10:00 am – 4:00 pm"]
  },
  "place_id": "ChIJAw89stbr2EcRoe-Gv0hbwZc",
  "plus_code": {
    "compound_code": "PFJ9+6R Chelmsford, UK",
    "global_code": "9F32PFJ9+6R"
  },
  "rating": 2.9,
  "types": ["insurance_agency", "point_of_interest", "establishment"],
  "user_ratings_total": 64
}

Despite searching based upon London's lat/long co-ordinates, this has returned information about an office in Chelmsford, over 30 miles away. There could be some use to this API if the goal was to display store location information, but for generic information about the company multi-billion pound company Aviva it is severly lacking.

To try this out yourself, setup your Google account, payment details (prepaid cards not accepted), third party verification, Google accreditation, address, phone number and API tokens, and then use the API token in place of YOUR_API_KEY in these examples:

Summary

This API isn’t designed for finding information about companies, but if you’re looking for information about a single store or a company with only one location, the Places API can return some useful detail.

That information comes with strings attached though, it requires a Google account, token access for multiple API’s, payment information (including verification with a third party) and any results must be accredited with the “Powered by Google”. That said, the free tier is generous, with the first $200/mo free (equivalent to 28,500 queries).


8. Yelp

Key points

  • 💰 Free for up to 5,000 queries/day
  • 🔐 Requires Yelp account, Yelp app, API key, Yelp attribution and contacting sales for higher limits
  • 🔎 Search by keywords & location (latitude/longitude) OR via phone number
  • ↪️ Returns information including name, address, rating, phone number, opening hours, category and photos

Other upsides/downsides

  • ✅ Data on 50 million businesses across 32 countries
  • ✅ Can query for user reviews
  • ❌ Similar to Google Places API, Yelp isn’t designed for finding company information but details about specific store locations
  • ❌ Not allowed to blend user review data with other sources
  • ❌ Not allowed to store data for longer than 24 hours
  • ❌ Not allowed to be used to build a Yelp competitor (fair enough)
  • ❌ Proprietary closed source API, usage at Yelp’s discretion, could be shut off at any point

Example queries

GET https://api.yelp.com/v3/businesses/search?term=aviva&latitude=51.509865&longitude=-0.118092

{
  "businesses": [
    {
      "id": "MvF1i9fGky4_ehSXslKs-A",
      "alias": "aviva-london",
      "name": "Aviva",
      "image_url": "",
      "is_closed": false,
      "url": "https://www.yelp.com/biz/aviva-london?adjust_creative=CkiJNWvSMg91vq0uyRL-tA&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=CkiJNWvSMg91vq0uyRL-tA",
      "review_count": 1,
      "categories": [
        {
          "alias": "insurance",
          "title": "Insurance"
        }
      ],
      "rating": 5.0,
      "coordinates": {
        "latitude": 51.514252,
        "longitude": -0.081595
      },
      "transactions": [],
      "location": {
        "address1": "ST. Helens",
        "address2": "1 Undershaft",
        "address3": "",
        "city": "London",
        "zip_code": "EC3P 3DQ",
        "country": "GB",
        "state": "XGL",
        "display_address": [
          "ST. Helens",
          "1 Undershaft",
          "London EC3P 3DQ",
          "United Kingdom"
        ]
      },
      "phone": "+442072837500",
      "display_phone": "+44 20 7283 7500",
      "distance": 2572.950254115449
    },
    // other results
  ]
}

We can then use the alias to get further information:

GET https://api.yelp.com/v3/businesses/aviva-london

{
  "id": "MvF1i9fGky4_ehSXslKs-A",
  "alias": "aviva-london",
  "name": "Aviva",
  "image_url": "",
  "is_claimed": false,
  "is_closed": false,
  "url": "https://www.yelp.com/biz/aviva-london?adjust_creative=CkiJNWvSMg91vq0uyRL-tA&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_lookup&utm_source=CkiJNWvSMg91vq0uyRL-tA",
  "phone": "+442072837500",
  "display_phone": "+44 20 7283 7500",
  "review_count": 1,
  "categories": [
    {
      "alias": "insurance",
      "title": "Insurance"
    }
  ],
  "rating": 5.0,
  "location": {
    "address1": "ST. Helens",
    "address2": "1 Undershaft",
    "address3": "",
    "city": "London",
    "zip_code": "EC3P 3DQ",
    "country": "GB",
    "state": "XGL",
    "display_address": [
      "ST. Helens",
      "1 Undershaft",
      "London EC3P 3DQ",
      "United Kingdom"
    ],
    "cross_streets": ""
  },
  "coordinates": {
    "latitude": 51.514252,
    "longitude": -0.081595
  },
  "photos": [],
  "transactions": []
}

Summary

Yelp has a vast amount of data and a generous free quota, so if you’re looking for info on store locations this could be a great option for you, but if you’re looking for company data beyond small one location companies then the data will be hard to work with.


7. ZoomInfo Enterprise API

Key points

  • 💰 With no up-front pricing, you have to request a demo to gain access
  • 🔐 Requires signing up, then the sales team email and ring you
  • 🔎 Search by region, industry, company name and much more
  • ↪️ Returns name, website, domains, logo, social media handles, revenue, employee count, phone number, fax number, address, company status, company descriptions, competitors, industries, office locations, alexa rank, tech stack, revenue range, funding details, year founded and business model

Summary

I wasn’t able to try anything out here without agreeing to have a phone call with their sales team to discuss my needs. It could be a useful data source, but with the sales call requirement and their API being called “Enterprise API”, it’s clear this API is not for your average startup.


6. Google Knowledge Graph Search API

Key points

  • 💰 Free for 100,000 queries/day
  • 🔐 Requires Google account and API key
  • 🔎 Search by keywords
  • ↪️ Returns logo, short and long descriptions from sources such as Wikipedia

Other upsides/downsides

  • ❌ Proprietary closed source API, usage at Google’s discretion, could be shut off at any point

Example queries

GET https://kgsearch.googleapis.com/v1/entities:search?query=Aviva&limit=10&indent=true&types=Corporation&key=${API_KEY}

{
  "@context": {
    "detailedDescription": "goog:detailedDescription",
    "goog": "http://schema.googleapis.com/",
    "@vocab": "http://schema.org/",
    "EntitySearchResult": "goog:EntitySearchResult",
    "kg": "http://g.co/kg",
    "resultScore": "goog:resultScore"
  },
  "@type": "ItemList",
  "itemListElement": [
    {
      "resultScore": 5673.09326171875,
      "@type": "EntitySearchResult",
      "result": {
        "image": {
          "contentUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQEREg5Tno1KMbrlRNq6VESDTFhUJaZ4IUxH6OfWNqYOkbv-QBo",
          "url": "https://commons.wikimedia.org/wiki/File:Aviva_Logo.svg"
        },
        "@type": [
          "Thing",
          "Corporation",
          "Organization"
        ],
        "description": "Insurance company",
        "@id": "kg:/m/03jt5j",
        "detailedDescription": {
          "url": "https://en.wikipedia.org/wiki/Aviva",
          "license": "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License",
          "articleBody": "Aviva plc is a British multinational insurance company headquartered in London, England. It has about 18 million customers across its core markets of the United Kingdom, Ireland and Canada. "
        },
        "name": "Aviva",
        "url": "http://www.aviva.com/"
      }
    },
  }
}

Summary

With a very generous free tier, the Knowledge Graph Search API is an excellent choice if all you want is a logo and company description, but its limitation is the minimal data types returned.


5. Lusha

Key points

  • 💰 With no up-front pricing, you have to contact sales to gain access
  • 🔐 Requires sign up and contacting sales
  • 🔎 Search by domain
  • ↪️ Returns company name, description, website, logo, language, estimated revenue range, estimated number of employees, year founded, address, social links, industry tags, categories, and website traffic

Other upsides/downsides

  • ✅ 15 million full company profiles
  • ✅ They claim over 280,000 companies and 800,000 sales professionals use Lusha, so it seems a mature, well used option
  • ❌ Proprietary closed source API, usage at Lusha’s discretion, could be shut off at any point

Summary

The data available with Lusha seems very mature, with a decent amount of attributes returned, but whenever a company require contacting sales to try it out you know they’re not aimed at the average startup, and prices could be high as a result.

Certainly an option to try if you’re patient enough to go through the sales process and have enough money in the bank to come to an agreement.


4. BrandFetch

Key points

  • 💰 $129/mo for 2500 API calls (250 calls/mo free)
  • 🔐 Requires sign up but no payment details, quite a simple setup
  • 🔎 Search by domain name
  • ↪️ Returns company name, description, social links, logos and other images, brand colours and fonts

Other upsides/downsides

  • ✅ Scrapes on demand if no existing data, with decent results
  • ❌ Requires contacting sales for a custom deal beyond 2500 API calls/mo
  • ❌ Proprietary closed source API, usage at BrandFetch’s discretion, could be shut off at any point

Example queries

GET https://api.brandfetch.io/v2/brands/aviva.co.uk

{
  "name": "Aviva UK",
  "domain": "aviva.co.uk",
  "claimed": false,
  "description": "Aviva provides around 31 million customers worldwide with insurance, savings and investment products.",
  "links": [
    {
      "name": "youtube",
      "url": "https://youtube.com/youtube.com/avivauk"
    },
    {
      "name": "twitter",
      "url": "https://twitter.com/AvivaUK"
    },
    {
      "name": "facebook",
      "url": "https://facebook.com/avivauk"
    }
  ],
  "logos": [
    {
      "type": "icon",
      "theme": null,
      "formats": [
        {
          "src": "https://asset.brandfetch.io/idgMO55uzh/idc-TPf1UK.png",
          "background": null,
          "format": "png",
          "height": 400,
          "width": 400,
          "size": 22829
        }
      ]
    },
    {
      "type": "logo",
      "theme": null,
      "formats": [
        {
          "src": "https://asset.brandfetch.io/idgMO55uzh/idjE18ENap.svg",
          "background": "transparent",
          "format": "svg",
          "size": 6355
        },
        {
          "src": "https://asset.brandfetch.io/idgMO55uzh/idLJwzQByU.png",
          "background": "transparent",
          "format": "png",
          "height": 201,
          "width": 800,
          "size": 24336
        }
      ]
    }
  ],
  "colors": [
    {
      "hex": "#111111",
      "type": "dark",
      "brightness": 17
    },
    {
      "hex": "#ffffff",
      "type": "light",
      "brightness": 255
    },
    {
      "hex": "#004fb6",
      "type": "accent",
      "brightness": 70
    }
  ],
  "fonts": [
    {
      "name": "source_sans_probold",
      "type": "title",
      "origin": "custom",
      "originId": null,
      "weights": []
    },
    {
      "name": "sans-serif",
      "type": "body",
      "origin": "custom",
      "originId": null,
      "weights": []
    }
  ],
  "images": [
    {
      "type": "banner",
      "formats": [
        {
          "src": "https://asset.brandfetch.io/idgMO55uzh/id-G876cAL.png",
          "background": null,
          "format": "png",
          "height": 500,
          "width": 1500,
          "size": 25987
        }
      ]
    }
  ]
}

Summary

As the name suggests, if you’re looking to add a bit of branding to a company result then BrandFetch are an excellent option. You can search by domain name and the results returned make displaying beautiful results easy, but the data is primarily limited to company branding information and it’s not cheap, starting at $129/mo if you need more than 250 calls per month.


3. UpLead

Key points

  • 💰 $149/mo for 400 queries (7 day free trial)
  • 🔐 Requires email address and company name
  • 🔎 Search by domain name or company name
  • ↪️ Returns company name, description, domain, address, phone number, fax number, estimated employees, estimated revenue, year founded, total funding and alexa ranking

Other upsides/downsides

  • ❌ Proprietary closed source API, usage at Uplead’s discretion, could be shut off at any point

Example queries

We were unable to find how to do an API query, but were able to see the data available within their UI.

UpLead example data

Summary

Starting off at $149/mo makes this solution far from the cheapest option and the results from our test queries were sometimes lacking, but if you’re simply looking for to enrich company results and have the budget then UpLead could be a viable option.


2. Clearbit

Key points

  • 💰 $199/mo for 550 lookups ($0.36/lookup)
  • 🔐 Requires Clearbit account, API key, phone number and contacting sales for higher limits
  • 🔎 Search by domain name OR email address
  • ↪️ Returns name, legal name, domain aliases, phone numbers, email addresses, company sector info, tags, description, year founded, location, logo, social handles, employee count, fundraising amounts, Alexa rank and tech stack

Other upsides/downsides

  • ✅ Quick sign up, no credit card required to test it out
  • ❌ Doesn’t always have results, but queries on demand, though sometimes fails to find information for some lookups
  • ❌ Proprietary closed source API, usage at Clearbit’s discretion, could be shut off at any point

Example queries

GET https://company.clearbit.com/v2/companies/find?domain=aviva.com

{
  "id": "cd7aec76-afce-486f-97e7-e628d2af1874",
  "name": "Aviva plc",
  "legalName": "Aviva Plc",
  "domain": "aviva.com",
  "domainAliases": [
    "aviva.com.my",
    "aviva.ro",
    "aviva.org.es",
    // more entries
  ],
  "site": {
    "phoneNumbers": [
      "+44 117 378 8361",
      "+1 877-248-4237",
      "+1 781-575-4555",
      "+44 371 495 0105",
      "+353 86 606 9702",
      "+353 87 246 0358",
      "+1 437 215 5770"
    ],
    "emailAddresses": [
      "DATAPRT@aviva.com",
      "aviva.shareholders@aviva.com",
      "avivaventures@aviva.com",
      "IR@aviva.com",
      "contactus@aviva.com",
      "andrew.reid@aviva.com",
      "sarah.swailes@aviva.com",
      "heleana.greeves@aviva.com",
      "steve.whitelock@aviva.com",
      "joe.booth@aviva.com"
    ]
  },
  "category": {
    "sector": "Financials",
    "industryGroup": "Diversified Financials",
    "industry": "Diversified Financial Services",
    "subIndustry": "Financial Services",
    "sicCode": "63",
    "naicsCode": "52"
  },
  "tags": [
    "Financial Services",
    "B2B",
    "B2C"
  ],
  "description": "Aviva plc is a British multinational insurance company headquartered in London, England.",
  "foundedYear": 2000,
  "location": "St Helen's 1, Undershaft, London EC3P 3DQ, UK",
  "timeZone": "Europe/London",
  "utcOffset": 0,
  "geo": {
    "streetNumber": null,
    "streetName": "Undershaft",
    "subPremise": null,
    "streetAddress": "Undershaft",
    "city": "London",
    "postalCode": "EC3P 3DQ",
    "state": "Greater London",
    "stateCode": null,
    "country": "United Kingdom",
    "countryCode": "GB",
    "lat": 51.514242,
    "lng": -0.081583
  },
  "logo": "https://logo.clearbit.com/aviva.com",
  "facebook": {
    "handle": null,
    "likes": null
  },
  "linkedin": {
    "handle": "company/aviva-plc"
  },
  "twitter": {
    "handle": "avivaplc",
    "id": "30626664",
    "bio": "With you today, for a better tomorrow. Follow for Aviva company updates and views. We’re here weekdays 9am-5pm. For UK customer help, tweet @AvivaUK.",
    "followers": 19957,
    "following": 478,
    "location": "London",
    "site": "https://t.co/D1dQeJFobe",
    "avatar": "https://pbs.twimg.com/profile_images/1460568812185690118/bwLI3fHw_normal.jpg"
  },
  "crunchbase": {
    "handle": "organization/aviva-group"
  },
  "emailProvider": false,
  "type": "public",
  "ticker": "AV",
  "identifiers": {
    "usEIN": null
  },
  "phone": "+44 1603 622200",
  "metrics": {
    "alexaUsRank": null,
    "alexaGlobalRank": 374583,
    "employees": 28760,
    "employeesRange": "10K-50K",
    "marketCap": 20460000000,
    "raised": null,
    "annualRevenue": null,
    "estimatedAnnualRevenue": null,
    "fiscalYearEnd": null
  },
  "indexedAt": "2022-02-13T01:31:47.457Z",
  "tech": [
    "recaptcha",
    "adobe_dynamic_tag_management",
    "google_tag_manager",
    // more entries
  ],
  "techCategories": [
    "authentication_services",
    "tag_management",
    "productivity",
    // more entries
  ],
  "parent": {
    "domain": null
  },
  "ultimateParent": {
    "domain": null
  }
}

Summary

If you can afford it, Clearbit have excellent data on a lot of domains, and it’s quick and easy to give it a try, but the costs soon rack up so the vast majority of use cases won’t find this data source to be economically viable.


1. company-api

Key points

  • 💰 Free forever
  • 🔐 No sign up, no rate limiting and no restrictions
  • 🔎 Search by domain
  • ↪️ Returns company name, slogan, logos, addresses, social media profiles, phone numbers, opening hours, fax numbers, VAT number, FCA number and Companies House number

Other upsides/downsides

  • ✅ 23m data points on 4.8m UK companies
  • ✅ Open source and built on open protocols
  • ✅ Cannot be shut off from usage
  • ❌ UK only (US rollout coming in 2022)

Example queries

aviva.com (shown here collapsed, as fully the unpacked result is 24,880 lines long):

{
  "object_type": "organization",
  "object_display_name": "Organisation",
  "name": "Aviva",
  "slogan": "Insurance, Savings and Investments",
  "contacts": [
    {
      "method_type": "link",
      "@L": "business",
      "description": "Business Customers",
      "icon": "https://100px.logos.uk/link.media.num.uk.png",
      "numObject": {
        "object_type": "department",
        "object_display_name": "Department",
        "name": "Aviva Business",
        "description": null,
        "contacts": [
          {
            "method_type": "link",
            "@L": "insurance",
            "description": "Business Insurance",
            "icon": "https://100px.logos.uk/link.media.num.uk.png",
            "numObject": {
              "object_type": "department",
              "object_display_name": "Department",
              "name": "Business Insurance",
              "description": null,
              "contacts": [
                {
                  "method_type": "link",
                  "@L": "business-vehicle-insurance",
                  "description": "Vehicle Insurance",
                  "icon": "https://100px.logos.uk/link.media.num.uk.png",
                  "numObject": {
                    "object_type": "department",
                    "object_display_name": "Department",
                    "name": "Vehicle Insurance",
                    "description": null,
                    "contacts": [
                      {
                        "method_type": "telephone",
                        "method_display_name": "Telephone",
                        "description_default": "Call",
                        "description": "Make a claim",
                        "action": "tel:+44345 030 6925",
                        "value": {
                          "original": "+44345 030 6925",
                          "country": "GB",
                          "display": "0345 030 6925",
                          "dial": "+443450306925"
                        },
                        "controller": null,
                        "hours": {
                          "original": [
                            "wd@0-24"
                          ],
                          "days": [
                            {
                              "date": "2022-02-18",
                              "available": [
                                "00:00:00-23:59:59"
                              ]
                            },
                            {
                              "date": "2022-02-19",
                              "available": [
                                "00:00:00-00:00:00"
                              ]
                            },
                            {
                              "date": "2022-02-20",
                              "available": [
                                "00:00:00-00:00:00"
                              ]
                            },
                            {
                              "date": "2022-02-21",
                              "available": [
                                "00:00:00-23:59:59"
                              ]
                            },
                            {
                              "date": "2022-02-22",
                              "available": [
                                "00:00:00-23:59:59"
                              ]
                            },
                            {
                              "date": "2022-02-23",
                              "available": [
                                "00:00:00-23:59:59"
                              ]
                            },
                            {
                              "date": "2022-02-24",
                              "available": [
                                "00:00:00-23:59:59"
                              ]
                            }
                          ],
                          "available_now": true
                        },
                        "icon": "https://100px.logos.uk/telephone.media.num.uk.png"
                      },
                      // more entries
                    ],
                    "methods": /* collapsed data */
                  }
                },
                // more entries
              ],
              "methods": /* collapsed data */
            }
          },
          // more entries
        ],
        "methods": /* collapsed data */
      }
    },
    // more entries
  ],
  "methods": {
    "link": /* collapsed data */,
    "facebook": {
      "method_display_name": "Facebook",
      "description_default": "View Facebook profile",
      "controller": "facebook.com",
      "icon": "https://100px.logos.uk/facebook.media.num.uk.png",
      "list": [
        {
          "action": "https://www.facebook.com/avivaUK",
          "value": "/avivaUK"
        }
      ]
    },
    "twitter": /* collapsed data */,
    "youtube": /* collapsed data */
  },
  "images": [
    {
      "name": null,
      "type": "logo",
      "variants": [
        {
          "url": "https://logos.uk/num/aviva-uk-icon.png",
          "mime": "image/png",
          "width": 400,
          "height": 400
        }
      ]
    }
  ]
}

The full (24,880 lines long) result is easier to parse on the NUM website.

Summary

Though we’re biased, our company-api library is the only option that provides free, unlimited and unrestricted access to company data. You don’t need an account, there’s no API key and therefore no rate limiting, and there’s no threat of your provider turning off your access because they’re threatened by how you’re using it.

With a recently created developer community where you can ask questions of the NUM team and collaborate with other developers, NUM is a new source of data to power your startup.

Conclusion

There are lots of options out there for fetching company data, and the right solution will depend on how you want to query (keywords / location / domain), what sort of data you need, how many hoops you’re willing to jump through and how much you’re willing to spend.

If money is no issue, Clearbit and UpLead are well worth looking into with a lot of data on offer. If you simply want to augment a company listing with a logo and description, then Google Knowledge Graph Search API might be worth a look with it’s generous free plan. But, whilst we’re clearly biased, company-api has benefits across the board, with no sign up, no limits and over 23m data points on 4.8m companies with more data being added every day.


Spotted anything we haven’t got quite right or any extra info you think we should add? Let us know!