PitchBook Scraper — Companies & Investors avatar

PitchBook Scraper — Companies & Investors

Pricing

from $12.00 / 1,000 results

Go to Apify Store
PitchBook Scraper — Companies & Investors

PitchBook Scraper — Companies & Investors

Scrape PitchBook company & investor profiles without a login — financing status, competitors, employees, deal history, investor type, HQ, activity metrics, and FAQ data. Works with profile URLs, keyword search (auto-paginated), or sitemap-wide investor filters. JSON or CSV out.

Pricing

from $12.00 / 1,000 results

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

7

Monthly active users

6 hours ago

Last modified

Share

PitchBook Scraper — Companies, Investors & Funds

Export structured company, investor, and fund profiles from PitchBook's public pages. Companies come with financing status, competitors, investment history, investor names, and FAQ data; investors with type, status, headquarters, activity metrics, recent investments, exits, and co-investors; funds with strategy, size, vintage, manager, and (when public) limited partners. Paste profile URLs, bare IDs, a keyword (searchQuery), or a PitchBook search URL (/profiles/search?q=… — paginated automatically), or filter the public investor / fund universe by region, type, status, and geography.

How it works

How the PitchBook Scraper works

✨ Why use this scraper?

  • No login, no PitchBook seat. Reads only public profile pages — no gated platform access.
  • Companies, investors, AND funds in one actor. Mix company URLs, investor URLs, fund URLs, bare IDs, and search URLs in a single run; each row comes out in the right shape automatically.
  • Keyword or search URL. Set searchQuery: "fintech" (same as crawlerbros) or paste https://pitchbook.com/profiles/search?q=fintech — both paginate results up to maxItems. PitchBook gates the search page, so this path can return zero results when the gate holds — check the run log and fall back to direct profile URLs if so.
  • Bare IDs. investorIds / companyIds / fundIds, or a token in startUrls: 100016-92 is an investor, 11295-73F is a fund. Company ids need companyIds or the full /profiles/company/ URL.
  • Filter the investor universe. The fast, cheap way is instantDatabase (served from the archive). With no URLs at all the actor also tries live sitemap discovery, but PitchBook gates the sitemap for cloud egress, so that path runs through the paid unblocker one page at a time and is the slowest, most expensive, least reliable option — prefer instantDatabase for filter-style questions.
  • Rich company data. Year founded, status, employees, latest deal type, financing rounds, acquirer / formerly-known-as, HQ split, full contact block, socials, competitors table, investment history, investor names + profile links, and the on-page FAQ. When PitchBook hides a table behind login, the row says so (funding_rounds_gated, investors_table_gated, competitors_table_gated) instead of pretending the table is empty.
  • Fund profiles. Strategy, status, size, vintage, manager, category, family, domiciles, recent investments, and limited partners when the LP table is public (limited_partners_gated when it is not).
  • Fresh, on-demand email enrichment. Each investor profile exposes the firm's real website, so the actor can visit it and harvest a contact email live — not a stale snapshot.
  • One clean row per profile. JSON, CSV, Excel — billed per result, no padding rows.

🎯 Use cases

AudienceWhat they pull
Market research & competitive intelligenceCompany profiles with competitors, financing status, and employee counts
Investment & M&A analystsDeal history, latest deal types, and investor lists for due diligence
Fund managers & placement agentsInvestor prospecting lists filtered by type + region; fund size / vintage / manager from /profiles/fund/
Founders raising capitalActively-seeking investors in their region + sector
Lead generation & sales teamsCompany contact blocks, socials, and investor websites + emails
Data & research teamsStructured company/investor universe for CRM import or market sizing

📥 Supported inputs

