# Crunchbase - 250K Company DB, Funding, Investors & News ($8/1k) (`memo23/crunchbase-scraper`) Actor

Crunchbase four ways: live company scrape with no setup, the Instant Database of 250K+ profiles served in seconds, 19,000+ VC firms with contacts at no surcharge, and Crunchbase News articles that name the companies they cover. Funding Monitor returns only NEW rounds per run. $8/1k.

- **URL**: https://apify.com/memo23/crunchbase-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Lead generation, Automation, Agents
- **Features:** Limited permissions
- **Stats:** 541 total users, 194 monthly users, 99.9% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Crunchbase Scraper - Investors Database, Companies, Funding Rounds & News

### How It Works

![How It Works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-crunchbase.png)

Turn any Crunchbase company URL or slug into one clean, structured row - no raw blob to untangle.
Paste a company link, a bare slug, or an `organization/...` path and get a ready-to-use profile: identity, funding, people, M\&A, tech stack, web traffic, IT spend, and Crunchbase's own growth/funding/acquisition/IPO predictions.
Or paste a Crunchbase **Discover / saved-search URL** (e.g. `crunchbase.com/discover/funding_rounds/…`) and get one funding-round signal row per result - company, round type, and Crunchbase links - with each company enriched from its org page. **Crunchbase caps Discover at the first 15 results per search** (its own paywall, not a scraper limit - [details](#supported-inputs)), so pull big lists by pasting several narrower searches rather than one broad one.
JSON or CSV out. No Crunchbase account, token or proxy setup needed.

### 💼 Startup Investors Database - 19,000+ VC firms, accelerators & angels

Flip on **`investorDatabase`** (or set any investor filter) and the actor returns **investor firm rows** instead of companies: **19,000+ venture capital firms, accelerators, angel investors, family offices and grant programs**, each derived from live Crunchbase funding-round participation - not a stale directory dump:

- **Who they are** - firm name, Crunchbase URL, inferred type (VC / Seed & Early-Stage VC / Accelerator / Angel / Grant Program / Debt), and where available HQ city + country, website, **contact email**, phone, description, Crunchbase rank
- **How they invest** - observed **deal count**, full **stage distribution** (Pre-Seed → Series D+, Grants, Debt), top stage, **focus areas** (industries of their actual portfolio), portfolio **countries**
- **What they've backed** - the **portfolio companies** themselves, with Crunchbase permalinks, ready to cross-reference against the 250K+ company database below
- **Filter** by name/keyword, firm type, investment stage, focus area (e.g. `Artificial Intelligence (AI)`, `Biotechnology`), country, and minimum deal count

Perfect for **fundraising target lists** ("US seed-stage VCs active in AI"), **B2B sales to investment firms**, and **VC market research**. Contacts are **included in the row price - no per-contact surcharge**, and every run logs a **cost preview before a single row is billed**, so you always know the bill up front. A full 19K-firm export costs ~**$155**; a targeted 1,000-firm list ~**$8**.

### ⚡ Instant Company Database - 250,000+ companies, zero scraping

Flip on **`instantDatabase`** (or just set any DB filter) and the actor answers from its continuously-growing database of **250K+ Crunchbase company profiles** - instantly, no crawling, no waiting:

> *`dbQuery: "ai"` →* **25,209 matching companies** · served in seconds · full clean profile per row (funding, people, tech stack, predictions) · filter by **country, employee range, operating status**, ranked by Crunchbase rank.

Every row carries `source: 'instant-db'` plus the date it was last refreshed. Perfect for lead lists, market sizing and enrichment backfills where "right now" beats "freshly crawled".

### 💰 Funding Rounds mode - filter by type, amount and date, no URL needed

`money_raised` and `announced_on` are **Crunchbase Pro-gated**: an anonymous session sees a round exist but not what it was worth or when it closed, and pagination stops at 15 results. This actor runs a paid Pro seat, so amounts and dates come back filled in.

Set **`roundType`**, **`minAmountUsd`**, **`announcedAfter`** and you have your search - no Discover URL to build, no Crunchbase account needed:

> *`roundType: "series_b"`, `minAmountUsd: 10000000`, `announcedAfter: "2026-06-01"` →* **370 matching rounds**, each with the funded company, the USD amount and the announcement date.

Rows come from a **180,000+ round archive first** (instant), and when the archive cannot fill your `maxItems` the **same filters run live against Crunchbase** and the results are merged, deduped on round id. The run log says exactly how many came from each, because the archive is a partial slice of Crunchbase's ~838,000 rounds and a filter answered only from it would look complete while being a fraction.

Types available: `seed`, `grant`, `pre_seed`, `series_a` … `series_g`, `debt_financing`, `post_ipo_equity`, `post_ipo_debt`, `private_equity`, `angel`, `convertible_note`, `corporate_round`, `equity_crowdfunding`, `secondary_market` and more. An unrecognised type is called out in the log rather than silently widening your search.

### 📡 Funding Monitor - only what's new since your last run

Turn on **`fundingMonitor`** and schedule the actor: the first run builds a baseline, and every following run with the same input returns **only new funding rounds / companies** - no duplicates, no re-paying for rows you already have (skipped rows are never charged). Point it at a Discover funding-rounds search on a schedule and you have a just-funded-companies alert feed: freshly funded = hiring, buying tools, warm B2B lead.

### 📰 NEW: Crunchbase News - funding stories as structured rows

Flip on **`newsMode`** (or set any News filter) and the actor returns **Crunchbase News articles** - funding rounds, M\&A, IPOs, layoffs and VC coverage - as clean rows: title, URL, publish + modified dates, author, categories, tags, image and reading time.

What makes these rows more than a feed reader: every article also carries **the Crunchbase companies it links to**, resolved to permalinks. One weekly funding round-up came back with **48 linked companies**; a monthly unicorn report with **83**. So a story joins straight onto the company and funding-round rows this same actor returns, on `companyPermalinks`.

> *`newsCategory: "venture, ma"`, `newsDateFrom: "2026-09-01"` →* every venture and M\&A story since the 1st, newest first, each one naming the companies involved.

Pair it with **`fundingMonitor`** and a daily schedule for a just-funded feed that never repeats itself.

### Why Use This Scraper?

- ✅ Clean structured output - 34 grouped fields, ready for a spreadsheet or a model, not a 1,500-line raw dump
- ✅ Two modes in one actor - company-page enrichment **and** Discover/saved-search funding-round signals
- ✅ One row per company - paste a URL, a slug, or a path and get a single tidy profile back
- ✅ Surfaces the buried gold - Aberdeen IT spend, SEMrush traffic, BuiltWith + Siftery tech stack, Crunchbase ML predictions
- ✅ Works out of the box - no Crunchbase account, token or proxy to set up
- ✅ Optional raw passthrough - flip one switch to also get the full unprocessed Crunchbase cards
- ✅ Flat JSON / CSV export for analysis, CRM enrichment, or lead scoring

### Overview

The Crunchbase Company Scraper is built for sales and revenue teams, investors and analysts, market researchers, and data engineers who need structured company intelligence from Crunchbase without paying for an enterprise API seat.

The actor runs in **two modes**. **Company mode** is the core: each company input - a full URL, a bare slug, or an `organization/...` path - resolves to exactly one **company-shaped row** (investor names, executives, acquisition targets, and funding-round counts all appear *nested inside* it). **Discover mode** is optional: paste a Crunchbase Discover / saved-search URL and the actor returns one **funding-round signal row** per result (company + round type + Crunchbase links), with each company enriched from its org page. It is not a people- or investor-search crawler.

Most Crunchbase actors on the Store dump the raw `cards` object Crunchbase ships to its own front-end: roughly 236 KB and 1,500 lines per company, full of 540-element history arrays, ten-times-duplicated competitor trees, and internal query stubs. This actor returns a clean ~24 KB structured row instead - about 10× smaller - with the noise dropped and the useful signals lifted to the top level. If you still want everything, `rawMode` adds the full cards back as a passthrough field.

### Supported Inputs

#### Input types

| Input type | Pattern | Example |
|---|---|---|
| Full company URL | `https://www.crunchbase.com/organization/{slug}` | `https://www.crunchbase.com/organization/openai` |
| Bare slug | `{slug}` | `stripe` |
| Organization path | `organization/{slug}` | `organization/anthropic` |

#### Copy-pasteable startUrls

```json
{
  "startUrls": [
    "https://www.crunchbase.com/organization/openai",
    "stripe",
    "organization/anthropic"
  ]
}
```

#### Discover / saved-search URLs (funding-round signals)

Paste a Crunchbase **Discover** URL - `https://www.crunchbase.com/discover/<collection>/<hash>` (e.g. a saved *Funding Rounds* search) - and the actor switches to **signal mode** for that input: one row per result with the funding round, round type, funded company, and Crunchbase links, each company enriched from its org page.

```json
{
  "startUrls": [
    "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"
  ]
}
```

> **Anonymous cap:** Crunchbase returns the first **15 results per search** to anonymous callers and gates the funding **amount**, **announced date**, **investors**, and pagination beyond 15 behind a paid login. So signal rows carry company + round type + links; the `$` amount/date come through only in optional [logged-in mode](#input-configuration) with a Crunchbase **Pro** session. Need a tighter list? Narrow the saved search itself.

#### Company names and bulk list files

**Company names.** Put plain names in **`companyNames`** - `Stripe`, `Hugging Face`, `Mistral AI` - and each is resolved through Crunchbase's own search, then scraped exactly like a pasted URL. A name with a space also works straight in `startUrls`. A single word in `startUrls` is still read as a slug, so to look up a one-word *name* use `companyNames`.

Names collide: **`Swish` is four different companies** on Crunchbase. The actor takes Crunchbase's top result and writes the other same-named companies to the run log with their URLs, so you can pin the one you meant by slug. A name that matches nothing is reported by name, never dropped.

**Bulk list file.** Upload or link a TXT or CSV in **`companyListFile`** with one company per line - URLs, slugs, Discover URLs and names can be mixed. For a CSV the first column is used and a header row is skipped; commas inside a plain-text name such as `Acme, Inc.` are kept intact. Duplicates are removed, up to 50,000 entries, and everything still counts against `maxItems`.

Each name lookup is one extra Crunchbase request (about 2 seconds), made before scraping starts.

#### Unsupported inputs

- ❌ Person profiles - `crunchbase.com/person/{slug}`
- ❌ Individual funding-round, acquisition, investor, hub, or event **entity** pages - `crunchbase.com/funding_round/...`, `/acquisition/...` (the **Discover** saved-search URL above *is* supported)
- ⚠️ **Unsaved filtered searches** - a bare `/discover/<collection>` URL works, but it runs Crunchbase's *default, unfiltered* view of that collection. Filters you set in the Crunchbase UI without saving live in the page, not in the URL, so they are not carried over. Save the search to get a `/discover/<collection>/<hash>` URL, or use **Funding Rounds mode** and set the filters here
- ❌ Any host outside `crunchbase.com`

### Use Cases

| Audience | Use case |
|---|---|
| **Sales / RevOps teams** | Enrich CRM accounts with funding stage, headcount band, tech stack, and IT spend for lead scoring |
| **Investors / analysts** | Pull funding history, investor lists, and Crunchbase growth/IPO predictions for deal sourcing |
| **Market researchers** | Bulk-export competitor sets with categories, rank, and web-traffic signals |
| **Data / growth engineers** | Feed clean company rows into a warehouse or model without writing a Crunchbase parser |
| **Agencies** | Deliver client-ready company datasets without an enterprise Crunchbase license |

1. **Input** - provide Crunchbase company URLs, slugs, `organization/...` paths, or a Discover/saved-search URL
2. **Fetch** - companies scraped in the last 14 days come straight from the database; the rest are read live from Crunchbase, with automatic retries on temporary errors
3. **Extract** - the actor captures the full company data shown on the Crunchbase page, so fields are complete and accurate
4. **Structure** - raw cards are parsed into one clean, grouped row; history bloat and duplicated trees are dropped
5. **Output** - export as structured JSON or flattened CSV, with optional `rawMode` for the full unprocessed cards

### Input Configuration

#### Input fields

This table mirrors `.actor/input_schema.json` field for field - every input the console form offers is listed, in form order, plus the few that are reachable only through the API.

| Field | Type | In the form | Notes |
|---|---|---|---|
| `startUrls` | `array<string>` | yes | Crunchbase company URLs, slugs, `organization/...` paths, **Discover/saved-search URLs**, or company names that cannot be a slug (`Hugging Face`). Ignored while any mode below is on |
| `companyNames` | `array<string>` | yes | Plain company names resolved through Crunchbase search - `Stripe`, `Swish`. Same-name collisions are listed in the log |
| `companyListFile` | `string` (file) | yes | Upload or link a TXT/CSV, one company per line - URLs, slugs, Discover URLs or names. CSV: first column, header skipped. Up to 50,000 |
| `investorDatabase` | `boolean` | yes | **Investors mode.** Serve VC firms, accelerators, angels and grant programs from the 19,000-firm table. Switches on by itself from any `investor*` filter |
| `investorQuery` | `string` | yes | Firm name or description contains - `sequoia`, `climate`, `fintech` |
| `investorType` | `string` | yes | Firm type: Venture Capital Investor, Seed / Early-Stage VC, Accelerator, Angel Investor, Government / Grant Program, Debt / Bank |
| `investorStage` | `string` | yes | Investment stage the firm is active at |
| `investorFocusArea` | `string` | yes | Industry focus - free text |
| `investorCountry` | `string` | yes | HQ country |
| `investorMinDeals` | `integer` | yes | Only firms with at least this many recorded deals |
| `instantDatabase` | `boolean` | yes | **Company database mode.** Serve companies from the 250K-profile archive with no scraping. Switches on by itself from any `db*` filter |
| `dbQuery` | `string` | yes | Company name or description contains |
| `dbCountry` | `string` | yes | Country |
| `dbEmployeeRange` | `string` | yes | Employee band |
| `dbOperatingStatus` | `string` | yes | Operating status - active, closed, … |
| `roundsDatabase` | `boolean` | yes | **Funding Rounds mode.** Select rounds by filter instead of a Discover URL. Switches on by itself from any filter below |
| `roundType` | `string` | yes | Comma-separated investment types - `series_a`, `seed`, `pre_seed`, `series_b`, `grant`, `debt_financing`, … |
| `minAmountUsd` | `integer` | yes | Only rounds that raised at least this much (USD). Either amount bound excludes undisclosed rounds |
| `maxAmountUsd` | `integer` | yes | Only rounds at or below this amount (USD) |
| `announcedAfter` | `string` | yes | `YYYY-MM-DD` - announced on or after |
| `announcedBefore` | `string` | yes | `YYYY-MM-DD` - announced on or before |
| `roundCompany` | `string` | yes | Funded company name or slug contains. Archive-only, so a run using it is never topped up live |
| `newsMode` | `boolean` | yes | **News mode.** Return Crunchbase News articles instead of scraping. Switches on by itself from any `news*` filter |
| `newsQuery` | `string` | yes | Free-text search over article titles and bodies - `raises`, `series b`, `layoffs` |
| `newsCategory` | `string` | yes | Comma-separated category slugs: `venture`, `startups`, `ai`, `ma`, `ipo`, `seed`, `fintech-ecommerce`, `cybersecurity`, `crypto`, … |
| `newsTag` | `string` | yes | Comma-separated tag slugs - e.g. `unicorn` |
| `newsDateFrom` | `string` | yes | `YYYY-MM-DD` or full ISO - only articles published on/after this |
| `newsDateTo` | `string` | yes | `YYYY-MM-DD` or full ISO - only articles published on/before this |
| `newsFullText` | `boolean` | yes | Add the whole article body as plain text. Default `false` - bodies run to ~10,000 characters |
| `fundingMonitor` | `boolean` | yes | Emit only what is NEW since the previous run with the same input. Skipped rows are never charged. Works in every mode |
| `rawMode` | `boolean` | yes | Also include the full raw Crunchbase cards as `_rawCards`. Default `false` |
| `maxItems` | `integer` | yes | Hard cap on rows emitted. Default `1000`, clamped to `1`-`50,000` |
| `crunchbaseCookie` | `string` (secret) | yes | **Logged-in mode.** Your own Crunchbase `Cookie` header, to unlock gated funding amount / date / investors on Discover results and lift the 15-result cap. Needs a Crunchbase **Pro** account and the session expires every few minutes, so it is for manual one-off runs. Blank is safe - it falls back to anonymous rather than erroring |
| `enrichEmails` | `boolean` | yes | Discover a contact email per company. Billed per email found. Default `false` |
| `qualifyByPayment` | `boolean` | yes | Free add-on to `enrichEmails` - flags businesses that take card payments. Only runs when `enrichEmails` is on |
| `maxConcurrency` | `integer` | **API only** | Companies fetched in parallel. Default `3`, clamped to `1`-`8`. Pulled from the form because the Crunchbase Pro session is shared and ours to pace |
| `maxRequestRetries` | `integer` | **API only** | Retries per company after a temporary error. Default `2`, clamped to `0`-`3` |
| `maxCacheAgeDays` | `integer` | **API only** | Serve a cached DB copy of a company scraped within this many days. Default `14`, clamped to `1`-`365` - never a full cache bypass |
| `sdoKey` | `string` (secret) | **API only** | Leave blank; live scraping needs no key of your own. Advanced: a key for your own page-fetching account, so live requests bill to it instead (email for details) |

#### Common scenarios

**1. A few companies, clean output**

```json
{
  "startUrls": ["openai", "stripe", "anthropic"]
}
```

**2. Clean row plus the full raw cards**

```json
{
  "startUrls": ["https://www.crunchbase.com/organization/databricks"],
  "rawMode": true
}
```

**3. A larger batch with a cap**

```json
{
  "startUrls": ["openai", "stripe", "anthropic", "databricks", "figma"],
  "maxItems": 5,
  "maxConcurrency": 3
}
```

**4. A Discover / saved-search URL (funding-round signals)**

```json
{
  "startUrls": ["https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"],
  "maxItems": 15
}
```

### Output Overview

Each dataset item is one result. What a result is depends on the input:

| Input | One row per | Key fields |
|---|---|---|
| Company URLs, slugs, `companyNames`, `companyListFile`, or Instant Database mode | company | the full profile listed below |
| Discover / saved-search URLs, or Funding Rounds mode | funding round | `investmentType`, `moneyRaisedUsd`, `announcedOn`, `companyName`, `companyUrl` |
| Startup Investors Database mode | investor firm | `investorType`, `numDeals`, `topStage`, `focusAreas`, `hqCountry`, `website`, `contactEmail`, `phone` |
| News mode | article | `title`, `url`, `publishedAt`, `author`, `excerpt`, `companyPermalinks` |

An input that matches nothing comes back as a notice row (`found: false`, `status`, `message`) so you can see which inputs to fix; it is billed like any other row. The dataset's Output tab has a view for each row type.

A company row contains:

- **Identity** - name, permalink, UUID, description, type, operating status, IPO status, global rank, aliases
- **Location** - city, region, country, continent, offices
- **Web & contact** - website, LinkedIn / Facebook / Twitter, contact email, phone, contact count
- **Categories** - category tags and per-category rank
- **Funding** - total (when public), round count, investor count, rounds, investor list
- **People** - employee band, current executives, advisors/board, alumni
- **M\&A** - acquisitions, acquired-by, exits, IPO fields
- **Tech stack** - technology count, BuiltWith stack, Siftery products
- **Signals** - heat score, SEMrush traffic, Aberdeen IT spend, mobile apps
- **Predictions** - Crunchbase ML scores for growth, funding, acquisition, IPO
- **Products / Similar / Press** - products, similar companies with similarity score, recent press timeline

Some fields are `null` when Crunchbase no longer ships them on the default page load (see FAQ). Set `rawMode: true` to additionally receive the full unprocessed cards as `_rawCards`.

### Output Samples

#### Bare slug start (`"openai"`) - trimmed

```jsonc
{
  "name": "OpenAI",
  "permalink": "openai",
  "uuid": "cf2c678c-b81a-80c3-10d1-9c5e76448e51",
  "url": "https://www.crunchbase.com/organization/openai",
  "description": "OpenAI is an AI research and deployment company that develops advanced AI models, including ChatGPT.",
  "operatingStatus": "active",
  "companyType": "for_profit",
  "ipoStatus": "private",
  "rank": 4,
  "aliases": ["OpenAI LP", "OpenAI Group PBC"],
  "city": "San Francisco",
  "region": "California",
  "country": "United States",
  "website": "https://www.openai.com",
  "socials": {
    "linkedin": "https://www.linkedin.com/company/openai",
    "twitter": "https://x.com/OpenAI"
  },
  "contactEmail": "support@openai.com",
  "numContacts": 1384,
  "categories": [
    { "name": "Agentic AI", "permalink": "agentic-ai-17fa" },
    { "name": "Artificial Intelligence (AI)", "permalink": "artificial-intelligence" }
  ],
  "funding": {
    "totalUsd": null,
    "numFundingRounds": 14,
    "numInvestors": 95,
    "investors": [ { "name": "Blackstone Group investment in Venture Round - OpenAI", "permalink": "blackstone-invested-in-openai-..." } ]
  },
  "people": {
    "employeeRange": "1001-5000",
    "current": [
      { "name": "Sam Altman Co-Founder and CEO @ OpenAI", "permalink": "sam-altman-executive-openai--cdec28a8" },
      { "name": "Greg Brockman President, Chairman, & Co-Founder @ OpenAI", "permalink": "greg-brockman-executive-openai--d0858d5a" }
    ]
  },
  "techStack": {
    "numTechnologies": 94,
    "builtwith": [ { "name": "Cloudflare CDN", "category": "cdn" } ],
    "siftery": [ { "name": "HTML5", "status": "using" } ]
  },
  "signals": {
    "heatScore": 92,
    "heatScoreDelta90": -2,
    "semrush": { "globalRank": null, "monthlyVisits": 487467460 },
    "aberdeenItSpendUsd": 285484278,
    "apps": { "total": 4 }
  },
  "predictions": {
    "growth": { "score": 0.7599, "tier": "p200_positive_low", "generatedOn": "2026-05-30" },
    "funding": { "score": 0.6439, "generatedOn": "2026-05-09" },
    "acquisition": { "score": 0.0368, "tier": "p500_negative_high" },
    "ipo": { "score": 0.9337, "tier": "p200_positive_low" }
  },
  "products": [
    { "name": "ChatGPT", "description": "An AI conversational agent…" }
  ],
  "similar": [
    { "name": "Anthropic", "permalink": "anthropic", "score": 100 },
    { "name": "Google", "permalink": "google", "score": 99.64 }
  ],
  "pressTimeline": [
    { "title": "ChatGPT tests a new jobs interface", "publisher": "AIM Group", "date": "2026-06-02", "url": "https://aimgroup.com/2026/06/02/chatgpt-tests-a-new-jobs-interface/" }
  ],
  "scrapedAt": "2026-06-02T16:32:32.297Z"
}
```

#### Discover search start (`".../discover/funding_rounds/..."`) - one signal row per result, trimmed

```jsonc
{
  "searchCollection": "funding_rounds",
  "name": "Series D - Factorial",
  "investmentType": "series_d",
  "moneyRaisedUsd": null,        // gated for anonymous runs; unlocked in logged-in Pro mode
  "announcedOn": null,           // gated for anonymous runs
  "companyName": "Factorial",
  "companyPermalink": "factorial",
  "companyUrl": "https://www.crunchbase.com/organization/factorial",
  "gatedFields": ["announced_on", "money_raised"],
  "company": {                   // each result enriched from its org page (same shape as above)
    "name": "Factorial",
    "country": "Spain",
    "rank": 64,
    "funding": { "numFundingRounds": 8 }
  }
}
```

#### Funding Rounds mode (`roundsDatabase: true`) - one row per round

```json
{
  "searchCollection": "funding_rounds",
  "uuid": "f4c1e2a0-...",
  "name": "Series B - Swish",
  "url": "https://www.crunchbase.com/funding_round/swish-series-b--0f9b",
  "investmentType": "series_b",
  "moneyRaisedUsd": 24000000,
  "moneyRaised": 24000000,
  "moneyRaisedCurrency": "USD",
  "announcedOn": "2026-09-10",
  "companyName": "Swish",
  "companyPermalink": "swish-0f9b",
  "companyUrl": "https://www.crunchbase.com/organization/swish-0f9b",
  "source": "rounds-db",
  "lastScrapedAt": "2026-09-09T08:41:12Z"
}
```

`source` is `rounds-db` for an archive row and `rounds-live` for one fetched live during the same run. Both carry identical fields.

#### News mode (`newsMode: true`) - one row per article, trimmed

```json
{
  "articleId": 94043,
  "title": "Mistral AI Raises $3.5B At $24B Valuation In Another Record European Round",
  "url": "https://news.crunchbase.com/venture/mistral-ai-raises-record-european-round/",
  "publishedAt": "2026-09-08T13:02:11Z",
  "modifiedAt": "2026-09-08T14:19:44Z",
  "author": "Mary Ann Azevedo",
  "excerpt": "The French AI startup raised at a valuation that more than doubles…",
  "categories": ["ai", "cloud", "data", "regional", "startups", "venture"],
  "tags": ["unicorn"],
  "imageUrl": "https://news.crunchbase.com/wp-content/uploads/mistral.jpg",
  "readingTimeMinutes": 2,
  "companies": [
    { "name": "Mistral AI", "permalink": "mistral-ai", "url": "https://www.crunchbase.com/organization/mistral-ai" },
    { "name": "ASML", "permalink": "asml", "url": "https://www.crunchbase.com/organization/asml" }
  ],
  "companyPermalinks": ["mistral-ai", "asml", "samsung-electronics", "eqt-holdings", "psg-equity"]
}
```

### Key Output Fields

#### Identity

- `name`, `permalink`, `uuid`, `url`, `description`
- `operatingStatus`, `companyType`, `ipoStatus`, `rank`, `aliases[]`

#### Location & contact

- `city`, `region`, `country`, `continent`, `offices[]`
- `website`, `socials.linkedin`, `socials.facebook`, `socials.twitter`, `contactEmail`, `phone`

#### Categories & funding

- `categories[].name`, `categoryRanks[].rank`
- `funding.totalUsd`, `funding.numFundingRounds`, `funding.numInvestors`, `funding.investors[]`, `funding.rounds[]`

#### People & M\&A

- `people.employeeRange`, `people.current[]`, `people.advisors[]`, `people.alumni[]`, `numContacts`
- `ma.acquisitions[]`, `ma.acquiredBy`, `ma.exits[]`, `ma.ipo`

#### Tech stack & signals

- `techStack.numTechnologies`, `techStack.builtwith[]`, `techStack.siftery[]`
- `signals.heatScore`, `signals.semrush.monthlyVisits`, `signals.aberdeenItSpendUsd`, `signals.apps`

#### Predictions, products & press

- `predictions.growth`, `predictions.funding`, `predictions.acquisition`, `predictions.ipo` (each `{ score, tier, generatedOn }`)
- `products[]`, `similar[].score`, `pressTimeline[]`

### FAQ

#### Which Crunchbase URLs are supported?

**Company (organization) pages** - a full URL (`https://www.crunchbase.com/organization/openai`), a bare slug (`openai`), or a path (`organization/openai`) → one company row each. **Discover / saved-search URLs** (`https://www.crunchbase.com/discover/<collection>/<hash>`, or a bare `/discover/<collection>`) → one row per search result, for any collection: funding rounds, companies, people, investors, acquisitions, events. You can also skip URLs entirely: **company names** in `companyNames` (or any name with a space in `startUrls`), and a **TXT/CSV list file** in `companyListFile` - see *Company names and bulk list files* above. Individual person, funding-round, acquisition, investor, hub, and event **entity** pages are **not** supported as inputs.

#### What do Discover / saved-search URLs return?

One row per search result, with **every column the search returns**:

- **Funding rounds** - the round, round type (`investmentType`), funded company, Crunchbase links and a `gatedFields` marker, with the company enriched from its org page under `company`.
- **Companies** - the full company row, plus the search view's own columns under `searchColumns`.
- **People, investors, acquisitions, events** - name, permalink and link, plus each column flattened under its Crunchbase field id: job title, organization, location and rank for people; investor type, stage, location and rank for investors; acquirer, acquiree, price and date for acquisitions; dates and location for events.

**Crunchbase lists** work the same way: paste `https://www.crunchbase.com/lists/<name>/<id>/<collection>` and get one row per list member. Public lists need nothing; a private list needs its owner's session in `crunchbaseCookie`.

**Resume a long search.** When a run stops before the end of a search (maxItems, Crunchbase's per-search ceiling, throttling), the log prints a cursor and saves it under `LAST_CURSOR` in the run's key-value store. Run again with the same URL and that value in **`resumeCursor`** to continue from the next result.

A **saved search keeps its own columns**. A bare `/discover/<collection>` URL asks for that collection's useful default view. Columns your session may not read (Crunchbase marks them Pro) are dropped in one retry instead of failing the search. Anonymous runs return the first 15 results and leave the `$` amount, announced date, and Pro-only columns `null`. To unlock them, supply a Pro session via `crunchbaseCookie` - see below.

#### Do I get company rows or people / investor rows?

Company inputs give **company rows** - one per input. Discover / saved-search inputs give **one row per result of that search's collection**: a `/discover/people` search gives people rows, a `/discover/principal.investors` search gives investor rows, a `/discover/acquisitions` search gives acquisition rows. Inside company and funding-round rows, people, investors, and acquisition targets appear as **nested fields** (e.g. `people.current[]`, `funding.investors[]`, `ma.acquisitions[]`). To get **investor firms as their own rows** - one per VC / accelerator / angel / grant program, with deal counts, stages, focus areas, portfolio and contacts - turn on **`investorDatabase`** (see the Startup Investors Database section above).

#### How is the Startup Investors Database priced vs. dedicated "investor database" actors?

Every investor firm row is a normal result row at **$8/1k ($0.008 per firm), contacts included**. Dedicated investor-database actors on the Store commonly charge **$0.04 per firm plus $0.02 per contact** - 5-7× more for a comparable row. The run log prints a **cost preview** (`💰 Cost preview: this run will bill ≈ $…`) before rows stream out, so there are no billing surprises.

#### What happens if my run is about to time out?

The actor stops starting new companies about two and a half minutes before the run's timeout, so the run finishes **SUCCEEDED** with every row it collected. The inputs it did not reach are **not charged**: the log names them and they are saved under `UNPROCESSED_INPUTS` in the run's key-value store, ready to run again. For long name lists, give the run a longer timeout or split the list.

#### Do I need a proxy or a token?

No. A normal run needs nothing extra: live company pages are fetched for you, and the database, investor and news modes return in seconds. The optional `sdoKey` field only exists for advanced users who want live requests billed to their own page-fetching account.

#### Why are `funding.totalUsd` and `signals.semrush.globalRank` sometimes null?

Crunchbase moved a few fields (notably total funding amount and the SEMrush global rank) behind a secondary request that no longer ships on the default page load. Rather than double the per-company cost, the actor returns these as `null` and populates everything else - round counts, investor counts, SEMrush monthly visits, IT spend, predictions, and the full tech stack all still come through.

#### What does `rawMode` do?

When `true`, each row keeps all the clean structured fields **and** adds `_rawCards` - the full, unprocessed Crunchbase cards object. Use it when you need a field the structured output doesn't surface. It makes rows roughly 10× larger, so leave it off unless you need it.

#### What's gated, and can logged-in mode unlock it?

By default the actor reads only **public** Crunchbase data, so Discover funding **amounts / dates / investors** and a few company fields (e.g. `funding.totalUsd`) come back `null`, and each search returns its first 15 results. Those are gated by Crunchbase behind a paid **Pro** login - a Crunchbase limit, not a scraper one. The optional `crunchbaseCookie` field lets you supply **your own** logged-in Crunchbase Pro session to unlock them. Caveat: the session token expires every few minutes, so it suits **manual one-off runs**, not scheduled jobs - and a free-tier or stale cookie simply falls back to the public signal output instead of erroring. Leave it blank for normal public runs.

#### Does News mode need the Crunchbase cookie?

No. Crunchbase News is a separate, open site, so it needs no login and no session. News runs are fast and never use the Crunchbase Pro session, so they can be scheduled as often as you like without competing with your company scrapes.

#### How is it priced and how fast is it?

Every result row costs $8 per 1,000 ($0.008) in every mode: company profiles, funding rounds, investor firms and news articles, contact fields included. Each run also pays a $0.002 start charge (one per GB of memory; a default run uses one), so a one-company lookup costs $0.01 in total. A company that isn't on Crunchbase comes back as one notice row, billed like any other row. `enrichEmails` is opt-in and bills about $0.05 per email it actually finds. Live company scrapes run at a few companies per second with default concurrency; database, investor and news rows need no scraping and return in seconds.

### Support

- For issues or feature requests, use the [Issues](https://apify.com/memo23/crunchbase-scraper/issues) tab of this actor.
- For customization or questions, contact the author:
  - Website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>
  - All my Apify actors: <https://apify.com/memo23>

### Additional Services

- Need a custom export shape, additional Crunchbase fields, or scheduled monitoring? Email <muhamed.didovic@gmail.com>.
- For a direct API of this scraper (no Apify fee, usage-based), contact the same address.

### Explore More Scrapers

If you found this useful, you might also like:

- [**Pinterest Scraper**](https://apify.com/memo23/pinterest-scraper) - structured pin, board, and profile data
- [**More company & web-data actors**](https://apify.com/memo23) - directory, jobs, reviews, and social scrapers

Full list at [apify.com/memo23](https://apify.com/memo23).

***

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/crunchbase-scraper`).

**Purpose:** Turn Crunchbase inputs into structured rows. Company URLs, bare slugs or company names return full company profiles (funding, people, tech stack, signals and predictions nested inside). Discover / saved-search URLs return funding-round rows. Four modes need no URL at all: the Instant Database (250K companies), the Startup Investors Database (19K firms), Funding Rounds (filter by type, amount and date) and Crunchbase News.

**Minimal input:**

```json
{ "startUrls": ["openai", "stripe"], "maxItems": 50 }
```

No-URL modes, one line each: Instant Database `{ "instantDatabase": true, "dbQuery": "fintech", "maxItems": 50 }`; Investors `{ "investorDatabase": true, "investorStage": "Seed Round", "maxItems": 50 }`; Funding Rounds `{ "roundsDatabase": true, "roundType": "series_a", "announcedAfter": "2026-09-01", "maxItems": 50 }`; News `{ "newsMode": true, "newsQuery": "raises", "maxItems": 20 }`. Names instead of URLs: `{ "companyNames": ["Scale AI", "Hugging Face"] }`.

**Output:** company rows carry `name`, `permalink`, `uuid`, `url`, `description`, `operatingStatus`, `companyType`, `ipoStatus`, `rank`, `aliases`, `city`, `region`, `country`, `website`, `socials {linkedin, twitter, facebook}`, `contactEmail`, `numContacts`, `categories[] {name, permalink}`, `funding {totalUsd, numFundingRounds, numInvestors, investors[]}`, `people {employeeRange, current[]}`, `techStack {numTechnologies, builtwith[], siftery[]}`, `signals {heatScore, semrush.monthlyVisits, aberdeenItSpendUsd}`, `predictions {growth, funding, acquisition, ipo}`, `products[]`, `similar[]`, `pressTimeline[]`, `scrapedAt`, `servedFromCache`. Funding-round rows (Discover URLs and Funding Rounds mode) carry `searchCollection`, `name`, `url`, `investmentType`, `moneyRaisedUsd`, `moneyRaised`, `moneyRaisedCurrency`, `announcedOn`, `companyName`, `companyPermalink`, `companyUrl`, `companyUuid`, plus `gatedFields[]` when a field was hidden. Investor rows carry `name`, `url`, `investorType`, `numDeals`, `numPortfolioCompanies`, `topStage`, `stages[]`, `focusAreas[]`, `portfolioCountries[]`, `portfolio[]`, `hqCity`, `hqCountry`, `website`, `contactEmail`, `phone`, `cbRank`. News rows carry `title`, `url`, `publishedAt`, `author`, `excerpt`, `categories[]`, `tags[]`, `companies[]`, `companyPermalinks[]`. An input that matches nothing returns a notice row with `found: false`, `status` and `message`.

**Behaviors an agent should know:**

- Each no-URL mode switches on by itself when you set any of its filters. If filters from several modes are set, only one mode runs, by this priority: News, Funding Rounds, Investors, Instant Database.
- `maxItems` (default 1000, max 50,000) caps the rows of every mode.
- Discover / saved-search URLs return funding-round signal rows, but anonymous runs are capped at the first 15 results and `moneyRaisedUsd` / `announcedOn` / investors are gated; supply `crunchbaseCookie` to unlock full pagination and those fields.
- `fundingMonitor: true` returns only items new since the previous run with the same input (state in this actor's key-value store); already-seen items are skipped and not billed.
- Companies scraped in the last 14 days are served from the database (`servedFromCache: true`); the rest are scraped live. If live fetching is degraded on our side, a company we already hold is served from the database whatever its age, with `staleCache: true` and `cacheAgeDays` on the row; set `maxCacheAgeDays` to always get a live fetch instead.
- On the free Apify plan, the Instant Database and Investors modes return at most 25 rows per run, with contact details removed.
- A run with no input finishes SUCCEEDED with 0 rows and explains why in its status message.
- Billing: $0.008 per result row in every mode, contact fields included, plus $0.002 per run start (per GB of memory; one at the default 512 MB), so a one-company lookup costs $0.01 in total. Notice rows are billed like any other row. `enrichEmails: true` is opt-in and bills about $0.05 per email actually found.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Crunchbase, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

Crunchbase gates certain fields and result pagination behind a login. This actor reads those through a maintained Crunchbase session. You can supply your own session instead via `crunchbaseCookie`, in which case your own Crunchbase account terms apply to that run. Users are responsible for ensuring their use complies with Crunchbase's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

***

### SEO Keywords

crunchbase scraper, scrape crunchbase, crunchbase company scraper, crunchbase API, crunchbase.com scraper, Apify crunchbase, company data scraper, company funding scraper, startup data scraper, tech stack scraper, firmographic data, company enrichment data, lead enrichment scraper, investor data scraper, market research data, competitive intelligence scraper, sales prospecting data, company profile API, business intelligence scraper, startup funding data, crunchbase funding rounds scraper, crunchbase discover scraper, funding round data, startup funding rounds, saved search scraper, startup investors database, startup investor data scraper, VC database, venture capital firms database, VC firms list, angel investors list, investor contacts database, find investors for startup, investor leads, accelerator list, seed investors database, VC deal data, investor portfolio data, fundraising target list, investor firm database

# Actor input Schema

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

Paste any combination of:

- **Full URL** - `https://www.crunchbase.com/organization/openai`
- **Slug** - `openai`, `tesla-motors`
- **Path** - `organization/stripe`
- **Company name** - `Hugging Face`, `Mistral AI` (anything that cannot be a slug is looked up by name)
- **Discover / saved-search URL** - `https://www.crunchbase.com/discover/funding_rounds/HASH`, or any collection (`/discover/people`, `/discover/principal.investors`, `/discover/acquisitions`, …): one row per result with every column the search returns
- **Crunchbase list** - `https://www.crunchbase.com/lists/<name>/<id>/organization.companies`: one row per list member (a private list needs its owner's `crunchbaseCookie`)

Each company returns one clean structured row. A single word is read as a **slug** - to look a one-word name up by NAME instead (`Swish` has several companies), put it in **Company names** below.

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

Plain company names, one per line - `Stripe`, `Hugging Face`, `Swish`. Each is resolved through Crunchbase's own search and the best match is scraped exactly like a pasted URL. When several companies share the name, the run log lists the others with their URLs so you can pin the one you meant by slug. Optional.

## `companyListFile` (type: `string`):

Upload a file, or link one, with one company per line - Crunchbase URLs, slugs, Discover URLs or plain names, mixed freely. For a CSV the first column is used and a header row is skipped. Duplicates are removed; up to 50,000 entries, still capped by **Max items**. Optional.

## `investorDatabase` (type: `boolean`):

Serve investor **firm** rows (one per VC / accelerator / angel / grant program) instead of company rows. Ordered by deal count (most active first), capped at **Max results**. Auto-enabled if you set any investor filter below.

## `investorQuery` (type: `string`):

Case-insensitive match on the firm name or description - e.g. `sequoia`, `climate`, `fintech`. Optional.

## `investorType` (type: `string`):

Investors Database filter: only firms of this type, e.g. `Venture Capital Investor` or `Accelerator`. Setting it switches on Investors Database mode. Optional; leave it empty to include every type.

## `investorStage` (type: `string`):

Only firms observed participating in this round stage. Optional.

## `investorFocusArea` (type: `string`):

Industry the firm's portfolio invests in, e.g. `Artificial Intelligence (AI)`, `Biotechnology`, `FinTech`, `Health Care`, `E-Commerce`, `Energy`. Optional.

## `investorCountry` (type: `string`):

Matches the firm's HQ country **or** a country its portfolio invests into. Full English name, e.g. `United States`, `Germany`. Optional.

## `investorMinDeals` (type: `integer`):

Only firms with at least this many observed funding-round participations. Use `2+` to drop one-off investors. Optional.

## `instantDatabase` (type: `boolean`):

Serve company rows from the database instead of live-scraping - same clean output shape, plus `source: "instant-db"`. Results are ordered by Crunchbase rank (best first) and capped at **Max results**. Auto-enabled if you set any DB filter below.

## `dbQuery` (type: `string`):

Case-insensitive match on the company name or description - e.g. `ai`, `fintech`, `logistics`. Optional.

## `dbCountry` (type: `string`):

Full country name, e.g. `United States`, `United Kingdom`, `Germany`, `India`. Optional.

## `dbEmployeeRange` (type: `string`):

Instant Database filter: only companies in this Crunchbase headcount bucket, e.g. `11-50` or `1001-5000`. Setting it switches on Instant Database mode. Optional; leave it empty for any size.

## `dbOperatingStatus` (type: `string`):

Instant Database filter: `active` for operating companies, `closed` for shut-down ones. Setting it switches on Instant Database mode. Optional; leave it empty for both.

## `roundsDatabase` (type: `boolean`):

Serve **funding-round** rows (round name, type, amount in USD and original currency, announcement date, funded company) selected by the filters below. Switches on by itself as soon as you set any of them.

Pair it with **Only return items NEW since the previous run** and a daily schedule for a just-funded alert feed.

## `roundType` (type: `string`):

Comma-separated investment types. Most common in the archive: `seed` (13,081), `grant` (10,604), `pre_seed` (6,439), `debt_financing` (4,962), `series_unknown` (4,919), `series_a` (4,831), `post_ipo_equity` (4,049), `post_ipo_debt` (3,229), `non_equity_assistance` (2,415), `series_b` (2,135), `angel` (1,827), `private_equity` (1,822). Also valid: `series_c` … `series_g`, `convertible_note`, `corporate_round`, `equity_crowdfunding`, `secondary_market`, `undisclosed`. Optional.

## `minAmountUsd` (type: `integer`):

Only rounds that raised at least this much, in USD. Setting either amount bound excludes rounds with no disclosed figure - otherwise a "$10M+" filter would hand back undisclosed rounds too. Optional.

## `maxAmountUsd` (type: `integer`):

Funding Rounds filter: only rounds that raised at most this many US dollars, e.g. `50000000` for $50M. Like the minimum, it drops rounds with no disclosed amount. Setting it switches on Funding Rounds mode. Optional.

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

Funding Rounds filter: only rounds announced on or after this date, written `YYYY-MM-DD`, e.g. `2026-01-01`. Setting it switches on Funding Rounds mode. Optional.

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

Funding Rounds filter: only rounds announced on or before this date, written `YYYY-MM-DD`, e.g. `2026-06-30`. Setting it switches on Funding Rounds mode. Optional.

## `roundCompany` (type: `string`):

Match on the funded company's name or Crunchbase slug - e.g. `stripe`, `mistral`. Archive-only: Crunchbase filters rounds by organization id rather than by name, so a run using this filter is never topped up live. Optional.

## `newsMode` (type: `boolean`):

Serve **article** rows (title, URL, publish + modified dates, author, categories, tags, image, reading time and the linked companies) instead of scraping companies. Switches on by itself as soon as you fill in any News filter below.

Pair it with **Only return items NEW since the previous run** and a daily schedule to get a funding-story feed that never repeats itself.

## `newsQuery` (type: `string`):

Free-text search across article titles and bodies - e.g. `raises`, `series b`, `layoffs`, `openai`. Optional.

## `newsCategory` (type: `string`):

Comma-separated category slugs. The big ones: `venture` (5.5k articles), `startups` (4.4k), `business`, `ai`, `public`, `fintech-ecommerce`, `health-wellness-biotech`, `cybersecurity`, `clean-tech-and-energy`, `transportation`, `ma` (M\&A), `ipo`, `crypto`, `seed`, `liquidity`, `diversity`. Optional - the full list is at news.crunchbase.com/wp-json/wp/v2/categories?per_page=100&\_fields=slug

## `newsTag` (type: `string`):

News filter: only articles carrying these tags, as comma-separated tag slugs, e.g. `unicorn`. Setting it switches on News mode. Optional.

## `newsDateFrom` (type: `string`):

`YYYY-MM-DD` (or a full ISO timestamp). Only articles published on or after this date. Optional.

## `newsDateTo` (type: `string`):

`YYYY-MM-DD` (or a full ISO timestamp). Only articles published on or before this date. Optional.

## `newsFullText` (type: `boolean`):

Adds the whole article body as plain text. Off by default - bodies run to ~10,000 characters and most workflows only need the title, link and linked companies.

## `fundingMonitor` (type: `boolean`):

When ON, each run compares its results against what previous runs **with the same input** already returned and emits only the NEW items - new **funding rounds** (per round id) on Discover searches, new **companies** (per permalink) otherwise. The very first run returns everything as the baseline; rows carry `fundingMonitorStatus: "baseline"` or `"new"`. Already-seen items are skipped and **not billed**. State is kept per input in this actor's own key-value store.

## `rawMode` (type: `boolean`):

When ON, each row also includes the full raw `_rawCards` object (every Crunchbase data card, unprocessed) alongside the clean structured fields. Use this if you need a field the structured output doesn't surface. Default OFF (clean output only - ~10x smaller).

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

Most result rows the run will emit, in every mode: companies, funding rounds, investor firms or news articles. Default 1000, maximum 50000. Set it low for a quick test run.

## `resumeCursor` (type: `string`):

Optional. Continue ONE Discover search or Crunchbase list where an earlier run stopped. When a run ends before the end of a search, its log prints the cursor and saves it under `LAST_CURSOR` in the run's key-value store. Paste that value here with the same URL. Ignored when the input holds more than one search or list.

## `crunchbaseCookie` (type: `string`):

Optional. Paste your Crunchbase `Cookie` header from a logged-in browser session (DevTools → Network → any crunchbase.com request → Request Headers → Cookie). LOGGED-IN MODE unlocks the gated funding **amount**, **announced date** and **investors** on Discover results, returns your saved search's own columns (including any your plan adds, such as SEMrush or contacts), lifts the 15-results-per-search cap (full pagination), and unlocks company funding totals during enrichment. Leave blank for anonymous mode (signal-only). Cookies expire - refresh periodically; this is a personal session, not for public/Store runs.

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

If enabled, finds a contact email for each result from its own website (or by discovering it from the name). Adds contactEmail + contactWebsite columns plus a detailed emailEnrichment object. Billed per contact email found; only charged when an email is returned, never for misses.

## `qualifyByPayment` (type: `boolean`):

Requires "Enrich with contact emails". Scans each business's website - reusing the pages already fetched for email discovery, so no extra cost or time - for payment processors and e-commerce platforms (Stripe, Shopify, PayPal, Paddle, Lemon Squeezy, WooCommerce, Square, Chargebee and more). Adds takesPayments (is this a real paying business?), paymentProcessors (which stack), stripeLiveKey (the public key if exposed) and paymentConfidence. Turn raw contacts into monetization-qualified leads. No extra charge - included with each enriched company.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.crunchbase.com/organization/openai",
    "stripe",
    "anthropic",
    "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"
  ],
  "investorDatabase": false,
  "instantDatabase": false,
  "roundsDatabase": false,
  "newsMode": false,
  "newsFullText": false,
  "fundingMonitor": false,
  "rawMode": false,
  "maxItems": 1000,
  "enrichEmails": false,
  "qualifyByPayment": false
}
```

# Actor output Schema

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

Every row with all nested fields: funding rounds, investors, people, tech stack, signals and predictions.

## `companies` (type: `string`):

Company table: name, URLs, location, status, rank, funding totals, headcount and contacts.

## `fundingRounds` (type: `string`):

Round type, amount in USD and original currency, announcement date and funded company.

## `investors` (type: `string`):

Firm type, deal count, stages, focus areas, HQ, website, email and phone.

## `news` (type: `string`):

Title, link, publish date, author, excerpt and the Crunchbase companies each article names.

# 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": [
        "https://www.crunchbase.com/organization/openai",
        "stripe",
        "anthropic",
        "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/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": [
        "https://www.crunchbase.com/organization/openai",
        "stripe",
        "anthropic",
        "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/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": [
    "https://www.crunchbase.com/organization/openai",
    "stripe",
    "anthropic",
    "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"
  ]
}' |
apify call memo23/crunchbase-scraper --silent --output-dataset

```

## MCP server setup

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