# Crunchbase Scraper \[$8💰] — Companies + Funding Rounds (`memo23/crunchbase-scraper`) Actor

Crunchbase scraper returning ONE clean structured row per company — funding, people, M\&A, tech stack, traffic, IT spend, growth/IPO predictions — not a 1,500-line raw blob. Now also reads Discover saved-search URLs for funding-round signals. Cloudflare bypass built in, no token. $8/1k.

- **URL**: https://apify.com/memo23/crunchbase-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Lead generation, Automation, Agents
- **Stats:** 20 total users, 19 monthly users, 96.4% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

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

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


# README

## Crunchbase Scraper — Companies + Funding Rounds

### 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.
JSON or CSV out. No unblocker token to manage — Cloudflare is handled for you.

### 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
- ✅ Cloudflare handled for you — built-in managed unblocker, nothing to configure
- ✅ 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.

#### 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)
- ❌ Ad-hoc search pages with no saved-search hash — save the search first to get a `/discover/<collection>/<hash>` URL
- ❌ 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. **Unblock** — each page is fetched through a built-in managed unblocker that clears Crunchbase's Cloudflare protection
3. **Extract** — the actor reads Crunchbase's own hydration state (the data its front-end renders from) for complete, accurate fields
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

| Field | Type | Required | Notes |
|---|---|---|---|
| `startUrls` | `array<string>` | yes | Crunchbase company URLs, slugs, `organization/...` paths, **or Discover/saved-search URLs** (`/discover/<collection>/<hash>`) |
| `rawMode` | `boolean` | optional | When `true`, also include the full raw Crunchbase cards as `_rawCards`. Default `false` |
| `maxItems` | `integer` | optional | Hard cap on company rows emitted. Default `1000` |
| `maxConcurrency` | `integer` | optional | Parallel unblocker requests. Default `3` (keep low — the premium pool is metered per success) |
| `maxRequestRetries` | `integer` | optional | Retries on transient unblocker errors before giving up on a company. Default `2` |
| `sdoKey` | `string` (secret) | optional | Leave blank — the actor uses its built-in unblocker by default. Advanced: paste your own scrape.do token to bill unblocker requests to your own account |
| `crunchbaseCookie` | `string` (secret) | optional | **Logged-in mode.** Paste your own Crunchbase `Cookie` header to unlock the gated funding **amount / date / investors** on Discover results and lift the 15-result cap. Requires a Crunchbase **Pro** account; the session expires every few minutes, so it's for **manual one-off runs**, not scheduled jobs. Leave blank for anonymous signal mode — a free or stale cookie safely falls back to anonymous instead of erroring |
| `proxy` | `object` | optional | Reserved for a future direct-fetch path; not required for normal runs |

#### 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 a single company row containing:

- **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 }
  }
}
```

### 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?

Two kinds. **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. And **Discover / saved-search URLs** (`https://www.crunchbase.com/discover/<collection>/<hash>`) → one funding-round signal row per result. 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: the funding round, round type (`investmentType`), funded company, Crunchbase links, and a `gatedFields` marker — with the company enriched from its org page under `company`. Anonymous runs return the first 15 results and leave the `$` amount, announced date, and investors `null` (Crunchbase gates those behind a paid Pro login). 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 **funding-round signal rows** — up to 15 per search — each with the company enriched under `company`. Either way, people, investors, and acquisition targets appear as **nested fields** (e.g. `people.current[]`, `funding.investors[]`, `ma.acquisitions[]`), never as separate people/investor dataset items.

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

No. Crunchbase is Cloudflare-protected, but the actor ships with a built-in managed unblocker, so a normal run needs nothing extra. The optional `sdoKey` field only exists for advanced users who want to bill unblocker requests to their own scrape.do 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.

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

Each company is one dataset item and one unblocker request, billed per result (see the Apify Store pricing on this actor's page). In testing, batches run at a few companies per second with default concurrency.

### 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).

***

### ⚠️ 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.

By default the scraper accesses only publicly available Crunchbase pages — no authenticated endpoints or content behind the crunchbase.com login wall. The optional logged-in mode is **opt-in** and uses **your own** Crunchbase session and subscription that you choose to supply; if you enable it, you are responsible for using it within your own Crunchbase account terms. 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

# Actor input Schema

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

Paste any combination of:

- **Full URL** — `https://www.crunchbase.com/organization/openai`
- **Slug** — `openai`, `tesla-motors`, `aisci`
- **Path** — `organization/stripe`

Each company input returns one clean structured company row. You can ALSO paste a **Discover / saved-search URL** (https://www.crunchbase.com/discover/funding\_rounds/HASH) — the actor returns one funding-round signal row per result (company, round type, Crunchbase links) with the company enriched from its org page. Anonymous cap: first 15 results per search; the $ amount, date, investors and pagination beyond 15 are gated by Crunchbase behind a paid login.

## `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`):

Max company rows to emit across the whole run.

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

Parallel unblocker requests. Keep low (2-4) - the premium pool is metered per success.

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

Retries on transient unblocker errors (502 RotationFailed) before giving up on a company.

## `proxy` (type: `object`):

Reserved for future direct-fetch fallback. The unblocker handles its own IPs, so this is not required for normal runs.

## `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, 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.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.crunchbase.com/organization/openai",
    "stripe",
    "anthropic",
    "https://www.crunchbase.com/discover/funding_rounds/a0620e0d48eb17727ffdd27d9afa1807"
  ],
  "rawMode": false,
  "maxItems": 1000,
  "maxConcurrency": 3,
  "maxRequestRetries": 2,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# 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"
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// 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",
    ],
    "proxy": { "useApifyProxy": True },
}

# 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("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call memo23/crunchbase-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=memo23/crunchbase-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Crunchbase Scraper [$8💰] — Companies + Funding Rounds",
        "description": "Crunchbase scraper returning ONE clean structured row per company — funding, people, M&A, tech stack, traffic, IT spend, growth/IPO predictions — not a 1,500-line raw blob. Now also reads Discover saved-search URLs for funding-round signals. Cloudflare bypass built in, no token. $8/1k.",
        "version": "1.0",
        "x-build-id": "r0N7ytGtqBj6LfQST"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~crunchbase-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-crunchbase-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/memo23~crunchbase-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-crunchbase-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/memo23~crunchbase-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-crunchbase-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Crunchbase company URLs, slugs, or Discover search URLs",
                        "type": "array",
                        "description": "Paste any combination of:\n- **Full URL** — `https://www.crunchbase.com/organization/openai`\n- **Slug** — `openai`, `tesla-motors`, `aisci`\n- **Path** — `organization/stripe`\n\nEach company input returns one clean structured company row. You can ALSO paste a **Discover / saved-search URL** (https://www.crunchbase.com/discover/funding_rounds/HASH) — the actor returns one funding-round signal row per result (company, round type, Crunchbase links) with the company enriched from its org page. Anonymous cap: first 15 results per search; the $ amount, date, investors and pagination beyond 15 are gated by Crunchbase behind a paid login.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "rawMode": {
                        "title": "Include raw Crunchbase cards",
                        "type": "boolean",
                        "description": "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).",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max companies",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Max company rows to emit across the whole run.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max parallel requests",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Parallel unblocker requests. Keep low (2-4) - the premium pool is metered per success.",
                        "default": 3
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per company",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Retries on transient unblocker errors (502 RotationFailed) before giving up on a company.",
                        "default": 2
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Reserved for future direct-fetch fallback. The unblocker handles its own IPs, so this is not required for normal runs.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "crunchbaseCookie": {
                        "title": "Crunchbase session cookie",
                        "type": "string",
                        "description": "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, 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."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
