# Company Enrichment API - Clearbit Alternative, Logo & Industry (`kantolabs/company-enrichment`) Actor

Turn domains or company names into company profiles: logo, social links, apps, key pages, industry, HQ, founding year, employees, revenue and ticker from the company site and Wikidata. $3 per 1,000 companies.

- **URL**: https://apify.com/kantolabs/company-enrichment.md
- **Developed by:** [Kanto Labs](https://apify.com/kantolabs) (community)
- **Categories:** Lead generation, Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 company enricheds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Company Enrichment - Logo, Socials, Industry & Size from a Domain or Name

Turn a list of **domains or company names** into **clean company profiles**: name, description,
**logo**, favicon, brand colour, the company's **social media profiles**, its **iOS and Android
apps**, links to its **about / pricing / careers / contact** pages - plus **industry, country,
headquarters, founding year, employee count, revenue, stock ticker, parent company and legal
form**.

It combines two open sources in one row per company:

1. **The company's own homepage** - one normal visit, read like a browser would.
2. **Wikidata** - the free, CC0 knowledge base behind Wikipedia, with firmographics for hundreds of
   thousands of companies.

A low-cost **Clearbit / Brandfetch alternative** for CRM enrichment, lead lists, logo walls and
AI agents. **$3 per 1,000 companies**, and you pay only for companies that returned data.

### What does Company Enrichment do?

Company Enrichment turns each domain, URL, email address or company name into one company profile row. It reads the company's homepage once for its name, description, logo, favicon, social profiles, app store links and key pages, and looks the company up on Wikidata for industry, country, headquarters, founding year, employee count, revenue, stock ticker and parent company.

### Use cases

- **CRM and lead-list enrichment** - add logo, industry, size, HQ and social links to a list of domains.
- **Show logos in your product** - customer walls, integrations pages, dashboards (Clearbit's free logo API is gone).
- **Account research and sales prep** - one row tells you what the company does, how big it is, where it is, whether it is public, and where its pricing and careers pages are.
- **Market maps and investor research** - industries, founding years, tickers and parent companies in bulk.
- **Data cleaning** - normalise messy company names to an official website and a Wikidata ID.
- **AI agents** - one tool call through the Apify MCP server answers "tell me about this company".

### Who is it for?

- **SDR and RevOps teams** enriching CRM records and lead lists from a domain.
- **Founders and marketers** building account lists with logos, industries and company size.
- **Product teams** that need company logos for customer walls and dashboards.
- **Investors and analysts** building market maps with founding years, tickers and parents.
- **Data teams** matching messy company names to an official website and a Wikidata ID.

### What you get

| Group | Fields |
|---|---|
| Identity | `name`, `domain`, `website`, `description`, `language` |
| Brand | `logoUrl`, `faviconUrl`, `websiteData.themeColor`, `websiteData.ogImageUrl`, `websiteData.appleTouchIconUrl` |
| Firmographics | `industries`, `country`, `headquarters`, `founded`, `employees`, `revenue`, `revenueCurrency`, `stockTickers`, `parentOrganization` |
| Online presence | `socialProfiles` (LinkedIn, X, Facebook, Instagram, YouTube, TikTok, GitHub, Pinterest, Threads, Bluesky, Discord, Telegram, Reddit, Medium, Crunchbase, Wikipedia), `appStoreLinks` (App Store, Google Play, Chrome Web Store), `keyPages` (about, pricing, careers, contact, blog, docs), `wikipediaUrl` |
| Raw sources | `websiteData` (everything read from the homepage, incl. schema.org data) and `wikidata` (ID, legal form, LEI, ISIN, OpenCorporates and Crunchbase IDs, dates of the employee and revenue figures) |

**No personal data:** no email addresses, no phone numbers, no names of people. Social links are the
company's own profiles as published on its own website or on Wikidata.

### How to use it

1. Click **Try for free**.
2. Paste domains, URLs, email addresses or company names into **Companies**, one per line.
3. Click **Start**.
4. Download the profiles as JSON, CSV or Excel, or read them through the API.

### Input

| Field | What it does | Default |
|---|---|---|
| `companies` | One per line: a domain (`stripe.com`), a URL, an email address or a company name (`Spotify`). Names are matched on Wikidata, which also supplies the official website. | `apify.com`, `stripe.com`, `Spotify` |
| `includeWebsite` | Read the company's homepage | `true` |
| `includeWikidata` | Firmographics from Wikidata | `true` |
| `maxConcurrency` | Companies processed in parallel | `10` |

```json
{
    "companies": ["hubspot.com", "https://www.notion.so/product", "Siemens", "ceo@canva.com"]
}
```

### Output

Real output from a cloud run (the `websiteData` and `wikidata` blocks are trimmed):

```json
{
    "input": "hubspot.com",
    "inputType": "domain",
    "domain": "hubspot.com",
    "website": "https://www.hubspot.com/",
    "name": "HubSpot",
    "description": "HubSpot's customer platform includes all the marketing, sales, customer service, and CRM software you need to grow your business.",
    "logoUrl": "https://www.hubspot.com/hubfs/HubSpot_Logos/HSLogo_color.svg",
    "faviconUrl": "https://www.hubspot.com/hubfs/HubSpot_Logos/HubSpot-Inversed-Favicon.png",
    "industries": ["software industry", "software as a service", "marketing", "customer relationship management", "cloud computing"],
    "country": "United States",
    "headquarters": "Cambridge",
    "founded": "2006",
    "employees": 8246,
    "revenue": 2630000000,
    "revenueCurrency": "United States dollar",
    "stockTickers": ["HUBS"],
    "parentOrganization": null,
    "language": "en",
    "socialProfiles": {
        "wikipedia": "https://en.wikipedia.org/wiki/HubSpot",
        "linkedin": "https://www.linkedin.com/company/hubspot",
        "x": "https://x.com/HubSpot",
        "instagram": "https://www.instagram.com/hubspot",
        "facebook": "https://www.facebook.com/hubspot",
        "tiktok": "https://www.tiktok.com/@HubSpot",
        "youtube": "https://youtube.com/user/HubSpot",
        "reddit": "https://www.reddit.com/r/hubspot",
        "github": "https://github.com/HubSpot"
    },
    "appStoreLinks": {
        "appStore": ["https://apps.apple.com/us/app/hubspot/id1107711722"],
        "googlePlay": ["https://play.google.com/store/apps/details?id=com.hubspot.android&hl=en_US"]
    },
    "keyPages": {
        "about": "https://www.hubspot.com/our-story",
        "careers": "https://www.hubspot.com/careers"
    },
    "wikipediaUrl": "https://en.wikipedia.org/wiki/HubSpot",
    "websiteData": {
        "title": "HubSpot | Software & Tools for your Business - Homepage",
        "logoSource": "schema.org",
        "ogImageUrl": "https://www.hubspot.com/hubfs/assets/hubspot.com/homepage/hero-backgrounds-2025/HS_Full_Bleed_1.jpg",
        "themeColor": "#FF7A59",
        "schemaOrg": { "type": "Organization", "foundingDate": "2006", "addressCountry": "US", "addressLocality": "Cambridge", "addressRegion": "MA" },
        "httpStatus": 200
    },
    "wikidata": {
        "wikidataId": "Q5926631",
        "description": "American marketing software company",
        "employeesAsOf": "2024",
        "revenueAsOf": "2024",
        "stockListings": [{ "exchange": "New York Stock Exchange", "ticker": "HUBS" }],
        "legalForm": "Delaware corporation",
        "logoImageUrl": "https://commons.wikimedia.org/wiki/Special:FilePath/HubSpot_Logo.svg",
        "matchedBy": "website"
    },
    "lookupErrors": [],
    "error": null
}
```

A company name works too: `Siemens` came back with `siemens.com`, 5 industries, Munich, founded
1847-10-01, 320,000 employees, EUR 77.8 bn revenue, ticker `SIE` and its logo. When a website blocks
automated visits (Canva answered HTTP 403), the row is still filled from Wikidata and the reason is
listed in `lookupErrors`.

### How much does company enrichment cost?

Pay per event: **$0.003 per company enriched** (plus a $0.00005 start fee).

| Companies | You pay |
|---|---|
| 100 | $0.30 |
| 1,000 | $3.00 |
| 10,000 | $30.00 |

A company is charged only when the website or Wikidata returned data. Unreachable domains, unknown
names and invalid inputs are pushed with an `error` and **not charged**. Set "Maximum cost per run"
and the run stops cleanly when it is reached.

### How it compares

| | This Actor | Typical enrichment Actors |
|---|---|---|
| Logo + favicon + brand colour | Yes | Some |
| Social profiles | From the company's own site and Wikidata | Often scraped from social networks |
| Industry, HQ, employees, revenue, ticker | Yes (Wikidata, with the year of each figure) | Some, often estimated |
| App store links and key pages | Yes | Rarely |
| Emails and phone numbers of people | **No, on purpose** | Often |
| Price per 1,000 | $3 | $1-20 |

### Integrations and API

Run it from your own code with the official `apify-client` package (Python shown; JavaScript works the same way):

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("kantolabs/company-enrichment").call(run_input={
    "companies": [
        "hubspot.com",
        "Siemens"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

Or get the results in a single HTTP call:

```bash
curl -X POST "https://api.apify.com/v2/acts/kantolabs~company-enrichment/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies": ["hubspot.com", "Siemens"]}'
```

- **AI agents (MCP)**: add the Apify MCP server to Claude, ChatGPT, Cursor or any MCP client and the agent can call this Actor as a tool.
- **No-code**: Make, Zapier, n8n, Google Sheets, webhooks and Apify Schedules work out of the box.

### Limits

- **No personal data**: no emails, phone numbers or names of people.
- Industry, size, revenue and HQ come from Wikidata, so small businesses without an entry get the website fields only.
- The homepage is read without a browser; sites that need JavaScript to show their links return fewer social profiles, and sites that block automated requests return Wikidata fields only.
- Employee and revenue figures are the ones recorded on Wikidata, with their date in `wikidata.employeesAsOf`.

### FAQ

**Which companies have firmographics?** Those with a Wikidata entry - most public companies,
well-known startups, universities, NGOs and brands. Small businesses usually get the website fields
only (name, description, logo, socials, apps, pages); that still counts as a result.

**How is a name matched?** Wikidata search, restricted to organisations whose label contains the name
you typed; the best-documented one wins. Use a domain when you need an exact match.

**Is the website read with a browser?** No - one plain request to the homepage, so it is fast and cheap.
Sites that need JavaScript to show their links may return fewer social profiles.

**Why is `employees` missing for some companies?** Wikidata does not have it for every company. The
figure's date is in `wikidata.employeesAsOf`.

### Related Actors by Kanto Labs

- [Website Tech Stack Detector](https://apify.com/kantolabs/website-tech-stack-detector) - what the company's site is built with
- [Domain Lookup - WHOIS/RDAP, DNS, SSL & Email Security](https://apify.com/kantolabs/domain-whois-dns-ssl-lookup) - domain age, email provider
- [Domain Authority Checker](https://apify.com/kantolabs/domain-authority-checker) - how established the domain is on the web
- [Website SEO Audit](https://apify.com/kantolabs/website-seo-audit)

# Actor input Schema

## `companies` (type: `array`):

One company per line: a domain (`stripe.com`), a website URL or a company name (`Spotify`). Names are matched on Wikidata, which also gives the official website. Duplicates are removed.

## `includeWebsite` (type: `boolean`):

One normal visit to the homepage: name, description, logo, favicon, theme colour, language, social profile links, app store links and key pages (about, pricing, careers, contact, blog, docs).

## `includeWikidata` (type: `boolean`):

Industry, country, headquarters, founding date, employees, revenue, stock ticker, parent company, legal form, LEI/ISIN and Wikipedia link, for companies that have a Wikidata entry (most well-known companies do).

## `maxConcurrency` (type: `integer`):

How many companies are processed at the same time.

## Actor input object example

```json
{
  "companies": [
    "apify.com",
    "stripe.com",
    "Spotify"
  ],
  "includeWebsite": true,
  "includeWikidata": true,
  "maxConcurrency": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "apify.com",
        "stripe.com",
        "Spotify"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kantolabs/company-enrichment").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "companies": [
        "apify.com",
        "stripe.com",
        "Spotify",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("kantolabs/company-enrichment").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "apify.com",
    "stripe.com",
    "Spotify"
  ]
}' |
apify call kantolabs/company-enrichment --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kantolabs/company-enrichment"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WTts1kwbFeK4uE5g5/builds/p6RNVOwUD5ZRS4vVa/openapi.json
