# B2B Company Data & Enrichment API: Firmographics (`datahyena/company-data-api`) Actor

Get company firmographic data: domain, LinkedIn, HQ, industry, employee count, and founded year. A self-serve company data API and a Coresignal alternative.

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

## Pricing

from $25.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<div align="center">

<img src="https://datahyena.com/static/images/logo.png" alt="Datahyena" height="64" />

## B2B Company Data & Enrichment API: Firmographics

**Get company firmographic data: domain, LinkedIn, HQ, industry, NAICS code, employee count, and founded year. A self-serve company data API and a Coresignal alternative.**

`No API key` · `No signup` · Powered by [Datahyena](https://datahyena.com?utm_source=apify\&utm_medium=readme\&utm_content=company-data-api)

</div>

***

Company records with firmographics: domain, LinkedIn, HQ, industry, NAICS code, employee count, and founded year. Each company is one canonical row, merged across every source we have seen it in. Set your filters, run it, and pay only for the records you get back. No API key, no signup, no sales call.

Use it for company data API, firmographic data, B2B company database, company enrichment, NAICS code, Coresignal alternative.

### What you get

Every record carries all of the below. The table view shows the columns that scan best; the full record is in the JSON, CSV, and Excel exports.

- **Identity.** name, domain, and a short description of what the company does.
- **LinkedIn.** company page URL and handle, plus LinkedIn geo and industry ids.
- **Location.** HQ city and country.
- **Classification.** industry group, NAICS 2022 code with the depth it was assigned at, industry sub-tags, verticals, and business model where we have them.
- **Size.** employee count bucket and founded year.

Results export to JSON, CSV, or Excel, or stream straight to your database via the Apify API.

### Common use cases

- **Sales and prospecting.** Find accounts that just raised, and reach them while the news is fresh.
- **Market research.** Track companies by industry, country, and date.
- **Data enrichment.** Add companies to your CRM or warehouse.
- **Deal sourcing.** Scan new activity, for investors and corp dev teams.

### Filters

| Input | Description |
|---|---|
| `maxItems` | Max records (default 100) |
| `cursor` | Advanced: resume from a previous run's `NEXT_CURSOR` to paginate ahead |
| `search` | Search by name or domain. |
| `countries` | Filter by company HQ country. Select several to cover a whole region in one run instead of one run per country. About a quarter of companies have no HQ country on record, so add "Not disclosed" to keep those deals in. |
| `industryGroups` | Filter by industry group (LinkedIn-style labels, exact match). Select several to cover related industries in one run. About a fifth of companies have no industry on record, so add "unknown" to keep those deals in. |
| `naicsCode` | Filter by NAICS 2022 code. Matches the code and everything beneath it, so picking a sector like Manufacturing (31-33) returns every manufacturer under it. Pick "Not classified" for companies we could not classify. |
| `employeeCountBucket` | Filter by company size. |
| `sort` | How to order results. "Most notable first" ranks by recent funding size and recency, acquisition activity and known people — use it when you want the best-known companies matching your filters rather than an arbitrary slice. "Recently updated" is the raw feed order. |
| `minFundingUsdLast12mo` | Only companies that raised at least this much in the last 12 months. In dollars, not cents. |
| `minKnownPeople` | Only companies with at least this many current executives or founders on record. A rough proxy for how well documented a company is. |
| `hasKnownFounder` | Only companies with a current founder on record. |

Leave everything empty to get the newest records first, or narrow by the filters above. Each run saves a `NEXT_CURSOR` for pagination.

#### Example output

```json
{
  "id": "019df869-7f8d-7c56-aecc-9d08c84ccdac",
  "name": "Whatnot",
  "domain": "whatnot.com",
  "description": "Whatnot - The Live Shopping Marketplace. Shop, sell, and connect around things you love.",
  "linkedinHandle": "company/whatnot-inc",
  "linkedinUrl": "https://www.linkedin.com/company/whatnot-inc",
  "linkedinGeoId": "103644278",
  "linkedinIndustryId": "1285",
  "hqCity": "Marina Del Rey",
  "hqCountry": {
    "code": "US",
    "name": "United States"
  },
  "industryGroup": "Internet Marketplace Platforms",
  "naicsCode": "44-45",
  "naicsLevel": 2,
  "industrySubTags": [
    "live-shopping",
    "auctions",
    "marketplace",
    "collectibles"
  ],
  "verticals": [
    "commerce"
  ],
  "employeeCountBucket": "1001-5000",
  "foundedYear": 2019,
  "businessModel": "marketplace"
}
```

### FAQ

**What data does this actor return?**

Company records with firmographics: domain, LinkedIn, HQ, industry, NAICS code, employee count, and founded year. Fields: Company, Domain, Country, City, Industry, NAICS, Employees, Founded, LinkedIn, Description. Each one is matched to a canonical company.

**Is this a Crunchbase, PitchBook, or Coresignal alternative?**

Yes. It is a self-serve, API-first alternative to Crunchbase, PitchBook, Coresignal, and Harmonic, with no annual contract and no sales call.

**How fresh is the data?**

Most records are available the same day they are announced. Across the last 30 days, the median gap between a public announcement and the record being available was under one day.

**Can I monitor companies on a schedule?**

Yes. Save your filters as a task and use Apify's scheduler to run it daily or weekly. Each run stores a `NEXT_CURSOR`. Pass it to the next run to pick up where the last one stopped, so you only pay for records you have not seen yet.

**Some records have an empty field. Can I still get those?**

Yes. Not every announcement states every detail, and where a value was never disclosed the field is left empty rather than guessed. Filters that can be empty offer a **Not disclosed** option (HQ country and industry, plus funding round where it applies). Select it to include those records instead of dropping them from a filtered run.

**How is the data deduplicated?**

Each real-world event is matched across every outlet that reported it and resolved to one canonical company (and investors), so you never get the same round or deal twice.

**How do I get the next batch of records?**

Each run saves a `NEXT_CURSOR` to its key-value store. Pass it as the `cursor` input on the next run to continue where you left off. For new records over time, use the `since` filter.

**Is there a free way to try it?**

Free Apify accounts get a one-time sample of 50 records from this Actor, so you can see the shape and quality of the data before paying. It is per Actor, it does not reset, and it is meant for evaluation rather than for collecting a dataset.

Beyond the sample this Actor is for paid Apify plans, where you pay only for the records you get back, or for a direct subscription at datahyena.com.

**Can I get this data over an API instead?**

Yes. Datahyena is API-first: REST, webhooks, or MCP (Claude, Cursor, Codex). This actor is the Apify-native way to run it.

### Use it in your own stack

For ongoing use it is cheaper and more flexible to go direct: REST, webhooks, and MCP, with subscription pricing and 50 free credits to start.

[datahyena.com](https://datahyena.com?utm_source=apify\&utm_medium=readme\&utm_content=company-data-api) · [Docs](https://datahyena.com/docs?utm_source=apify\&utm_medium=readme\&utm_content=company-data-api) · [MCP](https://datahyena.com/docs/mcp?utm_source=apify\&utm_medium=readme\&utm_content=company-data-api)

### Terms of use

Records returned by this Actor are licensed for use inside your own products and workflows. Building on the data is encouraged. Reselling, redistributing or republishing the records as data, in raw or substantially raw form, is not permitted, and neither is systematic extraction to reconstruct the dataset.

Full terms: [datahyena.com/terms](https://datahyena.com/terms?utm_source=apify\&utm_medium=readme\&utm_content=company-data-api)

***

<div align="center">
Built by <a href="https://datahyena.com/?utm_source=apify&utm_medium=readme&utm_content=company-data-api">Datahyena</a>. Company-event signals as an API.
</div>

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum records to fetch. You are charged per record returned.

## `search` (type: `string`):

Search by name or domain.

## `countries` (type: `array`):

Filter by company HQ country. Select several to cover a whole region in one run instead of one run per country. About a quarter of companies have no HQ country on record, so add "Not disclosed" to keep those deals in.

## `industryGroups` (type: `array`):

Filter by industry group (LinkedIn-style labels, exact match). Select several to cover related industries in one run. About a fifth of companies have no industry on record, so add "unknown" to keep those deals in.

## `naicsCode` (type: `string`):

Filter by NAICS 2022 code. Matches the code and everything beneath it, so picking a sector like Manufacturing (31-33) returns every manufacturer under it. Pick "Not classified" for companies we could not classify.

## `employeeCountBucket` (type: `string`):

Filter by company size.

## `sort` (type: `string`):

How to order results. "Most notable first" ranks by recent funding size and recency, acquisition activity and known people — use it when you want the best-known companies matching your filters rather than an arbitrary slice. "Recently updated" is the raw feed order.

## `minFundingUsdLast12mo` (type: `integer`):

Only companies that raised at least this much in the last 12 months. In dollars, not cents.

## `minKnownPeople` (type: `integer`):

Only companies with at least this many current executives or founders on record. A rough proxy for how well documented a company is.

## `hasKnownFounder` (type: `boolean`):

Only companies with a current founder on record.

## `cursor` (type: `string`):

Resume from a previous run's NEXT\_CURSOR (saved in the run's key-value store) to paginate ahead. Leave empty to start from the newest records.

## Actor input object example

```json
{
  "maxItems": 100
}
```

# Actor output Schema

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

B2B Company Data & Enrichment API: Firmographics records (the run's default dataset).

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("datahyena/company-data-api").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("datahyena/company-data-api").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 '{}' |
apify call datahyena/company-data-api --silent --output-dataset

```

## MCP server setup

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

```

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/gfUFy20zpyMBaZTGZ/builds/FZG4exnZ6nxOh6tUL/openapi.json
