# Company Data Enricher (`miccho27/company-data-enricher`) Actor

Enrich company data by domain: website metadata, OG tags, social links, contact info, technology stack, and domain registration info (RDAP). Also supports company search and Wikidata lookup. No API keys required.

- **URL**: https://apify.com/miccho27/company-data-enricher.md
- **Developed by:** [Tatsuya Mizuno](https://apify.com/miccho27) (community)
- **Categories:** Lead generation, Developer tools
- **Features:** Limited permissions
- **Stats:** 50 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 results

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 Data Enricher - Free B2B Lead Enrichment from Public Sources

Enrich company data by domain name, company name, or Wikidata ID using only free public sources -- zero API keys, zero monthly fees. The best free alternative to Clearbit Enrichment, ZoomInfo, Apollo.io, and FullContact for startups, sales teams, and growth hackers.

### Who Is This For?

- **Sales & SDR teams** -- Enrich inbound leads with company info before outreach
- **Growth hackers** -- Build prospect lists with tech stack and social data
- **Market researchers** -- Analyze competitor technology choices at scale
- **Recruiters** -- Identify company size, industry, and HQ location instantly
- **Data analysts** -- Bulk company data collection for market intelligence

### Features

- **Domain Enrichment** -- Website metadata, OG tags, social profile links (LinkedIn, Twitter, GitHub), email/phone contacts, technology stack detection (28 technologies), and RDAP domain registration info
- **Company Search** -- Search companies by name via Wikidata (founded date, HQ, CEO, industry, employee count)
- **Wikidata Lookup** -- Retrieve structured company data by Wikidata entity ID
- **Bulk Processing** -- Enrich hundreds of companies in a single Actor run
- **Zero Configuration** -- No API keys, no developer accounts, no signup required

### Pricing -- Free to Start

| Tier | Cost | What You Get |
|------|------|-------------|
| **Free trial** | $0 | Apify free tier includes monthly compute credits |
| **Pay per run** | ~$0.01-0.05/company | Only pay for actual Apify compute used |
| **vs. Clearbit** | Saves $99-999/mo | Same core data from public sources |
| **vs. ZoomInfo** | Saves $15,000+/yr | No enterprise contract needed |

### Quick Start (3 Steps)

1. **Click "Try for free"** on this Actor's page in Apify Store
2. **Enter company domains** (e.g., `stripe.com`, `shopify.com`) or company names to search
3. **Click "Start"** and download enriched company data as JSON, CSV, or Excel

### Input

| Field | Type | Description |
|-------|------|-------------|
| `domains` | string\[] | Company domains to enrich (e.g. `stripe.com`) |
| `queries` | string\[] | Company name search queries (e.g. `Google`) |
| `wikidataIds` | string\[] | Wikidata entity IDs (e.g. `Q95` for Google) |
| `mode` | string | `enrich` (default) for full enrichment or `domain` for basic metadata + RDAP |
| `delayMs` | integer | Delay between requests in ms (default: `1000`) |

At least one of `domains`, `queries`, or `wikidataIds` must be provided.

#### Example Input

```json
{
  "domains": ["stripe.com", "shopify.com"],
  "queries": ["Cloudflare"],
  "wikidataIds": ["Q95"],
  "mode": "enrich",
  "delayMs": 1000
}
```

### Output

Results are pushed to the default dataset. Each record includes a `type` field (`enrich`, `domain`, `search`, or `wikidata`) and a `success` boolean.

#### Domain Enrichment (`mode: "enrich"`) Output Example

```json
{
  "success": true,
  "type": "enrich",
  "domain": "stripe.com",
  "metadata": {
    "title": "Stripe | Financial Infrastructure to Grow Your Revenue",
    "description": "...",
    "ogTags": { "title": "...", "description": "...", "image": "...", "type": "website", "siteName": "Stripe" }
  },
  "domainInfo": {
    "registrar": "MarkMonitor Inc.",
    "registrationDate": "2009-09-22T00:00:00Z",
    "expirationDate": "2026-09-22T00:00:00Z",
    "domainAge": "15 years",
    "nameservers": ["ns1.p07.dynect.net", "..."]
  },
  "socialLinks": {
    "linkedin": "https://www.linkedin.com/company/stripe",
    "twitter": "https://twitter.com/stripe"
  },
  "technologies": ["React", "Next.js", "Google Tag Manager", "Stripe"],
  "contact": {
    "emails": null,
    "phones": null
  }
}
```

#### Search Output Example

```json
{
  "success": true,
  "type": "search",
  "query": "Cloudflare",
  "count": 10,
  "companies": [
    {
      "name": "Cloudflare",
      "description": "American web infrastructure company",
      "wikidataId": "Q61117",
      "wikidataUrl": "https://www.wikidata.org/wiki/Q61117"
    }
  ]
}
```

### Data Sources

| Source | Data Provided |
|--------|-------------|
| **Website HTML** | Title, description, OG tags, social links, contact info, tech stack |
| **RDAP** | Registrar, registration/expiration dates, domain age, nameservers |
| **Wikidata** | Founded date, HQ location, CEO, industry, employee count, revenue |

### Technology Stack Detection

Detects 28 technologies from website HTML: Google Analytics, Google Tag Manager, Facebook Pixel, Shopify, WordPress, React, Next.js, Vue.js, Nuxt.js, Angular, jQuery, Bootstrap, Tailwind CSS, Cloudflare, Stripe, Intercom, HubSpot, Segment, Hotjar, Zendesk, Wix, Squarespace, Webflow, Vercel, Gatsby, Svelte, Drift, and more.

### How It Compares to Paid Alternatives

| Feature | This Actor (FREE) | Clearbit ($99/mo) | ZoomInfo ($15K/yr) | Apollo.io ($49/mo) |
|---------|-------------------|-------------------|-------------------|-------------------|
| Domain enrichment | Yes | Yes | Yes | Yes |
| Tech stack detection | 28 technologies | 100+ | Limited | No |
| Social profiles | Yes | Yes | Yes | Yes |
| Domain WHOIS/RDAP | Yes | No | No | No |
| Company search | Yes (Wikidata) | Yes | Yes | Yes |
| API keys required | None | Yes | Yes | Yes |
| Bulk processing | Unlimited | Rate limited | Rate limited | Rate limited |
| Monthly cost | $0 (pay per run) | $99-999 | $15,000+ | $49-99 |

### Real-World Use Cases

#### 1. Sales Lead Enrichment Pipeline

Upload a CSV of prospect domains, run this Actor on a schedule, and get enriched company data pushed to your CRM via Apify integrations (Zapier, Make, webhook).

#### 2. Competitive Tech Stack Analysis

Input your competitors' domains to discover what frameworks, analytics tools, and marketing tech they use. Track changes over time with scheduled runs.

#### 3. Domain Due Diligence

Before acquiring a domain or partnering with a company, check domain age, registration history, and technology footprint in seconds.

#### 4. Market Research at Scale

Enrich hundreds of companies in a vertical to identify technology trends, common social platforms, and company characteristics for market reports.

### FAQ

**Q: How does this compare to Clearbit?**
A: Clearbit has richer proprietary data (employee count, revenue estimates) but costs $99+/mo. This Actor uses free public sources (RDAP, Wikidata, HTML parsing), making it ideal for startups, bootstrapped businesses, and small-scale enrichment needs. For most lead qualification tasks, the data quality is comparable.

**Q: What data sources are used?**
A: Website HTML (direct fetch), IANA RDAP (domain registration), and Wikidata (company metadata). No paid APIs are called, so you never get surprise bills.

**Q: Can I run this on a schedule?**
A: Yes. Use Apify's built-in scheduler to enrich new leads automatically on a daily or weekly basis. Combine with webhooks to push results to your CRM, Google Sheets, or Slack.

**Q: How accurate is the technology detection?**
A: Very accurate for client-side technologies (React, Vue, jQuery, analytics scripts). Server-side technologies are detected via response headers and meta tags when available.

**Q: Can I use the Apify API to call this programmatically?**
A: Yes. Use the Apify API or any of the official SDKs (Python, JavaScript, Go) to trigger runs and retrieve results. Perfect for building automated enrichment pipelines.

### Notes

- Domains in the `domains` array are automatically normalized (strips `https://` and paths)
- Tech detection only runs in `enrich` mode
- Failed items are still pushed to the dataset with `success: false` and an `error` field

# Actor input Schema

## `domains` (type: `array`):

List of company domains to enrich (e.g. 'stripe.com', 'shopify.com'). Returns metadata, social links (LinkedIn, Twitter, GitHub), contact info, technology stack (28 technologies), and RDAP domain registration info. No API keys needed.

## `queries` (type: `array`):

Search companies by name via Wikidata (e.g. 'Google', 'Apple Inc'). Returns structured company data: founded date, HQ location, CEO, industry, and employee count.

## `wikidataIds` (type: `array`):

Direct Wikidata entity lookup (e.g. 'Q95' for Google, 'Q312' for Apple). Returns comprehensive structured company data from the world's largest free knowledge graph.

## `mode` (type: `string`):

For domain inputs: 'enrich' returns full enrichment (metadata + tech stack + social profiles + contacts + RDAP). 'domain' returns basic metadata + RDAP only (faster, lower compute cost).

## `delayMs` (type: `integer`):

Milliseconds to wait between each request. Lower = faster but higher risk of rate limiting. Recommended: 500-2000ms.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "shopify.com"
  ],
  "queries": [],
  "wikidataIds": [],
  "mode": "enrich",
  "delayMs": 1000
}
```

# 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 = {
    "domains": [
        "stripe.com",
        "shopify.com"
    ],
    "queries": [],
    "wikidataIds": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("miccho27/company-data-enricher").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 = {
    "domains": [
        "stripe.com",
        "shopify.com",
    ],
    "queries": [],
    "wikidataIds": [],
}

# Run the Actor and wait for it to finish
run = client.actor("miccho27/company-data-enricher").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 '{
  "domains": [
    "stripe.com",
    "shopify.com"
  ],
  "queries": [],
  "wikidataIds": []
}' |
apify call miccho27/company-data-enricher --silent --output-dataset

```

## MCP server setup

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

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/9ojvXlF9C9H4dPM5a/builds/v98ThrpycVtcldn8b/openapi.json
