# Growth Company Search API - Private Company Data Search (`nabeelbaghoor/growth-company-search-api`) Actor

Search private and growth companies by keywords, industry, employee count, location, founding year, growth rate and funding, and export firmographic data and signals. Pay per result. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/growth-company-search-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Business, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$15.00 / 1,000 company results

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Growth Company Search API - Private Company Data Search

Find and export private and growth companies with rich firmographics and growth signals. Search by keywords, industry, location, employee count, founding year, headcount growth rate, funding raised and more, then stream clean, structured company records straight to a dataset. You pay only for the records you actually receive.

This actor is built for sourcing, market mapping, competitive research, deal origination and lead generation on private and venture-backed companies that are hard to find in generic public-company databases.

### What you can do with it

- Build target lists of private companies that match an exact firmographic profile.
- Map an industry or end market and see who is growing fastest.
- Screen for companies by funding stage, total capital raised and headcount growth.
- Enrich a market map with employee counts, hiring signals, social profiles and investors.
- Export everything as JSON, CSV or Excel, or push it into your CRM or data warehouse.

### Features

- Keyword and semantic search across company names, descriptions and web text.
- Firmographic filters: industry, specialty, company type, location (country, state, city).
- Size and age filters: current employee count, employee-size ranges, founding year.
- Growth and funding filters: headcount growth rate, total capital raised, investment types.
- Signal filters: products and services, end markets, contacts available, out-of-business exclusion.
- Growth metrics on every record: 3, 6, 12 and 24 month and all-time headcount growth rates plus current open job count.
- Funding data: total amount invested and investor list where available.
- Automatic offset-based pagination up to your chosen maximum.
- Pay-per-result pricing with a hard result cap so a run can never surprise you.

### Input

Configure a run with these fields. Every field is optional; combine a search text with as many filters as you like to narrow the result set.

| Field | Type | Description |
| --- | --- | --- |
| `searchText` | string | Free-text keywords across names, descriptions and web text. |
| `industries` | string | Comma-separated industries to match. |
| `specialty` | string | A single specialty or capability. |
| `locationCountry` / `locationState` / `locationCity` | string | Location filter parts, combined into one location. |
| `foundingYearFrom` / `foundingYearTo` | integer | Founding-year range. |
| `employeeCountFrom` / `employeeCountTo` | integer | Current employee-count range. |
| `employeeRanges` | string | Comma-separated employee-size buckets, e.g. `11-50, 51-200`. |
| `growthRateFrom` / `growthRateTo` | number | Headcount growth-rate range, as a percentage. |
| `totalRaisedFrom` / `totalRaisedTo` | number | Total funding raised range, in USD. |
| `companyTypes` | string | Comma-separated company types. |
| `investmentTypes` | string | Comma-separated funding-round or investment types. |
| `includeProductsAndServices` | string | Comma-separated products or services offered. |
| `includeEndMarkets` | string | Comma-separated end markets served. |
| `onlyWithContacts` | boolean | Return only companies with contact records. |
| `includeOutOfBusiness` | boolean | Include out-of-business companies. |
| `aiSearch` | boolean | Interpret the search text semantically. |
| `rawFilters` | object | Advanced JSON filter object merged over the fields above. |
| `maxResults` | integer | Stop after this many records (1 to 5,000). |
| `clientId` | string | Your OAuth2 client ID. Required. |
| `clientSecret` | string | Your OAuth2 client secret. Required, stored securely. |
| `username` / `password` | string | Only for accounts that use the password grant. |

#### Advanced raw filters

Filters that are not exposed as dedicated fields can be passed through `rawFilters` as a JSON object, merged over the built-in filters verbatim. For example:

```json
{
  "jobCount": { "from": 5 },
  "latestValuation": { "from": 50000000 },
  "recentRaised": { "from": 1000000 },
  "excludeEndMarkets": ["Defense"]
}
```

### Example output

Each dataset item is one company. Fields are populated where the provider has data:

