Skip to content

How to Scrape Crunchbase Company Data: Search, Profiles, Ranks and IDs

Scrape Crunchbase company data without an account: search by name or open organization pages for permalink, UUID, categories, location, website, employee band and rank. No-code steps, curl, Python, Node.js and MCP, plus real runs from 27 October 2026 and their exact cost.

Published
Reading time
8 min read
Pixel-art robot with an orange >_ on its terminal head pulls a company card with a small building and a blue line out of a monitor showing the blue Crunchbase logo above rows of company profiles with blue funding bars, and drops it into a crate
In this article
  1. What data you can get from Crunchbase
  2. How to use the Crunchbase scraper without code
  3. How to scrape Crunchbase with the API
  4. With an AI agent (MCP)
  5. Real runs: Stripe and "artificial intelligence"
  6. What it costs
  7. What to watch out for
  8. Is it legal to scrape Crunchbase?
  9. Why Scrape.ly for Crunchbase data
  10. FAQ
  11. Can you scrape Crunchbase for free?
  12. Do I need a Crunchbase Pro account?
  13. Can I scrape Crunchbase funding rounds and investors?
  14. How do I get a list of companies in an industry?
  15. How often should I refresh Crunchbase data?
  16. Can I scrape Crunchbase with Python?

To scrape Crunchbase, give a ready-made Actor company names to search for, or the URLs of Crunchbase organization pages, and it returns one row per company: name, Crunchbase permalink and UUID, short description, and, when Crunchbase shows them to signed-out visitors, categories, location, website, employee band and Crunchbase rank. On Scrape.ly that's a preset and one click on our Crunchbase scraper, or one API call, with no Crunchbase account, cookie or API license.

This guide covers the fields you get, the no-code steps, the same job in curl, Python, Node.js and through an AI agent, two real runs from 27 October 2026 (Stripe's organization page and a search for "artificial intelligence"), what they cost, and how to turn the rows into a usable company list.

What data you can get from Crunchbase

The Crunchbase Company Search Actor returns one row per company:

Field What it holds
name, short_description Company name and Crunchbase's one-line description
url, permalink, uuid The organization page, its slug and Crunchbase's stable ID
categories Crunchbase industry tags, such as FinTech or Robotics
location, website Headquarters and company website
num_employees_enum Employee band, for example c_00101_00250 for 101–250
operating_status, company_type Active or closed, for-profit or non-profit
rank_org Crunchbase rank, when published
logo_url, social links Logo and the company's LinkedIn, Facebook and X pages
query The search text that found the company

In our runs, every company came back with categories, location, website and rank, and all but one with an employee band. The Actor's documentation is more cautious: Crunchbase keeps some columns for signed-in paid users, so they can come back empty. Build on name, permalink and uuid, and treat the rest as a bonus that's usually there.

What it doesn't collect: funding rounds, investors, people and acquisitions. It's a company-level tool, not a people database.

How to use the Crunchbase scraper without code

  1. Open the Crunchbase Company Search Actor in the Scrape.ly Store.
  2. Pick a preset. Artificial intelligence companies searches by keyword; 2 companies by profile URL opens organization pages directly. The search preset fills in this input:
json
{
  "searchQueries": ["artificial intelligence"],
  "maxResults": 10,
  "startUrls": []
}
  1. Click Start. Our run took 46 seconds; Crunchbase checks the browser before it shows anything, and that check is most of the time.
  2. Open the dataset and export it as JSON, CSV or Excel.

The input fields that matter most:

  • searchQueries: company names or keywords, as you'd type them into Crunchbase's search box. Each search returns up to 25 companies.
  • startUrls: organization URLs such as https://www.crunchbase.com/organization/stripe, or a Crunchbase search URL with q=. No limit on how many.
  • maxResults: the total number of companies to save across all searches and URLs (default 10).

A third preset, search by URL, shows the q= form.

How to scrape Crunchbase with the API

Create a token under Settings → API & Integrations in the dashboard and store it as SCRAPELY_TOKEN. Runs take 20 seconds to a few minutes because of Crunchbase's browser check, so use the asynchronous flow:

shell
# 1. start the run; the response's data.id is the run ID
curl -X POST "https://api.scrape.ly/v2/actors/cornerledger~crunchbase-scraper/runs" \
  -H "Authorization: Bearer $SCRAPELY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": [{"url": "https://www.crunchbase.com/organization/stripe"}], "maxResults": 10}'
# 2. wait (up to 60 s per call; repeat until status is SUCCEEDED)
curl "https://api.scrape.ly/v2/actor-runs/RUN_ID?waitForFinish=60" \
  -H "Authorization: Bearer $SCRAPELY_TOKEN"