InputExampleBehaviour
Company profile URLhttps://pitchbook.com/profiles/company/361831-87Scraped directly → company row
Investor profile URLhttps://pitchbook.com/profiles/investor/100016-92Scraped directly → investor row (advisor URLs work too)
Fund profile URLhttps://pitchbook.com/profiles/fund/11295-73FScraped directly → fund row
Bare investor / fund token100016-92 / 11295-73F in startUrlsResolved to the matching profile URL
companyIds / investorIds / fundIds["361831-87"]Same as the matching profile URL
searchQuery"fintech"Built into /profiles/search?q=fintech and paginated
Search URLhttps://pitchbook.com/profiles/search?q=fintechPaginated automatically when the gate lets it through; may return zero rows if PitchBook blocks the search page
No URLs + filtersregions: ["Americas"], investorTypes: ["Venture Capital"]Tries live sitemap discovery through the paid unblocker (slow, costly). sitemapEntity: "funds" streams fund URLs instead. For filter queries prefer instantDatabase

Not supported: PitchBook Platform data behind login (valuation, revenue, deal sizes, AUM, fund performance, dry powder when gated, full contact phone, lead-investor / round-amount tables). Those cells are empty in the public HTML; the actor flags the gated tables instead of inventing values.

Coming from another PitchBook actor

If you usedWhat to paste here
crawlerbros/pitchbook-investors-scrapersearchQuery works the same. Bare investor ids go in investorIds or startUrls. You also get companies, funds, logos, socials, and tradeAssociation.
johnvc/pitchbook-company-apiCompany URLs or companyIds. Company field names stay snake_case. funding_rounds_gated / investors_table_gated tell you when lead investor and round amount are behind login (they are not in the public HTML).
crawlerbros/pitchbook-fund-scraper/profiles/fund/{id}F URLs or fundIds like 11295-73F. Same public fund fields (size, vintage, manager); LP names only when PitchBook renders the table.
pratikdani company scrapersSame snake_case company columns (company_name, contact_information, all_investments, …) plus the flattened extras (acquirer, formerly_known_as, investors_detailed).

⚠️ Access note

PitchBook is fronted by Cloudflare and tightened its gate in August 2026: profile pages are now challenged from ordinary proxies and from clean residential IPs. The actor therefore runs a ladder — three fingerprinted HTTP stacks first, then a managed unblocker as the last attempt — and switches to unblocker-first automatically once the free lanes have failed a few profiles in a row, so it stops paying for attempts that cannot succeed. Sitemap discovery goes through the same unblocker, since the sitemap is gated for every cloud egress. Nothing needs configuring for this; the proxy setting only affects the free lanes.

🔄 How it works

  1. Classify every start URL or bare id — company, investor, fund, or search listing. searchQuery and the *Ids lists are expanded first.
  2. Paginate search listings, feeding each company / investor / fund result into the profile pipeline.
  3. Fetch each profile through the Cloudflare-tolerant stack (impit → parallel impit/gotScraping race, rotating proxy on retry).
  4. Parse the JSON-LD + on-page tables + FAQs into a normalized company, investor, or fund row. Gated tables become *_gated: true, not empty-looking data.
  5. Enrich (optional, investors) — visit the investor's on-page website and harvest a contact email.
  6. Filter investor rows by region / type / status / country / city / count-ranges; company and fund rows are never dropped by investor filters.
  7. Push one row per profile to the dataset, up to maxItems. Failed fetches write an type: "error" row and do not count toward the cap.

⚙️ Input parameters