```json
{
  "id": "123456",
  "name": "Acme Robotics Inc.",
  "informalName": "Acme Robotics",
  "companyType": "Private",
  "website": "https://www.acmerobotics.com",
  "domain": "acmerobotics.com",
  "description": "Warehouse automation robots for mid-market distributors.",
  "foundingYear": 2017,
  "address": "Austin, TX, United States",
  "phoneNumber": "+1 512-555-0100",
  "specialties": ["warehouse automation", "computer vision"],
  "linkedIn": "https://www.linkedin.com/company/acme-robotics",
  "totalAmountInvested": 42000000,
  "currentEmployeeCount": 180,
  "currentEmployeeRange": "51-200",
  "currentJobOpenings": 14,
  "threeMonthsGrowthRate": 6.4,
  "twelveMonthsGrowthRate": 38.2,
  "allTimeGrowthRate": 210.5,
  "growthIntent": "High",
  "investors": ["Example Ventures", "Growth Capital Partners"],
  "industries": ["Robotics", "Supply Chain"],
  "endMarkets": ["Logistics", "Retail"],
  "productsAndServices": ["Autonomous mobile robots", "Fleet software"],
  "modifiedDate": "2026-06-30T00:00:00Z"
}
```

### Pricing and the credit model

This actor uses pay-per-result pricing. You are charged a fixed price for each company record delivered to the dataset, and nothing for a run that returns no matches. Set `maxResults` to cap how many records a run can collect, and set a run spending limit as a second safety net. When the spending limit is reached the run stops early and keeps whatever it has already saved.

### Bring your own API key

This actor connects to a third-party private-company data provider (SourceScrub) on your behalf and requires your own provider OAuth2 client credentials. Enter your `clientId` and `clientSecret` (and, if your account uses the password grant, a `username` and `password`) in the input. These credentials are enterprise-provisioned by the data provider; the actor never ships with or shares credentials, and your secret and password are stored securely and never logged.

### Frequently asked questions

#### What kinds of companies does this cover?

Private and growth-stage companies, including venture-backed and bootstrapped businesses that are often missing from public-company databases. You can filter by industry, size, location, age, funding and growth.

#### How do I get credentials?

The underlying data API uses OAuth2 client credentials that are provisioned by the data provider for your organization. They are enterprise-provisioned rather than self-serve. Once you have a client ID and secret, paste them into the actor input.

#### Which OAuth2 grant does it use?

The actor mints an access token before each run. If you supply a username and password it uses the password grant; otherwise it uses the client-credentials grant. The token is cached for the run and refreshed automatically if it expires.

#### Is the data API stable?

The underlying data endpoint is on a pre-release v2 API and its request and response shapes may change over time. The actor reads results defensively and keeps the raw provider fields on every record, but you should validate the output against your own credentials before depending on it in production.

#### How does pagination work?

Results are paged automatically using offset-based pagination at 100 records per page, until your `maxResults` is reached or the provider returns no more matches.

#### How am I charged?

You pay a fixed price per company record returned to the dataset. A run that matches nothing costs nothing. Use `maxResults` and the run spending limit to control cost.

#### Can I filter on fields that are not shown in the form?

Yes. Use the advanced `rawFilters` JSON object to pass any additional filter fields, which are merged over the built-in filters.

#### What output formats are available?

The dataset can be exported as JSON, CSV, Excel, HTML or RSS, or read through the API for pushing into a CRM or warehouse.

### Keyword map

private company data, growth company search, company firmographics, private company database, company enrichment, headcount growth signals, employee count data, company funding data, total raised, investment rounds, industry search, end market search, company lookup by location, venture-backed companies, deal sourcing, market mapping, lead generation, prospecting data, company intelligence, growth signals.

# Actor input Schema

## `searchText` (type: `string`):

Free-text keywords to search across company names, descriptions and web text, e.g. `industrial automation` or `plant-based food`. Combined with the filters below.

## `industries` (type: `string`):

