# Crunchbase API: Find Investors & List of Venture Capital Firms (`pnda/crunchbase-scraper`) Actor

Crunchbase API and scraper, no login: find investors and startups by keyword, industry and city (venture capital firms in Paris, fintech startups in Berlin), or get company data by URL, name or domain: funding rounds, founders. $7.90 per 1,000 companies.

- **URL**: https://apify.com/pnda/crunchbase-scraper.md
- **Developed by:** [PNDA](https://apify.com/pnda) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 9 total users, 7 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.51 / 1,000 companies

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

## Crunchbase API & Search: Find Investors, VC List, Startup Data

Get **Crunchbase company data as clean JSON**: funding total, every funding round, investors (lead investors first), acquisitions, founders and key people, employee range, headquarters, website, LinkedIn / X / Facebook links, industries, CB rank, web traffic and news.

- **No Crunchbase account, no login, no cookies, no API key.** A Crunchbase API alternative that you pay per company.
- **Crunchbase search by filters:** find investors and companies by **keywords, industry and location**: a VC list of Paris investors, fintech startups in Berlin, seed funds in London. A startup database you query by filters.
- **Or bring your own list:** paste Crunchbase organization URLs, or just type **company names or domains** (`stripe.com`, `Mistral AI`).
- **Pay only for results delivered.** Pages not found, results dropped by your filters and searches with no result are free.
- **Search: $6.50 per 1,000 results**, plus $7.90 per 1,000 if you enrich them with the full record. **URLs / names: $7.90 per 1,000 companies.** Founders & key people: optional, +$2 per 1,000.
- Export to JSON, CSV, Excel, or call it from your code, Zapier, Make, n8n or an AI agent.

### What you can do with it

- **Find investors:** build a VC list by city or sector ("venture capital" in Paris, "seed fund" in Berlin), with number of investments and HQ.
- **VC and startup research:** funding history, round sizes, lead investors and co-investors for any startup.
- **Lead generation:** recently funded companies, their website, socials and founders.
- **Market maps and competitor analysis:** industries, headcount ranges, HQ location, similar companies.
- **CRM enrichment:** turn a list of domains into Crunchbase profiles with funding data.

### Input

#### 1. Scrape Crunchbase URLs

```json
{
  "mode": "urls",
  "urls": [
    "https://www.crunchbase.com/organization/openai",
    "https://www.crunchbase.com/organization/apify"
  ],
  "includeKeyPeople": true
}
```

Sub-pages (`/company_financials`, `/people`…) are mapped to the company. Duplicates are removed automatically.

#### 2. Find companies & investors (Crunchbase search by keywords, industry, location)

```json
{
  "mode": "search",
  "keywords": "venture capital",
  "location": "Paris",
  "entityType": "investor",
  "maxResults": 50,
  "country": "fr",
  "enrich": true,
  "hqCountry": "France"
}
```

- Searches Crunchbase organization pages matching your **keywords**, **industry** and **location** (through Google, so no Crunchbase account is needed). Results that do not mention your keywords / industry are dropped for free.
- `entityType`: `investor` keeps VC firms, funds, angel groups and other investors; `company` or `any` keeps everything.
- Without `enrich`: name, Crunchbase URL and Google snippet of each organization, **$6.50 / 1,000**.
- With `enrich`: the full Crunchbase record of each result (funding, rounds, investors, HQ, website, socials, number of investments), **+$7.90 / 1,000**. Then `hqCountry`, `minFundingUsd` and `maxFundingUsd` filter on that record; dropped results are not charged.
- `country` / `language`: the Google locale (`fr` for Paris, `de` for Berlin) gives more local results.
- A search with no result returns one free `no-results` row explaining why.

#### 3. Look up by company name or domain (no URL needed)

```json
{
  "mode": "names",
  "searchQueries": ["openai.com", "Mistral AI", "stripe.com"],
  "maxResultsPerQuery": 1
}
```

- A **domain** is looked up by its name and the company whose website matches the domain is returned first (`domainMatch: true`).
- `maxResultsPerQuery`: 1 = best match only, up to 20.

| Field | Type | Description |
|---|---|---|
| `mode` | `urls` / `search` / `names` | Scrape URLs, search by filters, or look up by name / domain. |
| `urls` | array | Crunchbase organization URLs. |
| `keywords`, `industry`, `location` | string | Search filters (at least one). |
| `entityType` | `any` / `company` / `investor` | Search: kind of organization. |
| `maxResults` | integer | Search: organizations returned (1 to 100, default 20). |
| `enrich` | boolean | Search: add the full Crunchbase record (billed as `company`). |
| `hqCountry`, `minFundingUsd`, `maxFundingUsd` | string / integer | Search with `enrich`: filters on the record. |
| `country`, `language` | string | Search: Google locale (default `us` / `en`). |
| `searchQueries` | array | Company names or domains, one per line. |
| `maxResultsPerQuery` | integer | Companies returned per search (1 to 20, default 1). |
| `includeKeyPeople` | boolean | Adds `founders`, `keyPeople` and `advisors` (paid option). |

### Output

One row per company. Example (shortened):

```json
{
  "status": "ok",
  "name": "CleanCapital",
  "legalName": "CleanCapital Holdings LLC",
  "crunchbaseUrl": "https://www.crunchbase.com/organization/cleancapital",
  "website": "http://www.cleancapital.com",
  "domain": "cleancapital.com",
  "description": "CleanCapital accelerates clean energy with an online marketplace…",
  "industries": ["Energy", "FinTech", "Renewable Energy"],
  "operatingStatus": "active",
  "foundedDate": "2015-01-01",
  "employees": "101-250",
  "cbRank": 2218,
  "location": { "city": "New York", "region": "New York", "country": "United States", "continent": "North America", "countryCode": "US" },
  "socials": { "linkedin": "https://www.linkedin.com/company/cleancapital", "twitter": "https://www.twitter.com/cleancapital", "facebook": "https://www.facebook.com/cleancapitalco" },
  "funding": { "totalUsd": 1063700000, "numRounds": 7, "lastRoundDate": "2023-06-07", "lastRoundType": "private_equity", "numInvestors": 11 },
  "fundingRounds": [
    { "date": "2023-06-07", "type": "Private Equity Round", "moneyRaisedUsd": 500000000, "leadInvestors": ["Manulife Investment Management"] }
  ],
  "investors": [
    { "name": "Manulife Investment Management", "type": "organization", "lead": true, "rounds": ["Private Equity Round - CleanCapital", "Corporate Round - CleanCapital"] }
  ],
  "acquisitions": [{ "company": "BQ Energy", "date": "2022-06-29" }],
  "acquiredBy": null,
  "founders": [{ "name": "Jon Powers", "crunchbaseUrl": "https://www.crunchbase.com/person/jon-powers" }],
  "keyPeople": [{ "name": "Thomas Byrne", "title": "Co-founder", "crunchbaseUrl": "https://www.crunchbase.com/person/thomas-byrne-4" }],
  "monthlyVisits": 4800,
  "similarCompanies": [{ "name": "d.light", "crunchbaseUrl": "https://www.crunchbase.com/organization/d-light-design" }],
  "news": [{ "date": "2024-02-15", "title": "CleanCapital and Available Power form joint venture…", "publisher": "Renewable Energy Magazine" }],
  "scrapedAt": "2024-07-22 00:00:00.000"
}
```

Other fields: `uuid`, `logo`, `fullDescription`, `companyType`, `ipoStatus`, `stockSymbol`, `ipo`, `numAcquisitions`, `numInvestments`, `numExits`, `investorType`, `investmentStage` (for investors), `numContacts`, `monthlyVisitsGrowth`, `techCount`, `numNews`, `inputUrl`, `searchQuery`, `domainMatch`, `fromCache`.

`founders`, `keyPeople` and `advisors` are only present with **Include founders & key people**.

Rows with `"status": "not-found"` (page removed, renamed, or a search with no result) are free and say so (`"charged": false`).

**Contact emails and phones:** Crunchbase hides them from logged-out visitors, so `contactEmail` / `contactPhone` are usually `null`. A masked value is never returned.

### Pricing

**Store discounts:** on Apify Silver, Gold, Platinum and Diamond plans, some events cost up to 20 % less. The Pricing tab of the Store page shows the exact price for each plan.

Pay per event, no subscription:

| Event | Price | When |
|---|---|---|
| `search-result` | **$0.0065** ($6.50 / 1,000) | Each organization found by the keyword / industry / location search. |
| `company` | **$0.0079** ($7.90 / 1,000) | Each company delivered with its full record (URL, name lookup, or a search result with `enrich`). |
| `key-people` | $0.002 ($2 / 1,000) | Only with "Include founders & key people", and only when the company has at least one person listed. |

- Not found, invalid input, failed pages, search results dropped by your filters, empty searches: **free**.
- Example: 1,000 Paris investors with full records = $6.50 + $7.90 = **$14.40**.
- Your **Maximum cost per run** is respected **before** any scraping: the actor never scrapes more companies than it can bill.
- Results may be served from a 30-day cache when another run scraped the same company recently. They are billed at the same price, and delivered faster.

#### Free Apify plan

**Works with a free Apify account too.** Free-plan accounts can use every feature at the same per-result prices, paid from their monthly Apify credit. Limit: free accounts share a daily capacity; once it is used up, the remaining inputs are skipped with one `free-plan-limit` row (not charged). Retry the next day, or switch to a paid Apify plan to run without this limit.

### Use it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/pnda~crunchbase-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"mode":"search","keywords":"venture capital","location":"Paris","entityType":"investor","maxResults":20}'
```

```python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("pnda/crunchbase-scraper").call(run_input={"urls": ["https://www.crunchbase.com/organization/openai"]})
for company in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(company["name"], company["funding"]["totalUsd"])
```

### FAQ

**Do I need a Crunchbase account or API key?** No. The actor reads public Crunchbase pages; no login, no cookies, nothing to configure.

**Is this a Crunchbase API alternative?** Yes: send search filters, URLs, names or domains, get structured JSON. The official Crunchbase API needs an enterprise plan; here you pay per company.

**How fresh is the data?** Pages are scraped on demand. A company scraped by any run in the last 30 days may be served from the cache (`fromCache: true`, `scrapedAt` shows the date).

**Why is a field empty?** Crunchbase only shows part of its data publicly (for example, emails and phones are hidden, and small companies have no funding data). Empty fields are `null` or `[]`, never invented.

**Can I find investors (VC firms) in a city?** Yes: search mode with `entityType: "investor"`, keywords such as "venture capital" or "seed fund" and a location. With `enrich`, rows include `numInvestments`, `investorType` and `investmentStage` when Crunchbase shows them. You can also paste investor URLs.

**Is this a Crunchbase search export?** It works like a Crunchbase search without an account: keywords, industry and location in, a list of organizations out, optionally with full records. It finds the organizations Google has indexed, so a very narrow search may return fewer results than Crunchbase Pro.

**Is it legal?** The actor only collects publicly available company data. You are responsible for how you use it, in particular for personal data (founders, team) under the privacy laws that apply to you.

**A run says "You were not charged".** Invalid input, a page not found, or a temporary outage of the scraping service: nothing is billed, and the run explains why in its dataset and status message.

### Related actors

- [PitchBook Scraper](https://apify.com/pnda/pitchbook-scraper): Need another view of a private company? Total raised, latest deal, investors and competitors from PitchBook profiles.
- [LinkedIn Scraper & People Search](https://apify.com/pnda/linkedin-scraper): Found the company? Find its people by job title on LinkedIn, no cookies.
- [Email Finder](https://apify.com/pnda/email-finder): Have the founders' names and the domain? Find their verified work emails.

# Actor input Schema

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

"Scrape Crunchbase URLs": paste Crunchbase organization URLs and get the full company record. "Find companies & investors": search Crunchbase by keywords, industry and location (e.g. venture capital firms in Paris, fintech startups in Berlin) and get a list, optionally enriched with the full record. "Look up by company name or domain": the actor finds the Crunchbase company for each name or website.

## `urls` (type: `array`):

Crunchbase company pages, e.g. https://www.crunchbase.com/organization/openai. Sub-pages (/company_financials, /people…) are mapped to the company. Duplicates are removed.

## `keywords` (type: `string`):

What the organizations do, e.g. "venture capital", "seed fund", "AI agents", "climate tech". Every result must mention it.

## `industry` (type: `string`):

Optional industry, e.g. "fintech", "biotech", "SaaS".

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

Optional city, region or country, e.g. "Paris", "Berlin", "California".

## `entityType` (type: `string`):

"Investors" keeps VC firms, funds, angel groups and other investors. "Any" keeps every organization.

## `maxResults` (type: `integer`):

How many organizations to return (1-100).

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

Search mode: skip the organizations you already received from this Actor in previous runs (same Apify account, last 12 months) and keep searching until you have "Max results" new ones. Organizations skipped are never charged.

## `enrich` (type: `boolean`):

Adds the full company record to each result (funding, rounds, investors, HQ, website, socials, investor type, number of investments). Billed as one company per enriched result. Needed for the HQ country and funding filters.

## `hqCountry` (type: `string`):

Keep only organizations headquartered in this country (name or ISO code, e.g. "France" or "FRA"). Dropped results are not charged.

## `minFundingUsd` (type: `integer`):

Keep only organizations that raised at least this amount. Dropped results are not charged.

## `maxFundingUsd` (type: `integer`):

Keep only organizations that raised at most this amount. Dropped results are not charged.

## `country` (type: `string`):

Two-letter country of the Google search (e.g. "fr" for Paris, "de" for Berlin). Default "us".

## `language` (type: `string`):

Two-letter language of the Google search. Default "en".

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

One company per line: a name ("Stripe") or a website / domain ("stripe.com"). For a domain, the company whose website matches is returned first (domainMatch: true).

## `maxResultsPerQuery` (type: `integer`):

How many Crunchbase companies to return for each name or domain. 1 = the best match only.

## `includeKeyPeople` (type: `boolean`):

Adds founders, current team members (name, title, Crunchbase person URL) and advisors to each company (URL mode, name lookup, or search with Enrich). Billed as an extra event only when the company has at least one person listed.

## Actor input object example

```json
{
  "mode": "urls",
  "urls": [
    "https://www.crunchbase.com/organization/openai",
    "https://www.crunchbase.com/organization/apify"
  ],
  "keywords": "venture capital",
  "location": "Paris",
  "entityType": "investor",
  "maxResults": 20,
  "onlyNew": false,
  "enrich": false,
  "country": "us",
  "language": "en",
  "searchQueries": [
    "stripe.com",
    "Mistral AI"
  ],
  "maxResultsPerQuery": 1,
  "includeKeyPeople": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

All companies (JSON, CSV, Excel).

# 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": "urls",
    "urls": [
        "https://www.crunchbase.com/organization/openai",
        "https://www.crunchbase.com/organization/apify"
    ],
    "keywords": "venture capital",
    "location": "Paris",
    "entityType": "investor",
    "searchQueries": [
        "stripe.com",
        "Mistral AI"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pnda/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 = {
    "mode": "urls",
    "urls": [
        "https://www.crunchbase.com/organization/openai",
        "https://www.crunchbase.com/organization/apify",
    ],
    "keywords": "venture capital",
    "location": "Paris",
    "entityType": "investor",
    "searchQueries": [
        "stripe.com",
        "Mistral AI",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("pnda/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 '{
  "mode": "urls",
  "urls": [
    "https://www.crunchbase.com/organization/openai",
    "https://www.crunchbase.com/organization/apify"
  ],
  "keywords": "venture capital",
  "location": "Paris",
  "entityType": "investor",
  "searchQueries": [
    "stripe.com",
    "Mistral AI"
  ]
}' |
apify call pnda/crunchbase-scraper --silent --output-dataset

```

## MCP server setup

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