FieldTypeDescription
startUrlsarrayAny mix of company / investor / fund / search URLs, plus bare tokens (100016-92 = investor, 11295-73F = fund). Leave empty (and leave searchQuery / *Ids empty) to enumerate from the sitemap.
searchQuerystringKeyword turned into /profiles/search?q=… and paginated.
companyIds / investorIds / fundIdsarrayBare profile ids. Company ids must go here (or as a full URL) — a bare N-N in startUrls is an investor.
sitemapEntityenumWhen URLs are empty: investors (default) or funds.
regionsarrayInvestor filter: Americas, Europe, Asia, Oceania, Africa, Middle East.
investorTypesarrayInvestor filter: e.g. Venture Capital, Private Equity, Family Office, Angel, Accelerator/Incubator.
investorStatusesarrayInvestor filter: e.g. Actively Seeking New Investments, Out of Business, Acquired/Merged.
countries / citiesarrayInvestor filter: specific HQ country / city.
minInvestments / maxInvestmentsintegerInvestor filter: total-investments range.
minActivePortfolio / maxActivePortfoliointegerInvestor filter: active-portfolio range.
minExits / maxExitsintegerInvestor filter: total-exits range.
requiredFieldsarrayInvestor filter: only emit rows with a non-empty value in ALL listed fields (e.g. website, contactEmail).
enrichEmailsbooleanDiscover a contact email from each investor's website. Default false.
maxItemsintegerHard cap on profile rows pushed (companies + investors + funds). Error rows do not count. Default 1000 (free users: 50).
maxConcurrencyintegerProfiles fetched in parallel. Default 10.
proxyobjectProxy configuration. Defaults to Apify Proxy.

Note: investor filters apply to investor rows only — company and fund profiles are never dropped by them. PitchBook has no public filter endpoint, so sitemap-mode filters are applied after each profile is fetched: a narrow filter over investors the archive has never seen reads many profiles per match. Investors already in the archive are judged for free, and the run reports the real match rate as it goes, stopping rather than grinding on if a filter turns out to match almost nothing. For filter-style questions, instantDatabase is the cheap path. You are billed per row pushed, not per page read.

⚡ Instant database (no scraping)

Every investor, company, and fund this actor scrapes is also written to a cumulative archive, so a page paid for once is owned for good. Set instantDatabase: true and the run answers straight from that archive: no fetching, no unblocker spend, results in seconds. Company archive rows now keep the flattened extras (acquirer, HQ split, gated flags) in an extras blob that is merged back on read.

Billing: archive rows are charged at the normal per-result price, the same as a fresh scrape. What instantDatabase saves is time and unblocker cost, not the result fee. Every archive row carries servedFromDatabase: true and dataAsOf, so you always see how old it is before you rely on it.

This matters more here than on a typical target. PitchBook publishes no filter endpoint, so a live filtered crawl has to fetch each candidate before it can tell whether it matches. Against the archive the same question is free.

FieldTypeDescription
instantDatabasebooleanServe from the archive instead of scraping. Default false.
dbEntityenuminvestors (default), companies, funds, both (companies + investors), or all.
dbQuerystringCase-insensitive substring on name or description.
dbCountry / dbRegion / dbInvestorTypestringInvestor-archive filters. Ignored when dbEntity is companies or funds.
dbMinInvestments / dbMinExitsintegerMinimum recorded investments / exits (investors).
dbCompanyStatusstringExact company status, e.g. Private, Acquired/Merged. Ignored when dbEntity is investors or funds.
dbFundStatusstringExact fund status, e.g. Liquidated. Used when dbEntity is funds or all.
dbMaxAgeDaysintegerOnly rows seen within this many days.

Rows served this way carry servedFromDatabase: true and dataAsOf, so archived data can never be mistaken for a fresh scrape — you always see how old it is.

What the archive is not: it holds what has been collected so far, not the whole of PitchBook. A filter that matches nothing returns nothing rather than falling back to a live crawl. Run a normal scrape first if you need coverage the archive does not yet have.

📊 Output overview

Each row is a single profile. Company rows carry identity, overview stats (year founded, status, employees, latest deal type, financing rounds, investments made), acquirer / formerly-known-as, HQ split, description, the full contact block, socials, the competitors table, investment history, investor names + profile links, gated-table flags, and the on-page FAQ. Investor rows carry identity + type/status, logo, socials, trade association, full headquarters address, headline activity counts, description, website (and optional contact email), plus recent investments, exits, and co-investors. Fund rows carry strategy, status, size, vintage, manager, category, family, domiciles, recent investments, limited partners (or limited_partners_gated), and FAQ. A fetch that fails writes { "type": "error", "inputUrl", "error" } and does not count toward maxItems.

📦 Output sample — company

