# B2B Company Data API - Firmographics, Financials and Contacts (`nabeelbaghoor/b2b-company-data-api`) Actor

Search B2B company data by country, industry, employees and turnover, and export firmographic records - name, registration number, website, phone, email, address, size, status and industry. Pay per result. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/b2b-company-data-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

$12.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

## B2B Company Data API - firmographics, financials and contacts

**B2B Company Data API** turns a global business dataset into a clean, structured export. Search companies by country, industry, employee count and turnover, and export firmographic records - name, registration number, website, phone, email, address, size, status and industry - as JSON, CSV or Excel.

Bring your own API token and pay only for the records you keep.

### Why use this actor?

- **Firmographic prospecting** - filter a large company universe by country, region, industry, size and turnover.
- **Registration data** - each record can carry registration number, legal status, size and full address.
- **Contact fields** - company website, phone and email where available.
- **Industry codes** - filter by NACE and ISIC classifications, or by industry keywords.
- **Advanced filters** - use simple fields for common cases, or pass a raw filters object for full control over status, legal form and more.
- **Pay per result** - you are charged only for the company records actually returned, up to 5,000 per run.

### Use cases

- **Lead generation** - build target account lists filtered by geography, industry and size.
- **Market research** - map a sector and segment companies by turnover or headcount.
- **CRM enrichment** - append registration numbers, addresses and industry codes to your accounts.
- **Supplier and partner discovery** - find companies matching precise firmographic criteria.
- **Risk and compliance** - screen counterparties by country, status and registration data.

### Input

Configure everything from the visual editor - every filter is a proper field, no code needed. Example JSON input:

```json
{
  "countryCode": "gb",
  "industryFocus": ["Software"],
  "employeesMin": 50,
  "employeesMax": 500,
  "maxResults": 100,
  "apiKey": "YOUR_API_TOKEN"
}
```

For filters beyond the built-in fields, pass a raw filters object:

```json
{
  "rawFilters": {
    "location_countries": ["gb", "ie"],
    "company_status": [1],
    "financial_turnover": { "gte": 1000000, "lte": 50000000, "currency": "GBP" }
  },
  "maxResults": 250,
  "apiKey": "YOUR_API_TOKEN"
}
```

### Output

One clean JSON object per company:

```json
{
  "id": "123456",
  "name": "Acme Trading Ltd",
  "registration_number": "01234567",
  "country_code": "gb",
  "company_website": "https://acme.com",
  "company_phone": ["+44 20 1234 5678"],
  "company_email": ["info@acme.com"],
  "address_street": "1 Example Street",
  "address_city": "London",
  "zip_code": "EC1A 1AA",
  "size": "51-200",
  "status": "Active",
  "industry": [{ "type": "SIC", "value": "62012" }]
}
```

### Do I need an API key?

Yes. This actor calls a B2B company data API on your behalf, which requires your own **API token**. Get a token from the provider, paste it into the input, and run. Your token is stored securely and never logged.

### Pay per result

You pay only for the company records the actor actually returns - no subscriptions, no minimums. Set **Maximum results** to cap each run's spend exactly.

### FAQ

#### What is the B2B Company Data API?

It is a company data API backed by a global business database. It lets you search companies by firmographics - country, industry, employee count, turnover and more - and returns structured records including registration number, website, phone, email, address, size, status and industry. This actor runs that search and exports the matches as JSON, CSV or Excel.

#### What filters can I use?

Built-in fields for company name, country, location countries and regions, industry focus, NACE and ISIC codes, website, employee range and turnover range. For status, legal form and other coded filters, pass a raw filters object in the Advanced field using the API's documented keys and ID values.

#### What contact data is included?

Where available, each record carries the company website, one or more phone numbers and one or more company email addresses, alongside the registered address.

#### How many results can I get per run?

Up to 5,000 company records per run, paged automatically at 50 per page. For larger universes, split the search by country, industry or size band across multiple runs.

#### How much does it cost?

Pricing is pay-per-result: a small fixed amount per company record returned, plus standard Apify platform usage, plus your own API usage against your token. A run that returns nothing costs almost nothing.

#### Can I run this on a schedule?

Yes. Use Apify Schedules to run it daily or weekly and connect the dataset to Zapier, Make, n8n, webhooks or the API to push new accounts into your CRM or data warehouse.

#### Is this legal?

The actor returns company-level business data retrieved through a licensed API using your own credentials. It focuses on company firmographics and business contact data, not personal data.

### Keyword map

b2b company data api, company data api, firmographics api, company search api, business data api, company registration data, lead generation api, company enrichment api, nace industry api, turnover data api, company contact data, prospecting api.

### Support and feedback

Found an issue or missing a filter? Open an issue in the **Issues** tab - it is monitored daily.

# Actor input Schema

## `name` (type: `string`):

Filter to companies matching this name.

## `countryCode` (type: `string`):

Primary country by ISO 3166-1 alpha-2 code, e.g. `gb`, `us`, `de`.

## `locationCountries` (type: `array`):

Filter by one or more location countries (ISO alpha-2 codes). Combined as OR.

## `locationRegions` (type: `array`):

Filter by one or more regions / states / counties. Combined as OR.

## `industryFocus` (type: `array`):

Filter by industry keywords, e.g. `Software`, `Construction`. Combined as OR.

## `nace` (type: `array`):

Filter by NACE classification codes, e.g. `62.01`. Combined as OR.

## `isic` (type: `array`):

Filter by ISIC classification codes. Combined as OR.

## `website` (type: `string`):

Filter to a company by website domain.

## `employeesMin` (type: `integer`):

Lower bound on number of employees.

## `employeesMax` (type: `integer`):

Upper bound on number of employees.

## `turnoverMin` (type: `integer`):

Lower bound on annual turnover / revenue (in the currency below).

## `turnoverMax` (type: `integer`):

Upper bound on annual turnover / revenue.

## `turnoverCurrency` (type: `string`):

Currency for the turnover range, e.g. `USD`, `EUR`, `GBP`. Defaults to USD.

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

Power users: a raw filters object merged into the request body, e.g. `{ "company_status": [1], "legal_form": [2] }`. Keys set here override the fields above. See the API's prospecting documentation for all supported keys and ID values.

## `startPage` (type: `integer`):

1-based page to start from. Increase to skip earlier results.

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

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

## `apiKey` (type: `string`):

Your B2B company data API token. Required. Obtain a token from the provider. Stored securely and never logged.

## Actor input object example

```json
{
  "startPage": 1,
  "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/b2b-company-data-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/b2b-company-data-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/b2b-company-data-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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