# Investor Database Search (`capable_cauldron/investor-database-search`) Actor

Find startup investors and get their partners' direct emails. Search 145,000+ VCs, angels, family offices, CVCs and accelerators by stage, industry, geography and check size. Any number of contacts per run, $5 per 100, never the same contact twice.

- **URL**: https://apify.com/capable_cauldron/investor-database-search.md
- **Developed by:** [Capable Cauldron](https://apify.com/capable_cauldron) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 contact returneds

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Find the **right investors for your round and get their partners' direct emails** in one click. No scraping and no LinkedIn rate limits; a run finishes in seconds.

Search a curated **investor database of 145,000+ VCs, angel investors, family offices, corporate VCs, accelerators and lenders** by **stage, industry, geography, check size and investor type**. You get back a clean list of **as many contacts as you ask for** with names, emails, LinkedIn and website links, ready for your CRM, spreadsheet or outreach tool. Run it again next week and you only get people you have not received before.

The database's last full sync was **August 6, 2026**. Verify email addresses before a large campaign.

Built on Apify, so you also get **scheduled** runs, a REST **API**, webhooks and one-click export to CSV, Excel or JSON. Click **Try for free** to open it in Console. Apify's free plan includes $5 of monthly credit, which is exactly **one full run of 100 investor contacts**.

### What can Investor Database Search do?

- 🎯 Filter by **stage**: Pre-Seed, Seed, Series A / Early VC, Later VC, Growth, Buyout, Debt
- 🏭 Filter by **117 industries**: FinTech, SaaS, AI, Climate, HealthTech, Deep Tech, Consumer, PropTech and more
- 🌍 Filter by **geography**: country, region or US state
- 💵 Filter by **typical check size**
- 🏢 Choose **investor type**: VC, Corporate VC, Family Office, Angel Group, Accelerator, Lender, RIA
- ⭐ Prioritize **popular** investors and funds with **fresh capital** to deploy
- 📧 Get **direct email addresses** of partners and team members at 23,000+ firms (53,000+ emails on file)
- 🔗 Get **LinkedIn, website, X/Twitter, AngelList and Facebook** links
- 👤 Optionally include **111,000+ individual angel investors** with LinkedIn profiles
- 🔎 **Look up specific firms by name** to get their whole team
- ⚖️ Cap **contacts per investor** so one large fund does not use up your run
- 🔁 **Never pay for the same contact twice.** The Actor remembers what it has delivered to your account and skips those people in later runs, whatever filters you use
- 📤 Export to **CSV, Excel, JSON or XML**, or pull results via API

#### What data do you get for each investor contact?

One row per **contact** (a person), with their investor's full profile attached.

| Field | Description |
|---|---|
| `contactName` | Person's full name. For angels, the investor themself |
| `contactEmail` | Direct email address (`null` for LinkedIn-only contacts and angels) |
| `contactKind` | `firm-contact` or `angel` |
| `contactRank` | Position of the person in the firm's team list (0 = listed first) |
| `investorKey` | Stable id of the investor, the same in every run |
| `investorName` | Firm or angel name |
| `entityType` | `firm` or `angel` |
| `investorType` | Venture Capital, Family Offices, Corporate Venture Capital, Angel Groups and more |
| `description` | Short profile: thesis, location, focus |
| `stages` | Investment stages, e.g. `["Seed Round", "Early stage VC"]` |
| `industries` | Industry focus |
| `geographies` | Geographic focus, when declared |
| `sweetSpot` / `sweetSpotUsd` | Typical check size, as text and as a number |
| `linkedinUrl`, `websiteUrl`, `twitterUrl`, `angellistUrl`, `facebookUrl` | Social and web links |
| `popular` | Highly active, sought-after investor |
| `freshCapital` | Recently raised a new fund and is actively deploying |
| `firmContactCount` / `firmEmailCount` | How many people (and emails) the investor has on file in total |
| `searchRank` | Position in this run's results |

### How to find investors for your startup

1. Click **Try for free** to open the Actor in Apify Console.
2. Pick your filters, for example **stages: Seed Round**, **industries: FinTech**, **geographies: United States**. Leave everything empty to get the 100 most relevant investor contacts with emails.
3. Optionally set **Max contacts** (empty means 100; enter 1,000 or 10,000 if you want a whole segment) and **Max contacts per investor** (default 3, so you get breadth across firms rather than 40 people from one fund).
4. Click **Start**. A 100-contact run finishes in seconds; 10,000 contacts take a minute or two.
5. Open the **Contacts** view to review, then **Export** as CSV, Excel or JSON, or fetch the dataset via the API.

**Tips**

- **Want angels?** Set **Entity type** to *Angels only* or *Firms and angels* and turn off **Only contacts with an email**. Angels have LinkedIn profiles but no email on file.
- **Looking for a specific firm?** Put its name in **Look up specific investors** and raise **Max contacts per investor** to get the whole team.
- **Geography and check size are declared by a minority of investors.** If a geography filter returns few results, use the **Keywords** box instead; it searches investor descriptions, which usually mention the city or country.
- **Running several searches?** Overlapping filters are fine. Every run skips the people you already received, so you are never billed for a contact twice. Turn on **Forget my earlier runs** if you want a fresh copy of everything.
- **Asked for more than exist?** You get every contact that matches and pay only for what you receive.

### How much does it cost to get investor contacts?

One event, one price:

| Event | When it fires | Price |
|---|---|---|
| `contact-returned` | Each contact row added to your dataset | $0.05 |

**Worked examples**

- A search that returns **100 contacts** costs **$5.00**
- A search that returns **1,000 contacts** costs **$50.00**
- A search that returns **20 contacts** costs **$1.00**
- A search that returns **0 contacts** costs **$0.00**

`maxContacts` is your spend control. Leave it empty and a run returns 100 contacts at most, so it never costs more than $5; Apify's free plan ($5/month) covers one such run. Contacts you already received in an earlier run are skipped and never billed again. Nothing is charged for compute; the search runs at minimal memory.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `keywords` | string | — | Free-text match on investor name and description |
| `investorTypes` | array | all | Venture Capital, Corporate Venture Capital, Family Offices, Angel Groups, Accelerators/Incubators, Lenders and more |
| `stages` | array | all | Pre Seed, Seed Round, Early stage VC, Later stage VC, PE Growth/Expansion, Buyout, Debt and more |
| `industries` | array | all | Any of 117 industries |
| `geographies` | array | all | Country, region or state names |
| `checkSizeMinUsd` / `checkSizeMaxUsd` | integer | — | Typical check size range in USD |
| `entityType` | `firm` / `angel` / `all` | `firm` | Firms have named contacts with emails; angels are LinkedIn-only |
| `emailRequired` | boolean | `true` | Only return contacts with an email |
| `popularOnly` | boolean | `false` | Only highly active investors |
| `freshCapitalOnly` | boolean | `false` | Only investors with a recently raised fund |
| `maxContacts` | integer | `100` | How many contacts to return. Any number up to what the database holds (see FAQ); if fewer match your filters you get all of them |
| `skipPreviouslyDelivered` | boolean | `true` | Skip contacts already delivered to your Apify account in earlier runs, so you never pay for a person twice |
| `maxContactsPerInvestor` | integer 1–50 | `3` | Cap on people returned from one firm |
| `sortBy` | `relevance` / `name` | `relevance` | Relevance ranks popular and fresh-capital investors first |
| `investorNames` | array | — | Look up specific investors by name; other filters are ignored |
| `resetHistory` | boolean | `false` | Forget everything delivered to your account so far, so earlier contacts can be returned (and billed) again |

```json
{
  "stages": ["Seed Round"],
  "industries": ["FinTech"],
  "geographies": ["United States"],
  "entityType": "firm",
  "emailRequired": true,
  "maxContacts": 100,
  "maxContactsPerInvestor": 3
}
```

### Output

One item per contact. This illustrative row matches the filters above; the name and email are fictional:

```json
{
  "searchRank": 1,
  "contactName": "Jane Partner",
  "contactEmail": "jane@example-ventures.com",
  "contactKind": "firm-contact",
  "contactRank": 0,
  "investorKey": "3f9a1c77b2e04d5a",
  "investorName": "Example Ventures",
  "entityType": "firm",
  "investorType": "Venture Capital",
  "description": "Example Ventures is an early-stage venture capital firm headquartered in San Francisco backing fintech and climate founders from pre-seed to Series A.",
  "stages": ["Seed Round", "Early stage VC"],
  "industries": ["FinTech", "Climate", "SaaS"],
  "geographies": ["United States", "Canada"],
  "sweetSpot": "$1,000,000",
  "sweetSpotUsd": 1000000,
  "linkedinUrl": "https://www.linkedin.com/company/example-ventures",
  "websiteUrl": "https://www.example-ventures.com",
  "twitterUrl": "https://twitter.com/examplevc",
  "angellistUrl": null,
  "facebookUrl": null,
  "popular": true,
  "freshCapital": true,
  "firmContactCount": 9,
  "firmEmailCount": 9
}
```

A run summary (`status` plus run statistics such as contacts returned) is saved to the key-value store as `OUTPUT`.

### Use cases

- [Find seed FinTech VC contacts](https://apify.com/capable_cauldron/ids-find-seed-fintech-vc-contacts) for a focused partner email list.
- [Find pre-seed climate investors](https://apify.com/capable_cauldron/ids-find-preseed-climate-investors) before your next fundraising round.
- [Find corporate AI investment teams](https://apify.com/capable_cauldron/ids-find-corporate-ai-investment-teams) and their named contacts.
- [Research HealthTech family offices](https://apify.com/capable_cauldron/ids-research-family-offices-in-healthtech) for partnership outreach.
- [Look up a named investor's team](https://apify.com/capable_cauldron/ids-look-up-a-named-investor-team) to review its partners and contact details.
- [Build an angel investor research list](https://apify.com/capable_cauldron/ids-build-an-angel-investor-research-list) with public profile links.

For larger CRM imports, raise `maxContacts` or run once per segment. Overlapping segments skip contacts already delivered to your account.

### API and integrations

Run it from your own code with the Apify API. Swap in your token; the Actor id stays as written.

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("capable_cauldron/investor-database-search").call(run_input={
    "stages": ["Seed Round"],
    "industries": ["FinTech"],
    "geographies": ["United States"],
    "maxContacts": 100,
})
for contact in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(contact["investorName"], contact["contactName"], contact["contactEmail"])
```

**JavaScript**

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });
const run = await client.actor("capable_cauldron/investor-database-search").call({
  stages: ["Seed Round"],
  industries: ["FinTech"],
  maxContacts: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**CLI**

```bash
echo '{"stages": ["Seed Round"], "industries": ["FinTech"]}' | apify call capable_cauldron/investor-database-search --silent --output-dataset
```

Connect results to **Google Sheets, HubSpot, Salesforce, Airtable, Slack, Make, Zapier or n8n** from the Actor's **Integrations** tab, run it on a **Schedule**, or fire a **webhook** when a run finishes.

### FAQ

#### Is it legal to use this investor data for outreach?

The data is business contact information for professional investors, compiled from public sources. You are responsible for complying with the anti-spam and data-protection laws that apply to you (CAN-SPAM, GDPR, PECR), including honoring opt-outs.

#### Where does the investor data come from?

From an investor database compiled from public sources: fund websites, regulatory filings, press announcements and professional profiles. Its last full sync was August 6, 2026.

#### Are the emails verified?

They are direct addresses on file for the named person. As with any contact database, a small share will bounce as people change firms. Run a verification step before large campaigns.

#### Why do angel investors have no email?

Individual angels are listed with their LinkedIn profile only. Firms come with named partners and their direct emails.

#### How many contacts can I get in one run?

As many as match your filters. The database holds 53,452 firm contacts with an email (about 37,700 of them are reachable at the default of 3 people per firm; raise **Max contacts per investor** for the rest), 61,505 firm contacts in total, and 172,849 once individual angels are included. Ask for more than match and you get everything that matches; you pay only for what you receive.

#### Will I be charged twice for the same contact?

No. The Actor keeps a record of every contact delivered to your Apify account and skips those people in later runs, even when the filters differ. If a firm you already have partners from matches again, you get its next people, not the same ones. Switch on **Forget my earlier runs** if you want a fresh copy of everything.

#### How is this different from scraping LinkedIn or Crunchbase?

No scraping happens at run time, so there are no rate limits to hit and no cookies to manage. The run finishes in seconds and returns emails, which LinkedIn never exposes.

#### Can I search the investor database with Python?

Yes. See the Python snippet under **API and integrations**. The `apify-client` package is on PyPI; pass the same input you would use in Console.

### Other Actors by capable_cauldron

| Actor | What it does |
|---|---|
| [LinkedIn Profile Posts Scraper](https://apify.com/capable_cauldron/linkedin-profile-posts-scraper) | Every post from any LinkedIn profile with 55 enriched fields, no cookies needed. Read an investor's recent posts before you reach out |
| [LinkedIn Comment Scraper](https://apify.com/capable_cauldron/linkedin-comment-scraper) | Comments and replies from any LinkedIn post, with commenter name, headline and profile URL |
| [Multi-Channel Ad Intelligence](https://apify.com/capable_cauldron/multi-channel-ad-intelligence) | Competitor ads from the Meta, Google, LinkedIn and TikTok ad libraries in one normalized dataset |
| [TikTok Shop USA Scraper](https://apify.com/capable_cauldron/tiktok-shop-usa-scraper) | TikTok Shop US products, shops, shoppable video stats and creator profiles in one run |
| [LinkedIn Post Comments Scraper](https://apify.com/capable_cauldron/linkedin-post-comments-scraper) | Comments, replies and everyone who reacted on any LinkedIn post, no cookies needed |

### Support

Found a problem or need a filter that is missing? Open an issue on the Actor's **Issues** tab. Issues are usually answered within 24 hours. If you need a custom version (bulk exports, extra enrichment, a private deployment), describe it in an issue and we will scope it.

# Actor input Schema

## `keywords` (type: `string`):

Free-text match against investor name and description (fuzzy). E.g. `fintech seed San Francisco`. Leave empty to filter by the fields below only.

## `investorTypes` (type: `array`):

Only return investors of these types. Empty = all types.

## `stages` (type: `array`):

Only return investors that invest at these stages. Empty = any stage.

## `industries` (type: `array`):

Only return investors focused on ANY of these industries. Empty = any industry.

## `geographies` (type: `array`):

Country, region or US state names, matched case-insensitively against the investor's geography focus (e.g. `United States`, `Europe`, `India`, `California`). Only ~5% of investors declare a geography, so this filter shrinks results a lot — combine with keywords for city-level targeting.

## `checkSizeMinUsd` (type: `integer`):

Only investors whose declared sweet-spot check size is at least this. Declared for ~2,800 investors only; leave empty to not filter.

## `checkSizeMaxUsd` (type: `integer`):

Only investors whose declared sweet-spot check size is at most this.

## `entityType` (type: `string`):

`firm` = funds/firms with named partner contacts and emails. `angel` = individual angel investors (LinkedIn, no email). `all` = both.

## `emailRequired` (type: `boolean`):

Skip contacts that have no email address. Angel investors never have an email on file, so turn this off when using entityType = angel or all.

## `popularOnly` (type: `boolean`):

Only investors flagged as popular / most-active in the source database.

## `freshCapitalOnly` (type: `boolean`):

Only investors that recently raised a new fund and are actively deploying.

## `maxContacts` (type: `integer`):

Leave empty for 100. Enter any number up to what the database holds: 53,452 firm contacts with an email, 61,505 firm contacts in total, 172,849 when angels are included. If your filters match fewer, you get every match and the run says so. Billed per contact returned: 100 = $5.00, 1,000 = $50.00.

## `skipPreviouslyDelivered` (type: `boolean`):

Never pay twice for the same person. The Actor remembers every contact it has delivered to your Apify account and skips them in later runs, whatever the filters. Turn off to allow repeats.

## `maxContactsPerInvestor` (type: `integer`):

Cap on people returned from any single firm, so one large fund cannot use up the whole run. Set higher when looking up specific investors.

## `sortBy` (type: `string`):

`relevance` ranks popular and fresh-capital investors first, then investors with the most contacts. `name` is alphabetical by investor.

## `investorNames` (type: `array`):

Exact or partial investor/firm names. When set, every other filter except `emailRequired` and `maxContacts` is ignored.

## `resetHistory` (type: `boolean`):

Wipe the memory of contacts already delivered to your account before this run, so previously delivered people can be returned (and billed) again.

## Actor input object example

```json
{
  "keywords": "climate seed",
  "investorTypes": [],
  "stages": [],
  "industries": [],
  "geographies": [],
  "entityType": "firm",
  "emailRequired": true,
  "popularOnly": false,
  "freshCapitalOnly": false,
  "maxContacts": 100,
  "skipPreviouslyDelivered": true,
  "maxContactsPerInvestor": 3,
  "sortBy": "relevance",
  "investorNames": [],
  "resetHistory": false
}
```

# Actor output Schema

## `contacts` (type: `string`):

One item per contact: person, email, investor profile, stages, industries, geographies, check size, social links.

## `runSummary` (type: `string`):

Status, contact and investor counts, active filters, and categorised error counters.

# 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 = {
    "keywords": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("capable_cauldron/investor-database-search").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 = { "keywords": "" }

# Run the Actor and wait for it to finish
run = client.actor("capable_cauldron/investor-database-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": ""
}' |
apify call capable_cauldron/investor-database-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,capable_cauldron/investor-database-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NEPrw04PvfhCULYiF/builds/Qdfz8rdt4WVmGfpLs/openapi.json