{
"type": "company",
"url": "https://pitchbook.com/profiles/company/361831-87",
"id": "361831-87",
"company_name": "Badia Spices",
"company_socials": [
{ "domain": "www.linkedin.com", "link": "https://www.linkedin.com/company/badia-spices-inc." },
{ "domain": "twitter.com", "link": "https://twitter.com/badiaspices" },
{ "domain": "www.facebook.com", "link": "https://www.facebook.com/BadiaSpices" }
],
"year_founded": 1967,
"status": "Private",
"employees": 101,
"latest_deal_type": "Buyout/LBO",
"financing_rounds": 1,
"investments": 1,
"description": "Manufacturer and distributor of food ingredients based in Doral, Florida…",
"contact_information": [
{ "Type": "Website", "value": "www.badiaspices.com" },
{ "Type": "Ownership Status", "value": "Privately Held (backing)" },
{ "Type": "Financing Status", "value": "Private Equity-Backed" },
{ "Type": "Corporate Office", "value": "PO Box 226497, Doral, FL 33322-4697, United States" },
{ "Type": "Primary Industry", "value": "Food Products" },
{ "Type": "Vertical(s)", "value": "Manufacturing" }
],
"competitors": [
{ "company_name": "Louisiana Fish Fry", "financing_status": "Private Equity-Backed", "link": "https://pitchbook.com/profiles/company/233704-27", "location": "Baton Rouge, LA" }
],
"all_investments": [
{ "company_name": "Tech Data (Warehouse in Sweetwater, Texas)", "deal_date": "2020-11-03T00:00:00.000Z", "deal_type": "Corporate Asset Purchase", "deal_size": null, "industry": "Buildings and Property" }
],
"investors": ["BDT & MSD Partners"],
"investors_detailed": [{ "name": "BDT & MSD Partners", "url": "https://pitchbook.com/profiles/investor/…" }],
"formerly_known_as": null,
"ownership_status": "Privately Held (backing)",
"financing_status": "Private Equity-Backed",
"primary_industry": "Food Products",
"website": "www.badiaspices.com",
"logo_url": "https://image.pitchbook.com/…",
"hq_city": "Doral",
"hq_country": "United States",
"funding_rounds_gated": true,
"investors_table_gated": false,
"competitors_table_gated": false,
"faq": [
{ "type": "Question", "value": "When was Badia Spices founded?" },
{ "type": "Answer", "value": "Badia Spices was founded in 1967." }
],
"scrapedAt": "2026-07-22T20:04:11.000Z"
}

📦 Output sample — investor

{
"type": "investor",
"investorId": "100016-92",
"investorUrl": "https://pitchbook.com/profiles/investor/100016-92",
"companyName": "Planetary Technologies",
"formerlyKnownAs": "Bioeconomy Capital",
"primaryInvestorType": "Venture Capital",
"investorStatus": "Actively Seeking New Investments",
"website": "http://planetarytech.earth",
"yearFounded": "2015",
"country": "United States",
"city": "Seattle",
"stateOrProvince": "Washington",
"professionals": 2,
"totalInvestments": 30,
"activePortfolio": 9,
"totalExits": 6,
"recentInvestments": [
{ "companyName": "ZymeCo", "dealDate": "01-Jul-2026", "dealType": "Later Stage VC", "industry": "Other Agriculture", "companyStage": "Generating Revenue", "leadPartner": null }
],
"recentExits": [
{ "companyName": "Parse Biosciences", "exitDate": "01-Dec-2025", "exitType": "Merger/Acquisition" }
],
"coInvestors": ["Sagana", "Sahsen Ventures", "Band of Angels", "Lowercase Capital"],
"logoUrl": "https://image.pitchbook.com/…",
"socialLinks": { "linkedin": "https://www.linkedin.com/company/…", "twitter": null, "facebook": null },
"tradeAssociation": null,
"otherInvestorTypes": ["Impact Investing"],
"scrapedAt": "2026-07-22T20:04:25.000Z"
}

