# Crunchbase Scraper: Companies, Funding, Investors & People (`nice_dev/crunchbase-companies-scraper`) Actor

Scrape Crunchbase without an account: companies, funding rounds, investors and people by keyword, filters or URL. Last funding type, rounds with lead investors, rank, growth score, founders, key contacts, emails and phones. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/nice_dev/crunchbase-companies-scraper.md
- **Developed by:** [Nice Dev](https://apify.com/nice_dev) (community)
- **Categories:** Lead generation, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.56 / 1,000 search 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?

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

### 🏢 What is Crunchbase Scraper?

**Crunchbase Scraper** extracts **companies, investors, funding rounds and people from [Crunchbase](https://www.crunchbase.com)**: **name, website, industries, headquarters, headcount, last funding type, funding stage, Crunchbase rank and founders**, and on request the **contact e-mail and phone, team, investors, tech stack, web traffic and key contacts**. It works as a **Crunchbase API alternative**: no Crunchbase account, no API key — run it on a schedule, call it from your code, or plug it into Make, Zapier or n8n.

Pick what to search, set the filters you need (industry, country, headcount, last funding type and date, total raised, unicorn lists, growth score…) or paste company names, domains or Crunchbase URLs, click **Start**, and download the results in JSON, CSV or Excel. No login, nothing to set up.

### 📋 What data can you extract from Crunchbase?

One item per company, investor, funding round or person, 114 fields:

| Category                     | What you get                                                                                                                                                  |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🏢 **Company**               | name, Crunchbase link and id, short and long description, logo, website and domain, legal name, operating status — `Mistral AI`, `mistral.ai`                 |
| 🏆 **Rank and scores**       | Crunchbase rank, rank inside each industry, heat and growth scores with their 90-day change and history, Crunchbase's own predictions — `rank 2`               |
| 🏷️ **Industries**            | industries, industry groups, unicorn tags, Crunchbase lists the company is featured in — `Generative AI`                                                      |
| 📍 **Location**              | city, region, country, continent, wider areas, office openings — `Paris, France`                                                                              |
| 💰 **Funding**               | last funding type, funding stage, IPO status, ticker, number of rounds and investors, every round with its type and lead investors, every investor and its round — `series_d` |
| 👥 **People**                | headcount range, founders, team members and advisors with their title — `1001-5000`, `Co-Founder and CEO`                                                    |
| 📇 **Contact**               | contact e-mail and phone, LinkedIn, X and Facebook pages, how many contacts Crunchbase lists, and (paid option) the key contacts: name, LinkedIn, job level, department |
| 🌐 **Company website**       | (paid option) e-mail addresses, phone numbers and social links published on the company's own website, with the page they were found on                    |
| 📊 **Web, tech and patents** | monthly website visits and their trend, technologies used, software used, estimated IT spend, app downloads, patents, trademarks, buying-intent topics        |
| 📰 **News and events**       | latest news, key hires and departures, layoffs, product launches, partnerships, lawsuits, awards, event appearances                                          |
| 🤝 **Deals**                 | acquisitions, acquirer, subsidiaries, similar companies, investments, exits, funds raised by an investor                                                     |
| 🔁 **Other kinds of row**    | funding round (type, company that raised, lead investors), investor (investments, exits, portfolio), person (job title, organization, jobs, education, board roles) |

Every field, with an example, is listed in the **Output** section below.

Without **Company profile**, each row holds what a Crunchbase search shows: name, links, short description, industries, location, headcount, last funding type, stage, rank and founders. The other fields are filled when **Company profile** is ticked (a few seconds per profile, charged per profile).

### ✅ Why use Crunchbase Scraper?

- 🎯 **Filters that work without a Crunchbase account**: total raised, round amount, last funding type and date, founding date, funding stage, headcount, IPO and operating status, unicorn lists, growth score, top-ranked only, excluded industries and locations.
- 🗂️ **Four kinds of row in one Actor**: companies, investors, funding rounds and people, with the filters of each kind.
- 📚 **Whole searches, best-ranked first**: every result of a search, page after page, not just the first page.
- 🔎 **Look up the companies you already have**: type names, domains or Crunchbase URLs; each is matched to its Crunchbase page.
- 🧾 **Pay only for what you ask for**: the full profile, the key contacts and the e-mails of the company website are options, off by default.
- 🔔 **Monitoring built in**: tick **Only new results**, schedule the Actor, and each run returns (and charges) only what it has never delivered before.
- 🔌 API, scheduling, integrations (Make, Zapier, n8n, Google Sheets…) and JSON/CSV/Excel export via the Apify platform.

### 🚀 How to scrape Crunchbase

1. Create a free Apify account.
2. Open **Crunchbase Scraper**, choose **What to search** (companies, investors, funding rounds or people) and set the filters you need (e.g. industry `FinTech`, location `Germany`).
3. Or type the **Companies** you want (names, domains, Crunchbase URLs), or paste Crunchbase pages into **Crunchbase URLs**.
4. Set **Max results** (100 by default, 0 = no limit), tick **Company profile** if you want the full profiles, then click **Start**.
5. Download the dataset in JSON, CSV, Excel or via API.

### 💰 How much does it cost to scrape Crunchbase?

This Actor uses **pay per event** pricing: you pay for the results saved, for the options you tick and for the run start. The amounts are shown in the **Pricing** tab.

| What you pay for                                                                                                                         | Event                 |
| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| Each result saved: a company, investor, funding round or person, found by a search, a name or a URL                                      | `result`              |
| Each result saved with its company or investor profile, only with **Company profile**                                                    | `company-details`     |
| Each result saved with its person profile, only with **Company profile** (People mode, an angel investor, a person URL)                   | `person-details`      |
| Each result saved with at least one key contact, only with **Key contacts**                                                               | `key-contacts`        |
| Each result saved whose company website gave an e-mail address its profile did not, only with **Find e-mails on the company website**     | `email-enriched`      |
| Each result saved whose company website gave a phone number its profile did not, same option                                             | `phone-enriched`      |
| A profile opened only to check **Only results that have** (e-mail, phone, LinkedIn) when the result is then dropped: not saved, not charged as a result | `detail-filter-check` |
| Run start (once per GB of the run's memory: 2 GB by default)                                                                             | `apify-actor-start`   |

**Company profile**, **Key contacts** and **Find e-mails on the company website** are off by default: nothing is charged for them unless you tick them. A result left out by a filter Crunchbase applies (industry, location, headcount, funding, rank…), dropped by **Exclude keywords** or skipped by **Only new results** costs nothing. A company website read and then dropped by **Only results that have** is not charged, and an e-mail or phone number the profile already gave is never charged twice. Platform usage (compute, proxy) is included in the price.

### ⚙️ Input

Companies of one industry and country:

```json
{
    "mode": "companies",
    "categories": ["Artificial Intelligence (AI)"],
    "location": "France",
    "maxItems": 50
}
```

Recently funded startups, with their full profile and a contact e-mail:

```json
{
    "mode": "companies",
    "location": "Germany",
    "lastFundingTypes": ["seed", "series_a"],
    "fundedAfter": "3 months",
    "employeeRanges": ["11-50", "51-100"],
    "extractDetails": true,
    "requireFields": ["email"],
    "maxItems": 200
}
```

The new Series A rounds of at least $10M, at each scheduled run:

```json
{
    "mode": "fundingRounds",
    "roundTypes": ["series_a"],
    "announcedAfter": "7 days",
    "minRoundAmountUsd": 10000000,
    "onlyNew": true,
    "stateKey": "series-a-weekly"
}
```

Or the companies you already have, by name, domain or Crunchbase URL:

```json
{
    "companies": ["Mistral AI", "openai.com"],
    "startUrls": [{ "url": "https://www.crunchbase.com/organization/anthropic" }],
    "extractDetails": true,
    "includeKeyContacts": true
}
```

| Field                                      | Notes                                                                                                                                                                                                 |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`                                     | What to search: `companies` (default), `investors`, `fundingRounds` or `people`. A filter that does not apply to the chosen kind is ignored and named in the log.                                     |
| `startUrls`                                | Crunchbase company, investor or person pages, one row each (`https://www.crunchbase.com/organization/mistral-ai`). Max 1,000 URLs. When it is filled, the search fields are ignored.   |
| `companies`                                | Names (`Mistral AI`), websites or domains (`mistral.ai`), Crunchbase slugs (`mistral-ai`) or URLs, one per line, each matched to its best Crunchbase match (`searchTerm` shows what you typed; a website shows as its domain). In **Companies** and **Investors** modes these companies are read instead of a search (the search fields are ignored); in **People** mode they are ignored and the people search runs without them; in **Funding rounds** mode they filter the search: the rounds of these companies. Max 1,000. |
| `query`, `searchQueries`                   | Words of the short description (`drone`, `payments`); `searchQueries` adds more keywords, one search each.                                                                                            |
| `nameContains`                             | Results whose name contains this text (`labs`).                                                                                                                                                       |
| `location`, `locations`                    | Headquarters country, region or city as named on Crunchbase (`France`, `California`, `Berlin`). Every keyword is searched in every location (max 500 searches per run). Empty = worldwide.             |
| `excludeLocations`                         | Drop the results headquartered there (`China`); results with no known location are dropped too.                                                                                                       |
| `categories`, `excludeCategories`          | Crunchbase industries (`Artificial Intelligence (AI)`, `FinTech`, `Biotechnology`): a result matches one of them at least; `excludeCategories` drops the results in any of them. Companies and investors. |
| `industryGroups`                           | Broader industry groups (`Financial Services`, `Health Care`, `Software`). Companies and investors.                                                                                                   |
| `maxItems`, `maxItemsPerQuery`             | Results to save for the whole run (`0` = no limit), and for each search (keyword × location) so that the first search cannot use up the whole budget.                                                 |
| `extractDetails`                           | **Company profile**: open each company or investor profile for the contact e-mail and phone, social links, long description, team, rounds and investors, acquisitions, tech stack, web visits… In **People** mode: each person's profile (jobs, education, board roles). Charged per profile, off by default. |
| `includeKeyContacts`                       | With `extractDetails`: the contacts Crunchbase lists for the company (name, LinkedIn, job level, department). Paid option, off by default.                                                             |
| `enrichEmails`                             | Visit each company's own website (home page, then up to 2 contact, legal or about pages) for its e-mails, phone numbers and social links. Works without `extractDetails` (an investor search needs it: its results carry no website). Paid option, off by default. |
| `employeeRanges`                           | Headcount ranges: `1-10`, `11-50`, `51-100` … `10001+`.                                                                                                                                               |
| `lastFundingTypes`, `roundTypes`           | Type of the latest round (companies) or of the rounds returned (funding rounds): `pre_seed`, `seed`, `series_a`, `series_b`…                                                                          |
| `fundedAfter`, `fundedBefore`              | Date of the latest round: `2026-09-01`, or a period before now (`30 days`, `3 months`). The date itself stays hidden by Crunchbase without a paid account.                                             |
| `foundedAfter`, `foundedBefore`            | Founding date: `2023-01-01`, or `2 years`.                                                                                                                                                            |
| `fundingStages`                            | `seed`, `early_stage_venture`, `late_stage_venture`, `private_equity`, `m_and_a`, `ipo`.                                                                                                              |
| `ipoStatuses`                              | `private`, `public` or `delisted`.                                                                                                                                                                    |
| `hubTags`                                  | Unicorn lists: `unicorn`, `emerging_unicorn`, `exited_unicorn`.                                                                                                                                       |
| `operatingStatuses`                        | `active` or `closed`.                                                                                                                                                                                 |
| `companyTypes`                             | `for_profit` or `non_profit`.                                                                                                                                                                         |
| `maxRank`                                  | Keeps only results whose overall Crunchbase rank is ≤ N (not the N best of your search): `1000` with location France = the French companies in the global top 1,000 (`0` = any). All 4 modes.                                                                                                              |
| `minFundingTotalUsd`, `maxFundingTotalUsd` | Total raised, in US dollars (`10000000` = $10M). Applied by Crunchbase, although the amount itself stays hidden without a paid account.                                                               |
| `minFundingRounds`, `minGrowthScore`       | At least this many funding rounds (`3`); growth score at least this value, from 0 to 100.                                                                                                             |
| `announcedAfter`, `announcedBefore`        | Funding rounds announced in this range: `2026-09-01`, or `7 days`, `1 month`.                                                                                                                          |
| `minRoundAmountUsd`, `maxRoundAmountUsd`   | Round amount in US dollars (`50000000` = $50M), applied by Crunchbase while the amount stays hidden.                                                                                                  |
| `investors`                                | Only the rounds these investors took part in: names (`Sequoia Capital`) or Crunchbase URLs. Max 100.                                                                                                  |
| `investorTypes`                            | `venture_capital`, `angel`, `accelerator`, `corporate_venture_capital`…                                                                                                                               |
| `investorStages`                           | `seed`, `early_stage_venture`, `late_stage_venture`, `private_equity`, `debt`.                                                                                                                        |
| `minInvestments`, `minExits`               | Investors with at least this many investments (`50`), or exits.                                                                                                                                       |
| `jobTitle`                                 | People whose main job title contains this text (`CEO`, `Founder`, `CTO`).                                                                                                                             |
| `excludeKeywords`                          | Drop the results whose name or short description contains one of these words (`crypto`), case and accents ignored.                                                                                    |
| `requireFields`                            | Keep only the results that have all of: `website`, `email`, `phone`, `linkedin`. LinkedIn needs `extractDetails`; e-mail and phone need `extractDetails` or `enrichEmails`. In an investor search, all four need `extractDetails` (its results carry no website).                            |
| `onlyNew`, `stateKey`, `resetState`        | Monitoring: only the results never delivered under this memory key (`fr-seed-rounds`); `resetState` forgets the memory.                                                                               |
| Advanced                                   | `proxyConfiguration` (Apify Proxy by default, included in the price; the Apify residential group is refused), `maxConcurrency`, `maxRequestsPerMinute`, `minRequestIntervalMs`, `maxRequestRetries`, `debugLog`. |

### 📦 Output

One company with **Company profile** on, shortened (lists cut to their first entries, most columns left out):

```json
{
    "id": "00e32424-3cc3-4798-8361-78914c212fb0",
    "type": "company",
    "slug": "mistral-ai",
    "url": "https://www.crunchbase.com/organization/mistral-ai",
    "name": "Mistral AI",
    "shortDescription": "Mistral AI develops artificial intelligence models, applications, and infrastructure for organizations and developers.",
    "rank": 2,
    "rankOrg": 2,
    "website": "https://mistral.ai",
    "domain": "mistral.ai",
    "categories": ["Agentic AI", "Artificial Intelligence (AI)", "Foundational AI", "Generative AI"],
    "city": "Paris",
    "region": "Ile-de-France",
    "country": "France",
    "continent": "Europe",
    "employeeRange": "1001-5000",
    "lastFundingType": "series_d",
    "fundingStage": "late_stage_venture",
    "ipoStatus": "private",
    "founders": [{ "name": "Arthur Mensch", "url": "https://www.crunchbase.com/person/arthur-mensch" }],
    "numContacts": 17,
    "legalName": "Mistral AI SAS",
    "operatingStatus": "active",
    "companyType": "for_profit",
    "hubTags": ["unicorn"],
    "contactEmail": "press@mistral.ai",
    "linkedin": "https://www.linkedin.com/company/mistralai",
    "twitter": "https://x.com/aimistral",
    "numFundingRounds": 10,
    "numInvestors": 56,
    "fundingRounds": [
        {
            "name": "Series D - Mistral AI",
            "type": "series_d",
            "url": "https://www.crunchbase.com/funding_round/mistral-ai-series-d--c0e31665",
            "numInvestors": 24,
            "leadInvestors": [{ "name": "EQT", "url": "https://www.crunchbase.com/organization/eqt-holdings" }]
        }
    ],
    "people": [
        {
            "name": "Arthur Mensch",
            "title": "Co-Founder and CEO",
            "url": "https://www.crunchbase.com/person/arthur-mensch",
            "startedOn": "2023-05"
        }
    ],
    "monthlyVisits": 8778920,
    "itSpendUsd": 46694609,
    "heatScore": 97,
    "growthScore": 92,
    "categoryRanks": [{ "category": "Foundational AI", "rank": 1, "count": 368 }],
    "numTechnologies": 51,
    "searchQuery": "AI · France",
    "scrapedAt": "2026-10-16T12:00:00.000Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV or Excel.

#### All 114 fields

| Fields                                                                                                                                                                                          | What you get                                                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`, `type`, `slug`, `url`, `name`                                                                                                                                                             | Crunchbase id, `company` / `investor` / `fundingRound` / `person`, `mistral-ai`, Crunchbase page, `Mistral AI`                                     |
| `shortDescription`, `description`, `logoUrl`                                                                                                                                                    | one-line description, long description (profile), logo image                                                                                       |
| `rank`, `rankOrg`, `rankDelta90`, `categoryRanks`                                                                                                                                               | rank within its kind and among all organizations (`2`), its change over 90 days, rank inside each industry (`Foundational AI`: 1 of 368)          |
| `website`, `domain`                                                                                                                                                                             | `https://mistral.ai`, `mistral.ai`                                                                                                                 |
| `categories`, `categoryGroups`, `hubTags`, `featuredLists`                                                                                                                                      | industries, industry groups, tags such as `unicorn`, a few Crunchbase lists it appears in, picked by the site at each visit (title, link, number of companies)                             |
| `city`, `region`, `country`, `continent`, `locationGroups`, `offices`                                                                                                                           | `Paris`, `Ile-de-France`, `France`, `Europe`, wider areas (`European Union (EU)`), office openings (date, description, link)                       |
| `employeeRange`, `numEmployeeProfiles`                                                                                                                                                          | `1001-5000`, employee profiles on Crunchbase                                                                                                       |
| `lastFundingType`, `fundingStage`, `ipoStatus`, `stockSymbol`, `stockExchange`                                                                                                                  | `series_d`, `late_stage_venture`, `private`, ticker and exchange of a listed company                                                               |
| `numFundingRounds`, `numInvestors`, `numLeadInvestors`, `fundingRounds`, `investors`                                                                                                            | counts; each round (name, type, link, number of investors, lead investors); each investor with the round it joined and whether it led              |
| `founders`, `people`, `advisors`                                                                                                                                                                | name, Crunchbase page and, for the team and the advisors, title and start date (`2023-05`; dates keep the site's precision, `2011` when only the year is known)                                                                     |
| `legalName`, `operatingStatus`, `companyType`, `aliases`                                                                                                                                        | `Mistral AI SAS`, `active`, `for_profit`, other names                                                                                              |
| `contactEmail`, `phone`, `linkedin`, `twitter`, `facebook`                                                                                                                                      | public contact e-mail and phone of the company, its social pages                                                                                   |
| `numContacts`, `numContactEmails`, `numContactPhones`, `keyContacts`                                                                                                                            | how many contacts, e-mails and phones Crunchbase lists; with **Key contacts**: name, LinkedIn, job levels, departments, number of e-mails on file   |
| `acquisitions`, `numAcquisitions`, `acquiredBy`, `subOrganizations`, `numSubOrganizations`, `similarCompanies`                                                                                  | companies it acquired, its acquirer, its subsidiaries, companies Crunchbase shows as similar                                                       |
| `investments`, `numInvestments`, `numLeadInvestments`, `numPortfolioOrganizations`, `exits`, `funds`, `numFunds`                                                                                | investors: companies invested in (with the round), lead investments, portfolio size, exits, funds raised                                           |
| `technologies`, `numTechnologies`, `softwareProducts`, `monthlyVisits`, `monthlyVisitsGrowth`, `itSpendUsd`, `appDownloads`, `numMobileApps`                                                    | technologies of the website and their count, software used, visits last month (`8778920`) and their monthly change, yearly IT spend, mobile apps   |
| `patentsGranted`, `popularPatentCategory`, `trademarksRegistered`                                                                                                                               | granted patents, most frequent patent class, registered trademarks                                                                                 |
| `heatScore`, `heatScoreDelta90`, `heatScoreHistory`, `growthScore`, `growthScoreDelta90`, `growthScoreHistory`, `predictions`, `bomboraTopics`                                                  | Crunchbase heat and growth scores (0-100), their change over 90 days and recent values, Crunchbase's predictions, topics of rising interest         |
| `numArticles`, `news`, `keyEmployeeChanges`, `layoffs`, `productLaunches`, `partnerships`, `legalProceedings`, `awards`, `eventAppearances`, `numEventAppearances`, `diversitySpotlights`        | news count and latest news (date, title, publisher, link), dated events of each kind with their link, diversity spotlights                        |
| `roundType`, `fundedCompany`, `leadInvestors`                                                                                                                                                   | funding round rows: `series_a`…, the company that raised, the lead investors                                                                       |
| `jobTitle`, `organization`, `currentJobs`, `pastJobs`, `education`, `boardRoles`, `numFoundedOrganizations`, `numPartnerInvestments`                                                            | person rows: main title and organization; with the profile, jobs and schools with their dates (`2023-05`, `2011`), board and advisory roles, companies founded, investments as a partner  |
| `emails`, `emailSource`, `websitePhones`, `phoneSource`, `websiteSocialLinks`                                                                                                                   | with **Find e-mails on the company website**: e-mails, phone numbers and social links of the company's own website, and the page they came from    |
| `searchTerm`, `searchQuery`, `scrapedAt`                                                                                                                                                        | what you typed in **Companies**, the search that found the result (`AI · France`), ISO timestamp                                                   |

Crunchbase sends the first 10 entries of each list on a profile (`fundingRounds`, `investors`, `investments`, `technologies`, `news`, `people`…): the matching count gives the total (`numInvestors`: 56 for 10 investors listed). On people and angel investors found by a search, Crunchbase cuts `shortDescription` at 140 characters (it ends with `...`); `description` holds the full text with **Company profile**.

### 💡 Tips

#### Find the companies that just raised

Search companies with `fundedAfter` set to `30 days` (and `lastFundingTypes` if you only want seed or Series A), or switch to **Funding rounds** mode with `announcedAfter` and `roundTypes`. Add **Only new results** and a daily schedule: each run returns only what it has never delivered before.

#### How to get more results

Set `maxItems` to `0` and widen the filters. A search is read to its end, best-ranked first; `maxRank` keeps only results whose overall Crunchbase rank is ≤ N (not the N best of your search).

#### How to reduce costs

Every row costs one result: the levers are `maxItems`, `maxItemsPerQuery`, the filters (a result left out by a filter Crunchbase applies costs nothing) and `onlyNew` for recurring runs. Tick **Company profile**, **Key contacts** and **Find e-mails on the company website** only when you need what they add. `requireFields` with `website` is free for companies: it reads the search result (investors: their profile).

#### Several searches in one run

Fill `searchQueries` and / or `locations`: the Actor runs one search per keyword × location (3 keywords × 4 locations = 12 searches, up to 500 per run). The single `query` and `location` fields still work and are added to the lists. A result found by several searches is saved — and charged — once. Set `maxItemsPerQuery` to give every search its own cap: without it the first searches can use up the whole `maxItems` budget.

#### Monitoring: only the new results

Tick **Only new results** (`onlyNew`) and schedule the Actor. The first run returns everything; each later run skips the results already delivered: they are not saved, not charged, and their profile is not even opened. The memory lives in a named key-value store of your account (`crunchbase-companies-scraper-seen`, up to 150,000 results per key) and is only updated with results that really reached the dataset, so a failed run never hides anything. Give each schedule its own `stateKey` (two schedules sharing a key would hide each other's results), and tick `resetState` once to start over.

#### Names Crunchbase does not know

Locations, industries, investors and companies are matched to their Crunchbase names before the search starts, and the log says when a name was read as its closest match. A name with no match is skipped with a warning, and a location with no match skips its own searches. When no name of a filter has a match, an exclusion included, no search is run at all (the filter is never dropped, which would widen the search or bring back the results you excluded): the run returns nothing and charges nothing but the run start.

### 🔌 Integrations and API

Call the Actor via the Apify API, the JavaScript or Python clients, or connect it with integrations and webhooks (Make, Zapier, n8n, Google Sheets, Slack, Airtable, HubSpot…). The dataset can be fetched as JSON or CSV from any tool.

### 🤖 Use with AI agents (MCP)

AI agents (Claude, ChatGPT, Cursor…) can find and run this Actor through the [Apify MCP server](https://mcp.apify.com), billed to their Apify account like any run. It returns one item per Crunchbase company, investor, funding round or person. Actor id: `nice_dev/crunchbase-companies-scraper`; MCP server with this Actor only: `https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/crunchbase-companies-scraper`.

Smallest input, for a cheap first call:

```json
{
    "query": "drone",
    "maxItems": 10
}
```

Key output fields: `name`, `url`, `website`, `country`, `employeeRange`, `lastFundingType`, `rank`, and `contactEmail` (with `extractDetails`).

Cost: one `result` event per row, plus the options ticked; the amounts are in the Pricing tab. Cap each call with `maxItems` and, through the API, with the run option `maxTotalChargeUsd`.

### ❓ FAQ

#### Is it legal to scrape Crunchbase?

The Actor only reads what Crunchbase shows publicly to any anonymous visitor. It logs in to nothing and needs no Crunchbase account. Results can contain personal data (names, job titles and LinkedIn pages of founders, team members and key contacts), which is protected by GDPR: do not store it without a legitimate reason. You are responsible for using the data in compliance with Crunchbase's Terms of Use and applicable law. This Actor is not affiliated with Crunchbase.

**Where do the e-mail addresses come from?** With **Find e-mails on the company website** on, the Actor reads the pages each company publishes on its own website (home page, contact page, legal notice) and returns the business contact addresses shown there — what any visitor sees. On those websites it does not log in, guess addresses or fill in contact forms. Some of these addresses are personal data under GDPR (e.g. `firstname.lastname@company.com`): you are responsible for having a lawful basis before using them, for informing the people concerned and for honouring opt-outs. Rules for B2B e-mail prospecting differ by country (opt-out in some, prior consent in others).

**And the phone numbers?** The Actor also returns the phone numbers the company publishes on those same pages. It never guesses a number, never dials and sends no message. A number can be personal data (a founder's mobile): the same responsibilities apply, and rules on phone prospecting (opt-out registers, prior consent in some countries) differ by country.

#### Does it need a login or a proxy?

No login, no cookie. The proxy is included in the price: leave the default setting (the Apify residential group is refused, it would bill you a second time). A request the site turns away is tried up to 4 times at once — a new check, then a new browser on a new IP address — before it uses up one of the retries (without a proxy, on the same IP address, the next retry comes after a pause of 5 seconds, doubled at each retry up to 150 seconds).

#### Why are funding amounts and dates missing?

Crunchbase hides the amounts (total raised, round amounts, valuations) and most dates (round dates, founding date) from visitors without a paid account, so the Actor never returns them — it never guesses them either. The filters on them still work: `minFundingTotalUsd`, `minRoundAmountUsd`, `fundedAfter`, `announcedAfter` and `foundedAfter` are applied by Crunchbase itself. Rounds still come with their type and their lead investors.

#### Is the data safe to open in Excel or to show on a web page?

Descriptions, news titles and job titles are copied as Crunchbase shows them. A text can begin with `-`, `+`, `=` or `@`: Excel and Google Sheets may read such a cell of a CSV file as a formula or as a number. The Actor leaves the text as it is, so that the JSON and the API give the real value: when you open a CSV, import these columns as text. On a web page, escape every field like any text written by a stranger.

#### Known limitations

- Search results always come best-ranked first: no other order is offered.
- In **Funding rounds** mode no profile is opened: a round row holds its type, the company that raised and the lead investors.
- Without a Crunchbase account the key contacts come without their e-mail address or phone number: `keyContacts` gives the name, LinkedIn, job level and department.
- `onlyNew` remembers result ids, not their content: a company whose profile changed is not returned again.
- Two runs sharing the same `stateKey` at the same time may both return the same new result.

**A run that reaches its timeout** stops itself about 45 seconds before it: no new page is asked, what it read is saved and, with `onlyNew`, remembered, and the run ends *Succeeded* with "Stopped before the run's timeout". Resurrect it to go on from there, or give the next run a longer timeout (Run options).

**A run the platform stops without warning** (out of memory)

- Resurrect it: it goes on from where it stood at most a minute before the stop. What it had read since is read again, and the results already saved are skipped: none is delivered or charged twice, and `maxItems` still counts them.
- With `onlyNew`, the results it had saved join the memory when you resurrect it; leave it stopped for good, and the next run may return its last few results once more.

#### Something doesn't work?

The summary line at the end of the log (`Done — …`) counts the results saved; the line after it counts the requests that failed after every retry or, when none failed, the profiles no longer on Crunchbase. Those requests and the missing profiles are listed, with the reason, in the `FAILED_REQUESTS` record of the run's key-value store. A run that saved nothing and had failed requests fails, and its last message gives the cause.

If Crunchbase changes its pages, you are told instead of paying for blank rows. If the first 20 results read all lack their name, their rank, a company's short description or — with **Company profile** — its operating status, the run saves nothing more, stops and fails, and its last message names the missing field: at most those first results are charged. What a small company may lack (its website and country, and with **Company profile** its LinkedIn page and long description) is checked the same way on the first 100 results read — a result **Only results that have** left out for lacking it counts too. A run of fewer results (a scheduled `onlyNew` run that finds a few new ones, a small **Max results**) is checked at its end, from 3 results: its results are already saved, and the run fails with the missing field instead of ending green.

### 🛟 Support

Open an issue in the **Issues** tab with a link to your run: the run log and the `FAILED_REQUESTS` record of the key-value store show exactly which URLs failed and why.

# Actor input Schema

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

**Companies** (default), **Investors** (VC firms, angels, accelerators…), **Funding rounds** (one row per round: type, company, lead investors) or **People** (founders, executives). The filters of each kind are in their own section below; a filter that does not apply to the chosen kind is ignored and named in the log.

## `startUrls` (type: `array`):

Crunchbase company, investor or person pages (`https://www.crunchbase.com/organization/<name>`, `https://www.crunchbase.com/person/<name>`), one row each. When this list is not empty, the search fields (keywords, locations, filters) are ignored; monitoring and **Company profile** still apply. Max 1 000 URLs.

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

Companies to look up, one per line: a name (`Mistral AI`), a website or domain (`mistral.ai`), a Crunchbase slug (`mistral-ai`) or URL. Each is matched to its best Crunchbase match (the `searchTerm` field of the result shows what was typed; a website shows as its domain). In companies and investors modes they are read instead of a search (the search fields are ignored); in people mode they are ignored and the people search runs without them. In **Funding rounds** mode: the rounds of these companies. Max 1 000.

## `query` (type: `string`):

Results whose Crunchbase short description contains this text (e.g. `drone`, `payments`). Empty = no keyword.

## `searchQueries` (type: `array`):

Several keywords in one run: one search per keyword (times each location below). Added to **Keyword in the description**; results found by several searches are saved once.

## `nameContains` (type: `string`):

Results whose name contains this text (e.g. `labs`). Combined with the other fields (all must match).

## `location` (type: `string`):

Headquarters location: a country, region or city as named on Crunchbase (e.g. `France`, `California`, `Berlin`). Empty = worldwide.

## `locations` (type: `array`):

Several locations in one run: every keyword is searched in every location (3 keywords × 4 locations = 12 searches, max 500). Added to **Location**.

## `categories` (type: `array`):

Crunchbase industries, as named on the site (e.g. `Artificial Intelligence (AI)`, `FinTech`, `Biotechnology`). A result matches when it has at least one of them. Companies and investors.

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

Broader Crunchbase industry groups (e.g. `Financial Services`, `Health Care`, `Software`). A result matches when it is in at least one of them. Companies and investors.

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

Maximum number of results to save for the whole run (after deduplication and filters). 0 = no limit.

## `maxItemsPerQuery` (type: `integer`):

Cap for EACH search (keyword × location), so that the first search cannot use up the whole **Max results** budget. 0 = no per-search cap.

## `extractDetails` (type: `boolean`):

Open each company or investor profile for the contact e-mail and phone, social links, full description, legal name, operating status, team (names and titles), advisors, funding rounds and their investors, investments, acquisitions, sub-organizations, tech stack, monthly web visits, IT spend, patents and trademarks. Slower (a few seconds per profile) and charged per profile (see Pricing). In **People** mode it opens each person's profile instead: current and past jobs, education, board and advisory roles, companies founded, LinkedIn and X, charged per person profile.

## `includeKeyContacts` (type: `boolean`):

With **Company profile**: add the contacts Crunchbase lists for the company (name, LinkedIn, job level, department, number of e-mails on file), charged per company where at least one contact is found (see Pricing). Off by default.

## `enrichEmails` (type: `boolean`):

Visit each company's own website (home page, then up to 2 contact / legal / about pages linked from it) for its e-mail addresses, phone numbers and social links, beyond the contact e-mail and phone shown on Crunchbase. Works with or without **Company profile** (the website comes with every company search result; an investor search needs **Company profile**, its results carry no website). Slower. Charged per company only where a new e-mail is found, and per company where a new phone number is found (see Pricing); social links are free. Companies and investors only.

## `employeeRanges` (type: `array`):

Headcount ranges, as shown on Crunchbase. Empty = any size.

## `lastFundingTypes` (type: `array`):

Type of the company's latest funding round (e.g. Seed, Series A). Empty = any.

## `fundedAfter` (type: `string`):

Only companies whose latest funding round was announced on or after this date: `2026-09-01`, or a period before now such as `30 days`, `3 months`. Great to find companies that just raised. Crunchbase hides the date itself without a paid account, so it is not in the result.

## `fundedBefore` (type: `string`):

Only companies whose latest funding round was announced on or before this date (the whole day is included).

## `foundedAfter` (type: `string`):

Only companies founded on or after this date (e.g. `2023-01-01`, or `2 years`). The founding date itself is hidden by Crunchbase without a paid account.

## `foundedBefore` (type: `string`):

Only companies founded on or before this date.

## `fundingStages` (type: `array`):

Crunchbase funding stage of the company. Empty = any.

## `ipoStatuses` (type: `array`):

Private, public (listed) or delisted companies. Empty = any.

## `hubTags` (type: `array`):

Only the companies on these Crunchbase lists: unicorns (valued at $1B or more), emerging unicorns (on their way), exited unicorns (acquired or public). Empty = any.

## `maxRank` (type: `integer`):

Keeps only results whose overall Crunchbase rank is ≤ N (not the N best of your search): e.g. `1000` with location France = the French companies in the global top 1,000. 0 = any rank. Applies to all 4 modes (companies, funding rounds, investors, people). Results are always returned best-ranked first.

## `minFundingTotalUsd` (type: `integer`):

Only companies that raised at least this much in total, in US dollars (e.g. `10000000` = $10M). Crunchbase applies it even though it hides the amount itself without a paid account. Empty = any.

## `maxFundingTotalUsd` (type: `integer`):

Only companies that raised at most this much in total, in US dollars. Empty = any.

## `minFundingRounds` (type: `integer`):

Only companies with at least this many funding rounds on Crunchbase. 0 = any.

## `minGrowthScore` (type: `integer`):

Only companies whose Crunchbase growth score (0-100) is at least this value. 0 = any.

## `operatingStatuses` (type: `array`):

Only companies that are still active, or only those that closed. Empty = any. For public companies use "IPO status".

## `companyTypes` (type: `array`):

For-profit companies, non-profits, or both (empty).

## `excludeCategories` (type: `array`):

Drop the companies or investors in any of these Crunchbase industries (e.g. `Crypto`). Applied by Crunchbase, so excluded results do not use up the result limits. If no name has a match on Crunchbase, no search is run.

## `excludeLocations` (type: `array`):

Drop the results headquartered in any of these countries, regions or cities. Companies with no known location are dropped too. If no name has a match on Crunchbase, no search is run.

## `roundTypes` (type: `array`):

Types of the rounds to return. Empty = any. Same list as **Last funding type**.

## `announcedAfter` (type: `string`):

Only rounds announced on or after this date: `2026-10-01`, or `7 days`, `1 month`. Combine with **Only new results** to get the new rounds at each scheduled run.

## `announcedBefore` (type: `string`):

Only rounds announced on or before this date (the whole day is included).

## `minRoundAmountUsd` (type: `integer`):

Only rounds of at least this amount, in US dollars (e.g. `50000000` = $50M). Crunchbase applies it even though the amount itself stays hidden without a paid account. Empty = any.

## `maxRoundAmountUsd` (type: `integer`):

Only rounds of at most this amount, in US dollars. Empty = any.

## `investors` (type: `array`):

Only the rounds these investors took part in: names (`Sequoia Capital`) or Crunchbase URLs / slugs, each matched to its best Crunchbase match. Max 100.

## `investorTypes` (type: `array`):

Kinds of investors. Empty = any.

## `investorStages` (type: `array`):

Stages the investor invests in. Empty = any.

## `minInvestments` (type: `integer`):

Only investors with at least this many investments on Crunchbase. 0 = any.

## `minExits` (type: `integer`):

Only investors with at least this many exits (portfolio companies acquired or public). 0 = any.

## `jobTitle` (type: `string`):

People whose main job title contains this text (e.g. `CEO`, `Founder`, `CTO`).

## `excludeKeywords` (type: `array`):

Drop the results whose name or short description contains one of these words (case and accents ignored).

## `requireFields` (type: `array`):

Keep only the companies or investors that have all the ticked details, e.g. a contact e-mail for outreach. Website works on company search results (investors: on the profile, so it needs **Company profile**); LinkedIn is read on the profile, so it needs **Company profile** on (a profile opened and then dropped is charged as a profile); e-mail and phone need **Company profile** or **Find e-mails on the company website** (a website read and then dropped is not charged).

## `onlyNew` (type: `boolean`):

Skip the results that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their profile is not even opened. First run = everything is new.

## `stateKey` (type: `string`):

Name of the memory used by **Only new results**. Give each schedule / task its own key (e.g. `fr-seed-rounds`) so that they do not share their memory. Letters, digits, `-` and `_`.

## `resetState` (type: `boolean`):

Forget everything remembered under this **Memory key** before the run: this run returns (and charges) every result again. Untick it afterwards.

## `proxyConfiguration` (type: `object`):

Keep **Apify Proxy**: the Actor switches by itself to the IP addresses Crunchbase accepts when needed, included in the price. The Apify **RESIDENTIAL** group is refused (it would bill you a second time). Your own proxies (`proxyUrls`) are used as they are.

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

Requests to Crunchbase at the same time (search pages and profiles). More = faster searches; Crunchbase limits profiles by IP address whatever this value, and answers `429` sooner.

## `maxRequestsPerMinute` (type: `integer`):

Most requests to Crunchbase in any 60 seconds: search pages and profiles. Lower it if the log shows many `429` answers.

## `minRequestIntervalMs` (type: `integer`):

Smallest gap between the starts of two requests, in milliseconds. 0 = no gap.

## `maxRequestRetries` (type: `integer`):

Retries per request before it is marked as failed. A request Crunchbase turns away is also retried from a new IP address without using up these retries.

## `debugLog` (type: `boolean`):

Include debug messages in the run log.

## Actor input object example

```json
{
  "mode": "companies",
  "startUrls": [],
  "companies": [],
  "searchQueries": [],
  "location": "France",
  "locations": [],
  "categories": [
    "Artificial Intelligence (AI)"
  ],
  "industryGroups": [],
  "maxItems": 50,
  "maxItemsPerQuery": 0,
  "extractDetails": false,
  "includeKeyContacts": false,
  "enrichEmails": false,
  "employeeRanges": [],
  "lastFundingTypes": [],
  "fundingStages": [],
  "ipoStatuses": [],
  "hubTags": [],
  "maxRank": 0,
  "minFundingRounds": 0,
  "minGrowthScore": 0,
  "operatingStatuses": [],
  "companyTypes": [],
  "excludeCategories": [],
  "excludeLocations": [],
  "roundTypes": [],
  "investors": [],
  "investorTypes": [],
  "investorStages": [],
  "minInvestments": 0,
  "minExits": 0,
  "excludeKeywords": [],
  "requireFields": [],
  "onlyNew": false,
  "stateKey": "default",
  "resetState": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 2,
  "maxRequestsPerMinute": 30,
  "minRequestIntervalMs": 2000,
  "maxRequestRetries": 5,
  "debugLog": false
}
```

# 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 = {
    "mode": "companies",
    "location": "France",
    "categories": [
        "Artificial Intelligence (AI)"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("nice_dev/crunchbase-companies-scraper").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 = {
    "mode": "companies",
    "location": "France",
    "categories": ["Artificial Intelligence (AI)"],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("nice_dev/crunchbase-companies-scraper").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 '{
  "mode": "companies",
  "location": "France",
  "categories": [
    "Artificial Intelligence (AI)"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call nice_dev/crunchbase-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/crunchbase-companies-scraper"
        }
    }
}
```

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/fbEfdP8hEhoeavpUx/builds/anbjA2flP2HjRrbDV/openapi.json