Comma-separated list of industries to match, e.g. `Software, Healthcare, Manufacturing`. Companies matching any listed industry are returned.

## `specialty` (type: `string`):

A single specialty or capability to match, e.g. `machine learning` or `cold chain logistics`.

## `locationCountry` (type: `string`):

Restrict to companies in this country, e.g. `United States`, `Germany`. Combined with the state and city below into one location filter.

## `locationState` (type: `string`):

Restrict to companies in this state or region, e.g. `California`, `Bavaria`.

## `locationCity` (type: `string`):

Restrict to companies in this city, e.g. `Austin`, `London`.

## `foundingYearFrom` (type: `integer`):

Only companies founded in or after this year, e.g. `2015`.

## `foundingYearTo` (type: `integer`):

Only companies founded in or before this year, e.g. `2024`.

## `employeeCountFrom` (type: `integer`):

Only companies with at least this many current employees, e.g. `10`.

## `employeeCountTo` (type: `integer`):

Only companies with at most this many current employees, e.g. `500`.

## `employeeRanges` (type: `string`):

Comma-separated employee-size buckets to match, e.g. `11-50, 51-200`. An alternative to the exact min/max above.

## `growthRateFrom` (type: `number`):

Only companies with a headcount growth rate at or above this value (as a percentage, e.g. `20` for 20%).

## `growthRateTo` (type: `number`):

Only companies with a headcount growth rate at or below this value (as a percentage).

## `totalRaisedFrom` (type: `number`):

Only companies that have raised at least this much total funding, in USD, e.g. `1000000`.

## `totalRaisedTo` (type: `number`):

Only companies that have raised at most this much total funding, in USD.

## `companyTypes` (type: `string`):

Comma-separated company types to match, e.g. `Private, Venture Capital-Backed`.

## `investmentTypes` (type: `string`):

Comma-separated investment or funding-round types to match, e.g. `Seed, Series A, Private Equity`.

## `includeProductsAndServices` (type: `string`):

Comma-separated products or services the company must offer, e.g. `SaaS, hardware, consulting`.

## `includeEndMarkets` (type: `string`):

Comma-separated end markets the company must serve, e.g. `Automotive, Retail, Healthcare`.

## `onlyWithContacts` (type: `boolean`):

When enabled, return only companies that have contact records available.

## `includeOutOfBusiness` (type: `boolean`):

When enabled, include companies flagged as out of business. Off by default.

## `aiSearch` (type: `boolean`):

When enabled, interpret the search text semantically rather than as an exact keyword match.

## `rawFilters` (type: `object`):

Power users: a JSON object of raw CompanyFilters fields merged over the filters above, verbatim. Use this for filters not exposed as fields, e.g. `{ "jobCount": { "from": 5 }, "latestValuation": { "from": 50000000 }, "excludeEndMarkets": ["Defense"] }`.

## `maxResults` (type: `integer`):

Stop after this many company records (1-5,000). Paged automatically at 100 per page. You are charged per result returned.

## `clientId` (type: `string`):

Your OAuth2 client ID, provisioned by the data provider for your organization. Required. Used with the Client secret below to obtain a short-lived access token.

## `clientSecret` (type: `string`):

Your OAuth2 client secret. Required. Stored securely and never logged.

## `username` (type: `string`):

Optional. Provide a username and password only if your account uses the password grant. Leave both blank to use the client-credentials grant.

## `password` (type: `string`):

Optional. Your account password, used only with the username above for the password grant. Stored securely and never logged.

## Actor input object example

```json
{
  "onlyWithContacts": false,
  "includeOutOfBusiness": false,
  "aiSearch": false,
  "maxResults": 100
}
```

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

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/growth-company-search-api").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 = { "maxResults": 100 }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/growth-company-search-api").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxResults": 100
}' |
apify call nabeelbaghoor/growth-company-search-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nabeelbaghoor/growth-company-search-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6tQgdNhwxwqkOXTx5/builds/g8ohq5UVtafarVlLA/openapi.json