# 3. read the companies (CSV here)
curl "https://api.scrape.ly/v2/actor-runs/RUN_ID/dataset/items?format=csv" \
  -H "Authorization: Bearer $SCRAPELY_TOKEN"

The API docs explain each step.

In Python (pip install scrapely-client-python), this script enriches a list of Crunchbase permalinks you already have (from a CRM export, say) with website, employee band and rank, and decodes the employee band into readable numbers:

python
import os

from scrapely_client import ScrapelyClient

client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")

permalinks = ["stripe", "payments-canada"]
run = client.actor("cornerledger/crunchbase-scraper").call(
    run_input={
        "startUrls": [{"url": f"https://www.crunchbase.com/organization/{p}"} for p in permalinks],
        "maxResults": len(permalinks),
    }
)

def band(enum):
    if not enum:
        return ""
    low, high = enum.removeprefix("c_").split("_")
    return f"{int(low):,}-{int(high):,}"

for c in client.dataset(run.default_dataset_id).iterate_items():
    print(c["name"], c.get("website"), band(c.get("num_employees_enum")), c.get("rank_org"))

In JavaScript or Node.js (npm install scrapely-client), resolve a list of company names to Crunchbase permalinks and UUIDs, the IDs you need to join Crunchbase with other datasets:

javascript
import { ScrapelyClient } from 'scrapely-client';

const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });

const run = await client.actor('cornerledger/crunchbase-scraper').call({
  searchQueries: ['Stripe', 'Adyen', 'Klarna'],
  maxResults: 15,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const c of items) console.log(c.query, '→', c.name, c.permalink, c.uuid);

The Python client docs cover paging through large datasets.

With an AI agent (MCP)

Scrape.ly runs a hosted MCP server at https://mcp.scrape.ly. In Cursor, add it to ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "scrapely": {
      "url": "https://mcp.scrape.ly",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

In Claude Code, run claude mcp add --transport http scrapely https://mcp.scrape.ly, then /mcp to sign in with OAuth. Then ask: "Use scrapely to look up these 20 companies on Crunchbase and give me a table of website, headquarters, employee band and Crunchbase rank, sorted by rank." The MCP docs list ChatGPT, VS Code, Windsurf and the other clients.

Real runs: Stripe and "artificial intelligence"

We ran the Actor twice on 27 October 2026. The first run opened Stripe's organization page and saved one company in 18 seconds. The second ran the search preset as-is and saved 10 companies in 46 seconds. These rows are organizations, not people; we've left out the contact emails and phone numbers that some rows carry:

Company Headquarters Employees Categories Rank Type
Stripe South San Francisco, California, US 5,001–10,000 Billing, Finance, FinTech, Payments… 86 for-profit
Artificial Intelligence Lab - EPFL Lausanne, Switzerland 1,001–5,000 Artificial Intelligence (AI), Business Intelligence 332,282 for-profit
Artificial Intelligence Technology Solutions Reno, Nevada, US 101–250 Artificial Intelligence (AI), Robotics 251,778 for-profit
Artificial Intelligence Marketing Sheridan, Wyoming, US — Advertising, Artificial Intelligence (AI), Marketing 674,919 for-profit
Artificial Intelligence at UCI Irvine, California, US 11–50 Artificial Intelligence (AI), Communities, Education… 382,085 non-profit
Text
2026-10-27T16:20:08.726Z [Scrapely] Container started (setup 0.9 s)
2026-10-27T16:20:10.156Z [scrapely.proxy_configuration] INFO  Platform proxy access check succeeded.
2026-10-27T16:20:11.453Z [scrapely.actor] INFO  Plain HTTP was challenged by Cloudflare. Using a browser session.
2026-10-27T16:20:41.549Z [scrapely.actor] INFO  Browser session 1 ended at bot check after 30 s (page title 'just a moment...'); opening session 2.
2026-10-27T16:20:53.138Z [scrapely.actor] INFO  Saved 10 companies (browser, 2 browser session(s), bot check cleared 6.3 s after the first page, 10 s after opening, 43 s).
2026-10-27T16:20:53.712Z [Scrapely] Container state: status=exited exitCode=0 oomKilled=false

What the runs show:

  • Search matches names, not topics. All ten results for "artificial intelligence" had those words in their name: a university lab, a robotics firm, a student club, a marketing shop. Well-known AI companies without the phrase in their name didn't appear. For market maps, search for company names, or collect organization URLs and open them directly.
  • Rank separates the giants from the long tail. Stripe ranked 86; the ten search hits ranked between 99,710 and 3,537,180. Sort by rank_org to put the companies that matter at the top of your list.
  • Fields were well filled. Location, website and categories came back for all eleven companies, the employee band for ten, and rank for all. Eight of eleven also listed a company contact email or phone. founded_on was empty for every row.
  • Check labels before you trust them. The EPFL research lab was tagged for_profit, while the UCI student club was correctly non_profit. Crunchbase's own data has gaps; spot-check what drives a decision.
  • The browser check sets the pace. Stripe's run was through it within 15 seconds; the search needed a second browser session after the first stalled at 30 seconds. Batch many URLs and names into one run instead of starting a run per company.

What it costs

The Actor charges per company plus a small fee per run, platform usage (compute, proxy and the browser session) included. Prices checked on the Store page on 27 October 2026: $0.00136 per company ($1.36 per 1,000) and $0.006 per run.

Our runs: the search cost $0.006 + 10 × $0.00136 = $0.0196 at list price, and Stripe's page $0.006 + $0.00136 = $0.00736.

At scale: enriching 1,000 permalinks in one run costs $0.006 + 1,000 × $0.00136 = $1.37. Because the run fee is charged once, put all your URLs and names in one input.

What to watch out for

  • 25 per search. Crunchbase suggests at most 25 companies for one search. Add more searches or organization URLs to go further.
  • Run searches and URLs separately. In a run that mixed one search ("fintech") with Stripe's URL, only Stripe came back. Keep keyword searches and organization URLs in separate runs to get both.
  • Some fields can be empty. Crunchbase decides which columns signed-out visitors see. Your pipeline should accept a missing website or employee band without failing.
  • No funding, investors or people. Those sit behind Crunchbase's paid products. For people at a company, use a source built for it (see below) and treat that data as personal.
  • Runs take time. One to three minutes is normal per the Actor's docs. If the browser check doesn't clear, the run fails with a clear message and you can run it again.

Crunchbase also sells API access. Its Entity Lookup docs say each request needs "an API key in the X-cb-user-key header", and the API covers funding rounds, people and acquisitions. If you already license it and need funding data, use it. For company names, IDs, websites and ranks without a license, the Actor is the faster start.

The Actor reads only what Crunchbase shows to signed-out visitors and collects company records, not people. Crunchbase's Terms of Service (last updated September 30, 2026, read on 27 October 2026) list among prohibited uses anything that "“Crawls,” “scrapes,” or “spiders” any page, data, or portion of or relating to the Service or Content (through use of manual or automated means)". Whether and how those terms bind you depends on your jurisdiction, whether you accepted them, and how you use the data.

Company data is mostly not personal data, but company contact fields can name a person, and founder or employee details always do. Keep what you collect at company level, and check the GDPR and similar rules before you add people to a list; our guide to whether web scraping is legal covers the basics, including the GDPR. This is not legal advice; for a commercial project, ask a lawyer about your case.

Why Scrape.ly for Crunchbase data

  • No license, no login. Company names, permalinks, UUIDs, websites, employee bands and ranks without a Crunchbase subscription or API key.
  • Nothing to run on your side. The browser session and proxies run in the cloud and are included in the per-company price, so your script is a few lines of API calls.
  • IDs for joins. Every row carries Crunchbase's permalink and UUID, so enrichment results line up with your CRM or warehouse.
  • A full lead pipeline on one token. Take the websites into the Contact Details Scraper or the companies into our LinkedIn scrapers for firmographics; our lead generation scraping guide shows how the pieces fit, and alternative data for finance covers the investor angle.

FAQ

Can you scrape Crunchbase for free?

Yes, for small jobs. The Free plan includes $5 of usage credit every month with no credit card, which covers a few thousand companies at list price.

Do I need a Crunchbase Pro account?

No. The Actor reads what signed-out visitors see, without a login or cookie. Fields Crunchbase reserves for paid users may stay empty.

Can I scrape Crunchbase funding rounds and investors?

Not with this Actor. It returns company-level data: name, IDs, description, categories, location, website, employee band, status and rank. Funding, investors, people and acquisitions aren't included.

How do I get a list of companies in an industry?

Search returns companies whose names match your text, up to 25 per search. For an industry list, collect organization URLs from another source (a G2 category via our G2 reviews guide, a conference list, your CRM) and open them with startUrls, then filter on categories.

How often should I refresh Crunchbase data?

Ranks, employee bands and status change slowly. A monthly scheduled run over your company list is usually enough, and it costs $1.36 per 1,000 companies plus one run fee at list price.

Can I scrape Crunchbase with Python?

Yes. Install scrapely-client-python and call cornerledger/crunchbase-scraper, as in the enrichment script above. The browser check runs in the cloud, so your script needs no headless browser.

  • crunchbase
  • company data
  • market mapping
  • lead generation
  • python
  • api

About the author

Actor publisher on the Scrape.ly Store

The businesses on every corner and in every register: map listings, local directories, company registries and customer reviews. For sales teams and market researchers. A Scrapely studio.

//Keep reading\\

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.