← All posts

How to Scrape Crunchbase: Company, Funding, and Investor Data Legally

You want company profiles, funding rounds, and investor lists from Crunchbase to feed a sales pipeline, a VC deal-sourcing model, or a competitive-intelligence dashboard. So you point a script at a company page, run it, and get back a login prompt, a 403, or a mostly empty HTML shell. Crunchbase is a data business, and it defends its data like one.

Here is the honest answer up front: for Crunchbase, the official API is not a nice-to-have, it is the first thing you should reach for. Crunchbase sells access to exactly the data you want, and its terms treat scraping as a direct threat to that product. This post walks the sanctioned path first, then the realistic fallback for genuinely public pages, and the licensing and privacy lines that matter more here than the scraping mechanics.

Start With the Official Crunchbase API

Crunchbase is unusual among scraping targets because its whole business is structured, licensable data. That means the official route is mature and comprehensive, not an afterthought.

The Crunchbase API exposes organizations, people, funding rounds, investments, acquisitions, and IPOs as clean entity objects. You query an entity, get JSON back, and never touch a rendered page. There are search endpoints for filtering by funding stage, location, category, and date, which is precisely the shape a sales or VC workflow needs.

The catch is access and cost. The richer API tiers sit behind enterprise licensing, and pricing reflects that Crunchbase considers this data its crown jewel. The lighter tiers cap the fields and the volume you can pull. So the real question is the classic API versus scraping trade-off, and on Crunchbase it leans hard toward the API for anyone operating at scale or commercially.

Method Data you can reach Licensing Block risk
Crunchbase API (paid tiers) Full entity, funding, investor, and search data Contractual, paid None
Enrichment providers Firmographics stitched from many sources Vendor-licensed None
Public-page fetching What a signed-out visitor can see ToS-restricted High

If the budget exists, the API is the answer, full stop. It is stable, it will not ban you, and it hands you the exact schema your pipeline wants.

The Enrichment Fallback

If the Crunchbase API is out of reach on price, the next sanctioned option is a data-enrichment provider. Companies like Clearbit, People Data Labs, and similar firmographic vendors license and blend data from many sources, Crunchbase-style funding and company signals among them, and sell it through their own APIs.

This is often the better fit for sales enablement. You usually do not need one specific Crunchbase record. You need "the funding stage and headcount for this domain," and an enrichment API answers that from a licensed dataset without you touching Crunchbase at all. You inherit the vendor's compliance posture, which is a feature, not a limitation.

Scraping the public site should be your third choice, reached only when the API and enrichment routes genuinely do not cover a low-volume, public-data need.

Read the Terms Before the First Request

This is the part generic scraping guides skip, and on Crunchbase it is where the actual risk lives.

Crunchbase's terms of service explicitly prohibit scraping, crawling, and bulk extraction, and they do it in the context of a paid data product. That framing matters. Scraping public data is not automatically illegal, and US case law like hiQ v. LinkedIn leans toward public data being fair game, but a terms breach is real and enforceable, and Crunchbase has both the motive and the lawyers to enforce it. I walk through the nuance in is web scraping legal: "public" and "permitted" are not the same word, and here the gap between them is wide.

There is a second wrinkle specific to a data-compilation business. Raw facts like "Company X raised a Series B" are not copyrightable, but the curated database, the way records are selected and arranged, can carry database rights, especially in the EU. Extracting a substantial part of that compilation is a different legal question from scraping one factual page.

And then there is personal data. Founder and investor profiles are about identifiable people, so the moment you store names, roles, and contact details you are in GDPR and CCPA territory. A few rules I hold to:

  • Do not rebuild the database. Pulling a handful of public facts is not the same as systematically copying the compilation, and the second one invites a lawsuit.
  • Never cross the login. Gated fields are off the table. If it needs an account, the answer is the API.
  • Treat people-profiles as personal data. Aggregate funding trends are low risk; a harvested list of named founders with emails is exactly what regulators pursue.
  • This is information, not legal advice. For anything commercial, talk to a lawyer who knows your jurisdiction. My ethical scraping guide covers the operational side.

Why the Public Pages Fight Back

Say you have a narrow, public, low-volume need that the API and enrichment routes do not serve. You will still meet real technical defenses.

  • JavaScript-rendered content. Crunchbase profile pages hydrate funding tables and investor lists through client-side calls, so a plain curl returns a shell. You need something that runs the JavaScript. See scraping JavaScript-rendered websites.
  • TLS and fingerprint checks. Your HTTP client's handshake reveals it is Python or Go before the server reads a single header. Spoofing the User-Agent changes nothing, which is the whole point of curl versus headless versus stealth.
  • Login and metering walls. Crunchbase shows signed-out visitors a slice, then gates the rest. That wall is a product decision, not a bug to route around.
  • IP reputation scoring. Datacenter ranges carry low trust. A few requests from an AWS IP and you are challenged or rate-limited. The defense pattern mirrors Cloudflare-protected sites.

If you do fetch public pages, be polite: crawl slowly with jitter, cache aggressively since funding data barely moves week to week, and honor a 429 by backing off rather than rotating IPs to punch through.

A Sane Setup for Public Pages

When you do need to fetch a public Crunchbase page, you do not want to maintain browser fingerprinting, a residential proxy pool, and per-domain retry logic yourself. link.sc runs that escalation ladder internally, cheapest method first, and hands back clean markdown, JSON, or HTML.

import requests

resp = requests.post(
    "https://api.link.sc/v1/fetch",
    headers={"x-api-key": "lsc_YOUR_KEY"},
    json={"url": "https://www.crunchbase.com/organization/some-company", "format": "markdown"},
)
print(resp.json()["content"])

One request, and the fingerprinting, JS rendering, egress, and parsing are handled. It is open core and self-hostable if you would rather run the stack yourself. What it will not do, and what nothing should pretend to do, is defeat the login wall or launder a terms-of-service breach. For anything at scale or commercial, the Crunchbase API and enrichment vendors remain the right answer. You still own the licensing and privacy judgment calls; the tool only handles reliable access to what is already public.


Need to fetch JavaScript-heavy public pages without babysitting a browser fleet? Grab a free API key with 500 credits a month and let the escalation ladder run itself.