📦 Output sample — fund

{
"type": "fund",
"url": "https://pitchbook.com/profiles/fund/11295-73F",
"id": "11295-73F",
"fund_name": "Thomas H. Lee Equity Partners V",
"fund_strategy": "Buyout",
"fund_status": "Liquidated",
"fund_size": "$6.11B",
"vintage_year": 2000,
"dry_powder": null,
"fund_manager": "Thomas H. Lee Partners",
"fund_manager_url": "https://pitchbook.com/profiles/investor/11316-52",
"fund_category": "Private Equity",
"fund_family": "Thomas H. Lee Equity Partners",
"native_currency": "USD",
"total_investments": 12,
"recent_investments": [
{ "company_name": "Fidelity National Information Services", "deal_date": "2003-01-01T00:00:00.000Z", "deal_type": "Buyout/LBO" }
],
"limited_partners": [],
"limited_partners_gated": true,
"scrapedAt": "2026-09-10T12:00:00.000Z"
}

🗂 Key output fields

Company rows (field names mirror the shape used by established PitchBook company scrapers, so existing pipelines can swap in):

FieldTypeNotes
company_name, id, urlstringIdentity + PitchBook profile ID
year_founded, status, employeesnumber / stringOverview stats
latest_deal_type, financing_rounds, investmentsstring / numberDeal activity headline stats
descriptionstringCompany summary
contact_information[]array{Type, value} rows: website, ownership status, financing status, office, industry, verticals
ownership_status, financing_status, primary_industry, other_industries, verticalsstringFlattened from the contact block
formerly_known_as, acquirer, acquired_datestringPresent on acquired / renamed companies
website, logo_url, hq_address, hq_city, hq_country, hq_postal_codestringIdentity + HQ split
company_socials[]array{domain, link} — LinkedIn, X/Twitter, Facebook, …
competitors[]arrayname, financing status, profile link, location (public rows only)
all_investments[]arrayInvestments the company itself made: name, ISO date, type, size, industry
investors[]arrayInvestor names (extracted from the public FAQ)
investors_detailed[]array{name, url} when a profile link is on the page
funding_rounds_gated, investors_table_gated, competitors_table_gatedbooleantrue when PitchBook hid that table behind login
faq[]arrayAlternating {type: Question/Answer} entries as rendered on the page

Investor rows:

FieldTypeNotes
companyName, formerlyKnownAsstringInvestor name and prior name
primaryInvestorType, otherInvestorType, otherInvestorTypes[], investorStatusstring / arraye.g. Venture Capital / Actively Seeking New Investments
logoUrl, socialLinks, tradeAssociationstring / objectPublic logo, LinkedIn/X/Facebook, trade-association line
website, yearFounded, descriptionstringFirm website (used for enrichment) + summary
hqGlobalRegion, country, city, stateOrProvince, postalCode, streetAddressstringHeadquarters location
phonePartialstringOnly country + area code render publicly (rest is redacted by PitchBook)
professionals, totalInvestments, activePortfolio, totalExitsnumberHeadline activity counts
recentInvestments[], recentExits[], coInvestors[]arrayFirst public rows of each table
contactEmail, contactEmailsstring / arrayPresent only when enrichEmails is on and an email was found
scrapedAtISO datetimeWhen the row was collected

Fund rows:

FieldTypeNotes
fund_name, id, urlstringIdentity + PitchBook fund id (…F)
fund_strategy, fund_status, fund_size, vintage_yearstring / numberPublic overview — size and vintage render on the public page
dry_powderstringEmpty when PitchBook gates it
fund_manager, fund_manager_urlstringManager name + investor profile link
fund_category, fund_family, native_currency, fund_domicilesstringContact-block extras
total_investments, total_limited_partnersnumberCounts from the section headings
recent_investments[]arrayPublic investment rows: name, ISO date, type
limited_partners[] / limited_partners_gatedarray / booleanLP names when the table is public; otherwise gated flag

