PitchBook Scraper — Companies & Investors
Pricing
from $12.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
7
Monthly active users
6 hours ago
Last modified
Categories
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

✨ 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 pastehttps://pitchbook.com/profiles/search?q=fintech— both paginate results up tomaxItems. 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 instartUrls:100016-92is an investor,11295-73Fis a fund. Company ids needcompanyIdsor 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 — preferinstantDatabasefor 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_gatedwhen 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
| Audience | What they pull |
|---|---|
| Market research & competitive intelligence | Company profiles with competitors, financing status, and employee counts |
| Investment & M&A analysts | Deal history, latest deal types, and investor lists for due diligence |
| Fund managers & placement agents | Investor prospecting lists filtered by type + region; fund size / vintage / manager from /profiles/fund/ |
| Founders raising capital | Actively-seeking investors in their region + sector |
| Lead generation & sales teams | Company contact blocks, socials, and investor websites + emails |
| Data & research teams | Structured company/investor universe for CRM import or market sizing |
📥 Supported inputs
| Input | Example | Behaviour |
|---|---|---|
| Company profile URL | https://pitchbook.com/profiles/company/361831-87 | Scraped directly → company row |
| Investor profile URL | https://pitchbook.com/profiles/investor/100016-92 | Scraped directly → investor row (advisor URLs work too) |
| Fund profile URL | https://pitchbook.com/profiles/fund/11295-73F | Scraped directly → fund row |
| Bare investor / fund token | 100016-92 / 11295-73F in startUrls | Resolved 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 URL | https://pitchbook.com/profiles/search?q=fintech | Paginated automatically when the gate lets it through; may return zero rows if PitchBook blocks the search page |
| No URLs + filters | regions: ["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 used | What to paste here |
|---|---|
| crawlerbros/pitchbook-investors-scraper | searchQuery works the same. Bare investor ids go in investorIds or startUrls. You also get companies, funds, logos, socials, and tradeAssociation. |
| johnvc/pitchbook-company-api | Company 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 scrapers | Same 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
- Classify every start URL or bare id — company, investor, fund, or search listing.
searchQueryand the*Idslists are expanded first. - Paginate search listings, feeding each company / investor / fund result into the profile pipeline.
- Fetch each profile through the Cloudflare-tolerant stack (impit → parallel impit/gotScraping race, rotating proxy on retry).
- 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. - Enrich (optional, investors) — visit the investor's on-page website and harvest a contact email.
- Filter investor rows by region / type / status / country / city / count-ranges; company and fund rows are never dropped by investor filters.
- Push one row per profile to the dataset, up to
maxItems. Failed fetches write antype: "error"row and do not count toward the cap.
⚙️ Input parameters
| Field | Type | Description |
|---|---|---|
startUrls | array | Any 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. |
searchQuery | string | Keyword turned into /profiles/search?q=… and paginated. |
companyIds / investorIds / fundIds | array | Bare profile ids. Company ids must go here (or as a full URL) — a bare N-N in startUrls is an investor. |
sitemapEntity | enum | When URLs are empty: investors (default) or funds. |
regions | array | Investor filter: Americas, Europe, Asia, Oceania, Africa, Middle East. |
investorTypes | array | Investor filter: e.g. Venture Capital, Private Equity, Family Office, Angel, Accelerator/Incubator. |
investorStatuses | array | Investor filter: e.g. Actively Seeking New Investments, Out of Business, Acquired/Merged. |
countries / cities | array | Investor filter: specific HQ country / city. |
minInvestments / maxInvestments | integer | Investor filter: total-investments range. |
minActivePortfolio / maxActivePortfolio | integer | Investor filter: active-portfolio range. |
minExits / maxExits | integer | Investor filter: total-exits range. |
requiredFields | array | Investor filter: only emit rows with a non-empty value in ALL listed fields (e.g. website, contactEmail). |
enrichEmails | boolean | Discover a contact email from each investor's website. Default false. |
maxItems | integer | Hard cap on profile rows pushed (companies + investors + funds). Error rows do not count. Default 1000 (free users: 50). |
maxConcurrency | integer | Profiles fetched in parallel. Default 10. |
proxy | object | Proxy 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,
instantDatabaseis 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.
| Field | Type | Description |
|---|---|---|
instantDatabase | boolean | Serve from the archive instead of scraping. Default false. |
dbEntity | enum | investors (default), companies, funds, both (companies + investors), or all. |
dbQuery | string | Case-insensitive substring on name or description. |
dbCountry / dbRegion / dbInvestorType | string | Investor-archive filters. Ignored when dbEntity is companies or funds. |
dbMinInvestments / dbMinExits | integer | Minimum recorded investments / exits (investors). |
dbCompanyStatus | string | Exact company status, e.g. Private, Acquired/Merged. Ignored when dbEntity is investors or funds. |
dbFundStatus | string | Exact fund status, e.g. Liquidated. Used when dbEntity is funds or all. |
dbMaxAgeDays | integer | Only 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):
| Field | Type | Notes |
|---|---|---|
company_name, id, url | string | Identity + PitchBook profile ID |
year_founded, status, employees | number / string | Overview stats |
latest_deal_type, financing_rounds, investments | string / number | Deal activity headline stats |
description | string | Company summary |
contact_information[] | array | {Type, value} rows: website, ownership status, financing status, office, industry, verticals |
ownership_status, financing_status, primary_industry, other_industries, verticals | string | Flattened from the contact block |
formerly_known_as, acquirer, acquired_date | string | Present on acquired / renamed companies |
website, logo_url, hq_address, hq_city, hq_country, hq_postal_code | string | Identity + HQ split |
company_socials[] | array | {domain, link} — LinkedIn, X/Twitter, Facebook, … |
competitors[] | array | name, financing status, profile link, location (public rows only) |
all_investments[] | array | Investments the company itself made: name, ISO date, type, size, industry |
investors[] | array | Investor 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_gated | boolean | true when PitchBook hid that table behind login |
faq[] | array | Alternating {type: Question/Answer} entries as rendered on the page |
Investor rows:
| Field | Type | Notes |
|---|---|---|
companyName, formerlyKnownAs | string | Investor name and prior name |
primaryInvestorType, otherInvestorType, otherInvestorTypes[], investorStatus | string / array | e.g. Venture Capital / Actively Seeking New Investments |
logoUrl, socialLinks, tradeAssociation | string / object | Public logo, LinkedIn/X/Facebook, trade-association line |
website, yearFounded, description | string | Firm website (used for enrichment) + summary |
hqGlobalRegion, country, city, stateOrProvince, postalCode, streetAddress | string | Headquarters location |
phonePartial | string | Only country + area code render publicly (rest is redacted by PitchBook) |
professionals, totalInvestments, activePortfolio, totalExits | number | Headline activity counts |
recentInvestments[], recentExits[], coInvestors[] | array | First public rows of each table |
contactEmail, contactEmails | string / array | Present only when enrichEmails is on and an email was found |
scrapedAt | ISO datetime | When the row was collected |
Fund rows:
| Field | Type | Notes |
|---|---|---|
fund_name, id, url | string | Identity + PitchBook fund id (…F) |
fund_strategy, fund_status, fund_size, vintage_year | string / number | Public overview — size and vintage render on the public page |
dry_powder | string | Empty when PitchBook gates it |
fund_manager, fund_manager_url | string | Manager name + investor profile link |
fund_category, fund_family, native_currency, fund_domiciles | string | Contact-block extras |
total_investments, total_limited_partners | number | Counts from the section headings |
recent_investments[] | array | Public investment rows: name, ISO date, type |
limited_partners[] / limited_partners_gated | array / boolean | LP names when the table is public; otherwise gated flag |
Archive provenance fields. Rows served by
instantDatabaseaddservedFromDatabase: trueanddataAsOf(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