# Crunchbase Scraper — Companies, Funding & Investors (`tortuga/crunchbase-scraper`) Actor

Scrape public Crunchbase company profiles by URL, slug or name: description, categories, headquarters, employee range, website, funding stage, investors, acquisitions, key people, similar companies.

- **URL**: https://apify.com/tortuga/crunchbase-scraper.md
- **Developed by:** [Trevor Ortega](https://apify.com/tortuga) (community)
- **Categories:** Lead generation
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 company profiles

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Crunchbase Company Scraper

Scrape public Crunchbase company profiles by URL, slug or company name: description, categories, headquarters, employee range, website, company contact email and phone, social links, IPO status and ticker, funding stage and number of rounds, investors, acquisitions, parent and sub-organizations, founders and key people, web-traffic and technology signals, and the similar companies listed on the page.

Built for lead generation, CRM enrichment and market research: give it a list of companies and get one structured item per company that you can export to JSON, CSV or Excel, or pull through the API into Google Sheets, a CRM or an LLM pipeline. No Crunchbase account, API key, cookies or headless browser. One company is one page request and one result, and you pay only for the profiles you get.

**What it does not do.** Crunchbase shows some values only to registered or paying users: the founded date, total funding, funding dates and amounts, the number of exits and news headlines are blurred for visitors who are not logged in. This Actor never logs in, so those fields come out as `null` and are named in `lockedFields` (see "Why are total funding and founded date empty?" below).

### What data does Crunchbase Company Scraper extract?

Every item is one company (or investor, school, non-profit: anything with a Crunchbase organization page).

| Field | Description |
|---|---|
| `slug`, `name`, `url`, `uuid` | Crunchbase permalink, company name, profile URL and Crunchbase UUID |
| `legalName`, `aliases` | Legal name and "also known as" names |
| `shortDescription`, `description` | One-line summary and the full "About the company" text |
| `website`, `logoUrl` | Company website and logo image |
| `categories`, `categoryGroups` | Industries (`SaaS`, `Developer Tools`, ...) and industry groups (`Software`, `Financial Services`, ...) |
| `headquarters`, `headquartersRegions` | `{city, region, country}` and regional groupings (`San Francisco Bay Area`, `European Union (EU)`, ...) |
| `operatingStatus`, `companyType`, `organizationTypes` | `active` / `closed`; `for_profit` / `non_profit`; any of `company`, `investor`, `school` |
| `employeeRange` | Headcount band: `1-10`, `11-50`, `251-500`, `10001+` |
| `ipoStatus`, `stockSymbol`, `stockExchange` | `private` / `public` / `delisted`, ticker (`ABNB`) and exchange (`NASDAQ`) |
| `cbRank`, `growthScore`, `heatScore` | Crunchbase rank and Crunchbase's growth and heat scores (0-100) |
| `fundingRoundsCount`, `lastFundingType` | Number of funding rounds and the type of the latest one (`seed`, `series_b`, `post_ipo_debt`, `grant`, ...) |
| `investorsCount`, `topInvestors` | Number of investors and the investor organizations named on the page, most recent first (up to 10) |
| `acquisitionsCount`, `acquisitions` | Number of acquisitions and the acquired companies shown on the page (`{name, slug, url}`, up to 10) |
| `acquiredBy`, `parentOrganization` | Acquirer and parent organization as `{name, slug, url}` |
| `subOrganizationsCount`, `subOrganizations` | Subsidiaries, divisions and investment arms (`{name, slug, url, type}`) |
| `investmentsCount`, `fundsCount` | For investors: number of investments made and funds raised |
| `founders` | Founder names as shown on the company page |
| `keyPeople`, `keyPeopleCount` | Names and job titles from the page's "Employee Profiles" block (up to 8), and how many employee profiles Crunchbase holds |
| `contactEmail`, `phone` | The company's contact email and phone number shown on the page |
| `socialLinks` | Company pages: `{linkedin, twitter, facebook}` |
| `similarCompanies` | With **Include similar companies**: the competitors the page lists (`{name, slug, url}`) |
| `products` | Products and services shown on the page (`{name, description}`) |
| `monthlyWebVisits`, `webVisitsGrowthPct` | Semrush monthly visits and month-over-month change in percent |
| `technologiesCount`, `itSpendUsd`, `patentsCount`, `trademarksCount` | BuiltWith technology count, Aberdeen IT spend estimate, IPqwery patents and trademarks |
| `latestNewsDate` | Date of the newest press item on the profile |
| `foundedOn`, `totalFundingUsd`, `lastFundingAt`, `lastFundingAmountUsd`, `exitsCount`, `news` | Locked by Crunchbase for logged-out visitors: `null` (filled automatically if Crunchbase shows them) |
| `lockedFields` | Which of the fields above exist for this company but are withheld by Crunchbase |
| `searchName` | The name you typed, when the company was found through **Company names** |
| `scrapedAt` | Timestamp of the run (ISO 8601) |

### How to scrape Crunchbase company data

1. Paste company pages into **Company URLs** (`https://www.crunchbase.com/organization/apify`), or type permalinks into **Company slugs** (`airbnb`), or type plain names into **Company names** (`Sequoia Capital`). You can mix all three.
2. Set **Max companies** to cap the run and the cost.
3. Optionally turn on **Include similar companies** to get each company's competitors, then feed those slugs into a second run.
4. Click **Start**. Results appear in the **Dataset** tab; export them or read them through the API.

### Input example

```json
{
  "startUrls": [{ "url": "https://www.crunchbase.com/organization/apify" }],
  "companySlugs": ["airbnb", "github"],
  "companyNames": ["Sequoia Capital"],
  "maxItems": 50,
  "includeSimilarCompanies": true
}
```

### Output example

```json
{
  "slug": "apify",
  "name": "Apify",
  "url": "https://www.crunchbase.com/organization/apify",
  "uuid": "0b5c8c49-1242-446a-8bab-57c11b113373",
  "legalName": "Apify Technologies s.r.o.",
  "aliases": [],
  "shortDescription": "Apify is the largest marketplace of tools for AI. Thousands of Actors get web data and automate tasks.",
  "description": "Apify is the largest marketplace of tools for AI. Thousands of ready-to-run tools called Actors get web data and automate tasks on the web, ...",
  "website": "https://apify.com",
  "logoUrl": "https://images.crunchbase.com/image/upload/c_pad,h_256,w_256,f_auto,q_auto:eco,dpr_1/e33795aa49d74b8e9db937407aad31cd",
  "categories": ["Developer APIs", "E-Commerce", "Enterprise Software", "Information Technology", "Internet", "Software"],
  "categoryGroups": ["Commerce and Shopping", "Information Technology", "Software"],
  "headquarters": { "city": "Prague", "region": "Hlavni mesto Praha", "country": "Czech Republic" },
  "headquartersRegions": ["European Union (EU)", "Europe, Middle East, and Africa (EMEA)"],
  "foundedOn": null,
  "operatingStatus": "active",
  "companyType": "for_profit",
  "organizationTypes": ["company"],
  "employeeRange": "251-500",
  "ipoStatus": "private",
  "stockSymbol": null,
  "stockExchange": null,
  "cbRank": 6444,
  "growthScore": 81,
  "heatScore": 74,
  "totalFundingUsd": null,
  "fundingRoundsCount": 5,
  "lastFundingType": "series_unknown",
  "lastFundingAt": null,
  "lastFundingAmountUsd": null,
  "investorsCount": 4,
  "topInvestors": ["J&T Ventures", "Reflex Capital", "INCOMMING ventures", "Y Combinator"],
  "acquisitionsCount": null,
  "acquisitions": [],
  "acquiredBy": null,
  "parentOrganization": null,
  "subOrganizationsCount": null,
  "subOrganizations": [],
  "investmentsCount": null,
  "fundsCount": null,
  "exitsCount": null,
  "founders": ["Jakub Balada", "Jan Čurn"],
  "keyPeople": [
    { "name": "Marek Trunkat", "title": "CTO" },
    { "name": "Jan Čurn", "title": "Founder and CEO" },
    { "name": "Ondra Urban", "title": "COO" }
  ],
  "keyPeopleCount": 7,
  "contactEmail": "hello@apify.com",
  "phone": null,
  "socialLinks": { "linkedin": "https://www.linkedin.com/company/apify", "twitter": "https://x.com/apify", "facebook": null },
  "similarCompanies": [
    { "name": "Firecrawl", "slug": "firecrawl", "url": "https://www.crunchbase.com/organization/firecrawl" },
    { "name": "Exa", "slug": "exa-1b30", "url": "https://www.crunchbase.com/organization/exa-1b30" },
    { "name": "Tavily", "slug": "tavily", "url": "https://www.crunchbase.com/organization/tavily" }
  ],
  "products": [
    { "name": "Actors", "description": "A platform feature where developers build, deploy, and publish web scrapers, AI agents, and automation tools called Actors." }
  ],
  "monthlyWebVisits": 6919203,
  "webVisitsGrowthPct": 12.78,
  "technologiesCount": 56,
  "itSpendUsd": 9805900,
  "patentsCount": 0,
  "trademarksCount": 2,
  "news": null,
  "latestNewsDate": "2026-07-01",
  "lockedFields": ["foundedOn", "totalFundingUsd", "lastFundingAt", "lastFundingAmountUsd", "news"],
  "searchName": null,
  "scrapedAt": "2026-10-02T19:59:18Z"
}
```

### Proxy note

Crunchbase blocks datacenter and residential proxies, so this Actor uses **Apify's Unblocker proxy** (proxy group `UNBLOCKER`) by default. Apify bills Unblocker to your account per request: 10 Unblocker units, about $0.0015 on the free plan and less on paid plans. A company profile is exactly one request; looking a company up by name adds one; a slug that does not exist can cost two, because a "not found" answer is confirmed once. The Actor stops requesting pages as soon as **Max companies** profiles are saved or on their way, and the number of requests it made is reported in the run's `SUMMARY` record (`notes.successfulRequests`). Other proxy groups will mostly fail.

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

$0.005 per company profile saved, with no start fee and no subscription. Companies that are not found or could not be loaded are not charged. On top of that Apify bills the usage of your run: the Unblocker proxy (about $0.0015 per company, see above) and a little compute (well under $0.001 per company; the Actor runs in 512 MB). So 1,000 company profiles cost roughly $7 in total, and the Apify free plan is enough to try a few hundred.

### Can I look up Crunchbase companies by name?

Yes. Put names into **Company names** and each one is resolved through Crunchbase's own public search box (one extra proxy request per name, not charged as a result). A company is accepted when its Crunchbase name equals the name you typed, ignoring case and punctuation, or when the top suggestion and your name contain one another (`Apify` for `Apify Technologies`). The name you typed is returned as `searchName` so you can join the results back to your list. Names without a clear match are not guessed: they are listed with Crunchbase's suggestions in the run log and in the `SUMMARY` record (`notes.nameLookups`), and cost nothing beyond the lookup request. When you already know the Crunchbase URL or slug, use that instead: it is cheaper and unambiguous.

### Why are total funding and founded date empty?

Because Crunchbase withholds them from visitors who are not logged in, and this Actor only collects what such a visitor is shown. On a logged-out company page the founded date, total funding amount, the date and amount of each funding round, IPO date and valuation, acquisition prices, the number of exits and all news headlines are blurred behind "Register for Free" or "Try Pro". The Actor returns these as `null`, never as placeholder text, and lists them in `lockedFields` when Crunchbase holds a value but hides it (a company that never raised money has `totalFundingUsd: null` and no entry in `lockedFields`). What stays public is still useful for qualifying leads: funding stage (`lastFundingType`), number of rounds, investor names, employee range, growth and heat scores, web traffic and tech signals.

For the same reason the Actor returns the three similar companies and the two products that the page prints, not the longer lists behind Crunchbase Pro.

### Does it need a Crunchbase account, API key or cookies?

No. It reads the public organization page exactly as an anonymous visitor's browser receives it, over plain HTTP. There is no login, no session cookie to paste and no browser automation, which is also why it cannot return the locked fields above.

### How fast is it?

A page takes 15-60 seconds to come back through the Unblocker proxy (about 30 seconds on average), and five pages are loaded in parallel, so expect roughly 10 companies per minute, or about 600 per hour. For lists longer than that, raise the run timeout (the default is one hour) or split the list over several runs. Pages that fail are retried automatically; a company that still cannot be loaded is reported in the run log and not charged.

### Integrations and API

Use the run in Zapier, Make, n8n or Google Sheets, or call it from Python or Node with the Apify client; the **API** tab has ready-made snippets. A common pattern for enrichment: export the companies from your CRM, run them through **Company names** or **Company URLs**, and join the dataset back on `searchName` or `slug`.

### Is it legal to scrape Crunchbase?

This Actor collects only publicly visible business information from company profile pages, without logging in and without touching anything Crunchbase reserves for registered or paying users. It is limited to company-level data. The only personal data it returns are the names of founders and key people with their job titles, as displayed on the public company page; it does not open person profiles and does not collect personal emails, phone numbers or personal social links, and it leaves out people that Crunchbase flags with a regulatory exclusion marker (so some well-known founders are missing from `founders`). The contact email and phone are the company's own contact details from the company page. You are responsible for how you use the data and for complying with Crunchbase's terms of service and applicable law, including GDPR/CCPA where you process the names of people.

### Support

Found a bug or need a field added? Open an issue in the **Issues** tab; it is usually answered within a day.

# Actor input Schema

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

Crunchbase organization pages, e.g. https://www.crunchbase.com/organization/apify (tab URLs such as .../company_financials work too). Each company is one page request. Person, hub and search URLs are skipped.

## `companySlugs` (type: `array`):

Crunchbase permalinks: the last part of the company URL, e.g. "airbnb" for crunchbase.com/organization/airbnb. One page request per company.

## `companyNames` (type: `array`):

Company names to look up through Crunchbase's public search box, e.g. "Sequoia Capital". The best exact match is scraped and the name you typed is returned in searchName. A lookup is one extra proxy request per name (not charged as a result); names without a clear match are listed in the run log instead of being guessed.

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

Stop after this many company profiles. You pay per profile saved, and pages are only requested while this limit is not reached.

## `includeSimilarCompanies` (type: `boolean`):

Add the competitors / similar companies listed on each company page (name, slug and URL) to the item as similarCompanies. No extra requests and no extra charge; feed the slugs back into Company slugs to profile them.

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

Crunchbase blocks datacenter and residential proxies, so the default is Apify's Unblocker proxy (group UNBLOCKER). Apify bills Unblocker to your account per successful request: about $0.0015 each on the free plan, less on paid plans. One company profile is one request; a name lookup adds one.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.crunchbase.com/organization/apify"
    }
  ],
  "maxItems": 50,
  "includeSimilarCompanies": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.crunchbase.com/organization/apify"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "UNBLOCKER"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tortuga/crunchbase-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 = {
    "startUrls": [{ "url": "https://www.crunchbase.com/organization/apify" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["UNBLOCKER"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("tortuga/crunchbase-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 '{
  "startUrls": [
    {
      "url": "https://www.crunchbase.com/organization/apify"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}' |
apify call tortuga/crunchbase-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tortuga/crunchbase-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/CRlt02Kia5k6hqiqb/builds/RFFh17QSs4yNTjhe6/openapi.json