Archive provenance fields. Rows served by instantDatabase add servedFromDatabase: true and dataAsOf (when that profile was last scraped). Live-scraped rows never carry them, so the two are always distinguishable in the same dataset.

❓ FAQ

Does this return valuation, revenue, deal sizes, or AUM? No. Those are gated on PitchBook's platform and never appear in the public page HTML — the placeholders you see on the page are literally empty boxes. This actor returns everything that is public.

Can I scrape from a keyword search? Yes. Set searchQuery: "fintech" or paste https://pitchbook.com/profiles/search?q=<term> into startUrls. The actor walks the results pages and scrapes each company / investor / fund profile up to maxItems. PitchBook gates the search page, so the run can come back with zero results when the gate holds. If that happens, use direct profile URLs or bare IDs instead.

Where does the contact email come from? PitchBook doesn't publish investor emails. With enrichEmails on, the actor visits the investor's own website (shown on the profile) and harvests a contact email. Hit rate depends on whether the firm publishes one — expect a partial rate.

Why is phonePartial incomplete? PitchBook renders only the country + area code publicly and masks the rest with placeholder boxes. The masked digits are not present in the page HTML.

Can I get every investor in a country/type? Use instantDatabase: true with the db* filters — it answers from the archive in seconds. Leaving startUrls empty also triggers live sitemap discovery, but PitchBook gates the sitemap for cloud egress, so that path goes through the paid unblocker one page at a time and is slow and costly. The archive is the intended path for filter questions; it only holds what earlier runs have collected, so widen the filters if a query returns nothing.

How do I get a specific company, investor, or fund? Paste the profile URL into startUrls, or use companyIds / investorIds / fundIds. A bare 361831-87 in startUrls is treated as an investor; company ids need companyIds or the full /profiles/company/ URL. Fund ids end in F (11295-73F).

Do failed URLs kill the run? No. A blocked or invalid page writes { "type": "error", "inputUrl", "error" } and the run continues. Error rows are not billed as results and do not count toward maxItems.

💬 Support

Found a field that's missing or mis-parsed? Open an issue on the actor's Issues tab with the profile URL and what you expected.

🛠 Additional services

Need a bulk one-off pull, a custom export shape, or a field that is public on the page but missing from the dataset? Reach out via the Issues tab.

🔎 Explore more scrapers

Browse the rest of the portfolio on the Apify Store for more lead-generation and market-intelligence actors.

🤖 For AI Agents & LLM Apps

This actor works as a structured data source for AI agents via the Apify MCP server or the Apify API. Typical agent tasks: "get the competitors and financing status of company X", "list actively-investing VC firms in Europe", "pull fund size and vintage for fund Y", "build a due-diligence brief from a PitchBook URL".

Minimal input:

{
"startUrls": ["https://pitchbook.com/profiles/company/361831-87"],
"maxItems": 1
}

Keyword + mixed IDs:

{
"searchQuery": "spices",
"companyIds": ["361831-87"],
"investorIds": ["100016-92"],
"fundIds": ["11295-73F"],
"maxItems": 10
}

Output is one JSON row per profile (type is company, investor, fund, or error). No HTML parsing needed downstream. Archive reads use instantDatabase: true plus dbEntity / dbQuery.


⚠️ Disclaimer

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

The scraper accesses only publicly available profile pages — no authenticated endpoints, subscriber-only features, or content behind a PitchBook login. Users are responsible for ensuring their use complies with PitchBook's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.


SEO Keywords

pitchbook scraper, scrape pitchbook, pitchbook companies scraper, pitchbook company profile scraper, pitchbook investors scraper, pitchbook fund scraper, pitchbook api, apify pitchbook, company data scraper, investor data scraper, fund profile scraper, venture capital investor list, private equity firm scraper, vc firm database, company competitors scraper, financing rounds data, startup funding data, investor contact scraper, lp prospecting data, family office list scraper, investor email finder, deal sourcing data, co-investor mapping, due diligence data, market intelligence scraper, pitchbook alternative scraper, company profile api