# Global Company Database API - Worldwide Firmographics Data (`nabeelbaghoor/global-company-database-api`) Actor

Search a worldwide company database covering more than 200 countries by industry code, location, employee count, sales volume, registration number and corporate parent. Returns firmographics, contacts, map coordinates and group linkage. Pay per result. Bring your own API key.

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

## Global Company Database API - Worldwide Firmographics Data

Search a worldwide company database covering more than 200 countries and export the matches as clean rows, with firmographics, contact details, map coordinates and corporate group linkage in the same record. Filter by country, city, province, region, postal code, a radius around a map point, four parallel industry classifications including NACE, employee count, sales volume, founding year, legal form, national registration number and the country of the corporate parent. You pay only for the companies you actually receive.

This actor is built for international account list building, market sizing in countries where registry data is hard to reach, supplier and distributor discovery, local business mapping, and enriching a CRM with registry-sourced firmographics outside the usual English-speaking markets.

### What you can do with it

- Build a company list in almost any country, not just the United States and the United Kingdom.
- Find every local subsidiary of a foreign group by filtering on the parent company's country.
- Search a circle: a latitude, a longitude and a radius in metres, for territory planning and field sales routing.
- Require the fields you actually need, so a list built for calling only contains records that carry a phone number.
- Target companies by what their website runs: online shop, payment, digital marketing and detected technology tags.
- Filter on registry facts other databases do not carry: legal form, national registration number, whether that number is also a VAT number, and import or export agent status.
- Export everything as JSON, CSV or Excel, or push it into a CRM or warehouse.

### Features

- Every documented search field is a real input field, grouped into company, location, industry, size, legal, required data points, web presence, deduplication and search behaviour.
- The provider's two-phase saved search is handled for you: the actor submits the filter set, reads the match count, then walks the record pages against that saved search.
- The three-state presence filters are exposed as dropdowns rather than checkboxes, because the provider models website and registration-number presence as ignore, must have, or must not have, not as a simple yes.
- The data-set selector is sent as a valid enum value, never as zero, which is the value that makes the provider's own serialiser fail.
- Four parallel industry classifications are supported side by side: international, NACE, the provider's directory categories and country-specific local categories, plus keyword matching when you do not have a code to hand.
- Category columns are collapsed for you. The provider returns categories as numbered columns, up to ten for directory categories and fifteen for local ones, and the actor turns each set into one clean list of code and label pairs.
- Corporate linkage is flattened into parent, domestic ultimate and global ultimate blocks, so group structure is readable without digging into nested objects.
- Deduplication can be pushed down to the provider, on phone, email, website, web domain, mobile, contact number or registration number, so duplicates are removed before you are charged rather than after.
- Filed financial history is kept intact where the provider has it, alongside the current sales volume in local currency, dollars and euros.
- Page pagination is walked automatically and stops on a short page or on the reported total.
- Duplicate companies are removed across pages, keyed on record id then registration number then domain then name, before anything is charged.
- The untouched provider payload is kept under `raw`, so nothing is lost.
- Rate limits are handled with retry-after aware backoff, and a run that hits a limit keeps everything already collected.
- Pay-per-result pricing with a hard result cap so a run can never surprise you.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `businessNames` | array | Business names to match. |
| `who` / `where` | string | Free-text name-or-category box and free-text location box. |
| `websites` / `emails` / `phoneNumbers` / `nationalIds` | array | Match on a known contact point or registration number. |
| `countryCodes` | array | Two-letter ISO country codes. |
| `cityNames` / `provinceNames` / `regionNames` / `postCodes` | array | Location filters by name or postal code. |
| `cityCodes` / `provinceCodes` / `regionCodes` | array | Location filters by the provider's own codes. |
| `centerLatitude` / `centerLongitude` / `radiusMeters` | string, string, integer | Circle search around a map point. Radius is in metres. |
| `internationalCodes` / `naceCodes` / `infobelCodes` / `localCodes` | array | Four parallel industry classifications. |
| `categoryKeywords` | array | Match categories by keyword instead of by code. |
| `minEmployeesTotal` / `maxEmployeesTotal` | integer | Headcount range for the whole company. |
| `minEmployeesHere` / `maxEmployeesHere` | integer | Headcount range for the individual location. |
| `minSalesVolume` / `maxSalesVolume` | integer | Sales range, in the chosen currency. |
| `salesVolumeCurrency` | string | Local currency, US dollars or euros. |
| `minYearStarted` / `maxYearStarted` | integer | Founding year range. |
| `legalStatusCodes` / `nationalIdentificationTypeCodes` / `isVat` | array, array, boolean | Registration and legal form filters. |
| `locationStatus` | array | Single location, headquarters or branch. |
| `globalUltimateCountryCodes` / `parentUniqueIds` | array | Corporate parent filters. |
| `hasPhone` / `hasEmail` / `hasMobile` / `hasCoordinates` and more | boolean | Require a record to carry a given field. |
| `hasWebsite` / `hasNationalId` | string | Three-state presence: ignore, must have, must not have. |
| `technographicalTags` / `hasEShop` / `hasPayment` | array, boolean | Website and technology filters. |
| `dedupePhone` / `dedupeEmail` / `dedupeWebDomain` and more | boolean | Collapse duplicates at the provider before charging. |
| `dataType` | string | Business database, yellow pages or white pages. |
| `matchAnyFilter` | boolean | Combine inclusive filters with OR rather than AND. |
| `sortingOrder` | array | Sort by relevance, name, sales, employees, year started and more. |
| `rawFilters` | object | Any extra search field, merged last. |
| `maxResults` | integer | Stop after this many companies (1 to 50,000). |
| `pageSize` | integer | Companies per API call (1 to 50). |
| `apiKey` | string | An access token you already hold. Stored securely. |
| `username` / `password` | string | Account login, used to request a token when no token is given. |

At least one filter is required.

### Example output

Each dataset item is one company. Fields are populated where the provider has data, and the untouched payload is kept under `raw`:

```json
{
  "uniqueId": "BE0000123456",
  "businessName": "Example Trading",
  "tradeName": "Example",
  "website": "https://www.example.be",
  "domain": "example.be",
  "email": "info@example.be",
  "phone": "+32 2 123 45 67",
  "mobile": null,
  "addressStreet": "Rue de l'Exemple",
  "houseNumber": "42",
  "postCode": "1000",
  "city": "Brussels",
  "province": "Brussels",
  "region": "Brussels",
  "country": "Belgium",
  "countryCode": "BE",
  "latitude": 50.8503,
  "longitude": 4.3517,
  "geoLevel": 3,
  "geoLevelDescription": "Street Segment Interpolated",
  "nationalId": "0123456789",
  "nationalIdIsVat": true,
  "legalStatus": "Corporation",
  "status": "HQ",
  "yearStarted": 1998,
  "employeesHere": 34,
  "employeesTotal": 120,
  "salesVolume": 18500000,
  "salesVolumeEuros": 18500000,
  "currency": "EUR",
  "ceoName": "A. Example",
  "ceoTitle": "Managing Director",
  "internationalCategories": [{ "code": "017116", "label": "Software Publishers" }],
  "naceCategories": [{ "code": "62010", "label": "Computer programming activities" }],
  "parentLinkage": null,
  "globalLinkage": {
    "uniqueId": "NL0000987654",
    "businessName": "Example Group",
    "city": "Amsterdam",
    "countryCode": "NL"
  },
  "financialHistory": [{ "yearStat": 2025, "salesVolume": 18500000, "employeesHere": 34 }],
  "socialLinks": ["https://www.linkedin.com/company/example-trading"],
  "logo": "https://logos.example-provider.com/example.be.png",
  "raw": { "uniqueID": "BE0000123456", "businessName": "Example Trading" }
}
```

### Pricing and the credit model

This actor uses pay-per-result pricing. You are charged a fixed price for each company delivered to the dataset, after duplicates are removed. A search that matches nothing costs nothing. Set `maxResults` to cap how many rows a run can collect, and set a run spending limit as a second safety net.

Your own provider plan meters separately. Because the provider charges for records extracted from a saved search, use the required-data-point filters and the deduplication options to narrow the result set before extraction rather than filtering the rows afterwards.

### Bring your own API key

This actor connects to a third-party global company data provider (InfobelPRO) on your behalf and requires your own provider credentials. You can supply them two ways: paste an access token you already hold into the `apiKey` field, or fill in the account `username` and `password` and the actor will request a token for you. Credentials are stored securely and never logged, and the actor never ships with or shares credentials.

### Frequently asked questions

#### What data does this actor return?

Record id, business name, company name and trade name, website with a normalised domain, email, phone, mobile and fax, the full street address split into street, house number, postal code, city, province, region and country, latitude and longitude with the geocoding precision level, national registration number and whether it doubles as a VAT number, legal form, location status, founding year, employees at the location and in total, sales volume in local currency along with dollar and euro conversions, the registered executive's name and title, four sets of industry categories, import and export agent status, website status and crawl date, detected social links and logo, opening hours and building details, corporate linkage to the direct parent and the domestic and global ultimate parents, and filed financial history. Every record also carries the untouched provider payload.

#### Which countries does it cover?

More than 200. This is the reason to reach for this API rather than a United States focused database: it carries registry-sourced records for markets where most B2B databases are thin, and it uses one schema across all of them, so a record from one country has the same field names as a record from another.

#### How do the four industry classifications differ?

International categories are the provider's default cross-border scheme. NACE codes are the European statistical classification, exposed by the provider as its alternate international categories. Directory categories are the provider's own taxonomy, which is the most granular. Local categories are country-specific and differ per country, so a local code from one country means nothing in another. If you do not have a code, use `categoryKeywords` instead and match by keyword.

#### Why is website presence a dropdown instead of a checkbox?

Because the provider models it as three states, not two: ignore the field entirely, require that a website exists, or require that none exists. That third state is genuinely useful, since companies with no web presence are a real segment for web design and digital agencies. The registration-number filter works the same way.

#### What is the radius search measured in?

Metres. Set `centerLatitude`, `centerLongitude` and `radiusMeters` together, and only records inside that circle are returned. A five kilometre radius is 5000, not 5.

#### How does deduplication work?

The provider can collapse duplicates while the search runs, keeping the best record from each group. Each option requires its matching presence filter to be set as well, so deduplicating on email also needs the email filter turned on. Doing it this way means duplicates never reach your dataset and are never charged for. The actor also deduplicates across pages on its own, keyed on record id then registration number then domain then name.

#### What is the difference between employees here and employees total?

Employees here counts the people at that individual location. Employees total counts the whole company across every location. A branch of a large group will show a small number for the first and a large one for the second, which is exactly how you tell a branch office from a headquarters.

#### Can I find subsidiaries of foreign companies?

Yes. Filter on `globalUltimateCountryCodes` to get every company in your target country whose ultimate parent sits in another one. You can also pass a specific parent's record id to `globalUltimateUniqueIds`, `parentUniqueIds` or `domesticUltimateUniqueIds` to pull that group's members directly.

#### What does the geocoding precision level mean?

It records how the coordinates were derived, for example an interpolated point along a street segment rather than a surveyed rooftop. Filter on it when the coordinates drive routing or territory assignment and a street-level approximation is not good enough.

#### How does the actor handle rate limits?

It throttles requests, honours the retry-after signal on a rate-limited response, and backs off exponentially. A response saying the account is out of credits or is not licensed for a country stops the run early and keeps everything already collected.

#### How am I charged?

You pay a fixed price per company returned to the dataset. Duplicates are removed before charging and empty runs cost nothing. Use `maxResults` and the run spending limit to control cost.

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

global company database api, international company data api, worldwide business directory api, company firmographics api, nace code company search, european company data api, business registry data api, company registration number lookup, vat number company data, international b2b data api, company data by country, local business data api, radius search business api, geocoded company data, corporate group structure api, parent company subsidiary data, company sales volume data, employee count company database, international lead generation data, b2b prospecting api worldwide.

# Actor input Schema

## `businessNames` (type: `array`):

Business names to match.

## `who` (type: `string`):

One free-text box matching business name, category or phone at once, the way a directory search box works.

## `where` (type: `string`):

One free-text location box matching city name and postal code at once.

## `tryAnyLocationMatch` (type: `boolean`):

When the Where box does not resolve to an exact location, fall back to any location that partially matches.

## `websites` (type: `array`):

Website addresses to match.

## `emails` (type: `array`):

Email addresses to match.

## `phoneNumbers` (type: `array`):

Phone numbers to match.

## `nationalIds` (type: `array`):

National company registration numbers to match. In many countries this is also the VAT number.

## `uniqueIds` (type: `array`):

Look up specific records by the provider's own record id. Up to 50,000 values.

## `businessNamesExclude` (type: `array`):

Business names to leave out of the results.

## `ceoName` (type: `string`):

Match on the name of the company's registered executive.

## `ceoTitle` (type: `string`):

Match on the title of the company's registered executive.

## `countryCodes` (type: `array`):

Two-letter ISO country codes. Leave empty to search every country the account is licensed for.

## `cityNames` (type: `array`):

Cities to match, by name.

## `provinceNames` (type: `array`):

Provinces to match, by name.

## `regionNames` (type: `array`):

Regions to match, by name.

## `postCodes` (type: `array`):

Postal codes to match.

## `cityCodes` (type: `array`):

Cities to match, by the provider's city code.

## `provinceCodes` (type: `array`):

Provinces to match, by the provider's province code.

## `regionCodes` (type: `array`):

Regions to match, by the provider's region code.

## `postCodesExclude` (type: `array`):

Postal codes to leave out of the results.

## `streetAddress` (type: `string`):

Match on the street name.

## `houseNumber` (type: `string`):

Match on the house number.

## `centerLatitude` (type: `string`):

Latitude of the centre point for a radius search. Set all three circle fields together.

## `centerLongitude` (type: `string`):

Longitude of the centre point for a radius search.

## `radiusMeters` (type: `integer`):

Return only records inside this radius of the centre point. The provider reads this in metres, not kilometres or miles.

## `internationalCodes` (type: `array`):

The provider's international category codes. This is the default classification.

## `naceCodes` (type: `array`):

NACE classification codes, which the provider exposes as its alternate international categories.

## `infobelCodes` (type: `array`):

The provider's own directory category codes.

## `localCodes` (type: `array`):

Country-specific local category codes. These differ per country.

## `categoryKeywords` (type: `array`):

Match categories by keyword instead of by code, when you do not have the code to hand.

## `restrictToMainCategory` (type: `boolean`):

Match category filters against the company's primary category only, rather than any of its categories.

## `internationalCodesExclude` (type: `array`):

International category codes to leave out of the results.

## `minEmployeesTotal` (type: `integer`):

Only companies with at least this many employees across the whole company.

## `maxEmployeesTotal` (type: `integer`):

Only companies with at most this many employees across the whole company.

## `minEmployeesHere` (type: `integer`):

Only companies with at least this many employees at the individual location.

## `maxEmployeesHere` (type: `integer`):

Only companies with at most this many employees at the individual location.

## `minSalesVolume` (type: `integer`):

Only companies with at least this much annual sales, in the currency chosen below.

## `maxSalesVolume` (type: `integer`):

Only companies with at most this much annual sales, in the currency chosen below.

## `salesVolumeCurrency` (type: `string`):

Which currency the sales volume filters are expressed in. Local means each company's own reporting currency.

## `minYearStarted` (type: `integer`):

Only companies started in or after this year.

## `maxYearStarted` (type: `integer`):

Only companies started in or before this year.

## `minFamilyMembers` (type: `integer`):

Only companies whose corporate family has at least this many members.

## `maxFamilyMembers` (type: `integer`):

Only companies whose corporate family has at most this many members.

## `legalStatusCodes` (type: `array`):

Legal form codes to include, for example the code for a corporation. Pull valid values from the provider's legal status reference endpoint.

## `nationalIdentificationTypeCodes` (type: `array`):

Which kind of national registration number a record must carry.

## `isVat` (type: `boolean`):

Only companies whose national registration number is also a VAT number.

## `locationStatus` (type: `array`):

Whether the record is a single-location business, a headquarters or a branch.

## `importExportAgentCodes` (type: `array`):

Filter on whether a company acts as an importer, an exporter or both.

## `globalUltimateCountryCodes` (type: `array`):

Two-letter ISO country codes of the global ultimate parent, for finding local subsidiaries of foreign groups.

## `globalUltimateUniqueIds` (type: `array`):

Return every company under these global ultimate parents.

## `parentUniqueIds` (type: `array`):

Return every company whose immediate parent is one of these records.

## `domesticUltimateUniqueIds` (type: `array`):

Return every company under these domestic ultimate parents.

## `hasPhone` (type: `boolean`):

Only records that carry a phone number.

## `hasEmail` (type: `boolean`):

Only records that carry an email address.

## `hasMobile` (type: `boolean`):

Only records that carry a mobile number.

## `hasFax` (type: `boolean`):

Only records that carry a fax number.

## `hasContact` (type: `boolean`):

Only records with either a phone or a mobile number. The provider rejects this if the phone and mobile filters are also set.

## `hasWebContact` (type: `boolean`):

Only records with either a website or an email address. The provider rejects this if the website and email filters are also set.

## `hasWebsite` (type: `string`):

Three-state filter: ignore websites, require one, or require that there is none.

## `hasNationalId` (type: `string`):

Three-state filter for the national registration number.

## `hasAddress` (type: `boolean`):

Only records that carry a street address.

## `hasCoordinates` (type: `boolean`):

Only records that carry latitude and longitude, so they can be plotted on a map.

## `hasLinkedIn` (type: `boolean`):

Only records that carry a LinkedIn link.

## `hasLogo` (type: `boolean`):

Only records that carry a logo image link.

## `hasAdmin` (type: `boolean`):

Only records that carry a named administrator or executive.

## `hasMarketability` (type: `boolean`):

Only records the provider flags as marketable.

## `hasBuildingGeometry` (type: `boolean`):

Only records that carry building footprint geometry.

## `filterOnDoNotCallMe` (type: `boolean`):

Drop every record listed in the do-not-call register. The provider supports this for Belgium only.

## `technographicalTags` (type: `array`):

Technologies detected on the company website. Pull valid values from the provider's technographic tag reference endpoint.

## `hasEShop` (type: `boolean`):

Only companies whose website was detected as running an online shop.

## `hasPayment` (type: `boolean`):

Only companies whose website was detected as accepting online payment.

## `hasShopTool` (type: `boolean`):

Only companies whose website was detected as running e-commerce tooling.

## `hasDigitalMarketing` (type: `boolean`):

Only companies whose website was detected as running digital marketing tooling.

## `socialLinks` (type: `array`):

Only companies carrying a link to these social networks.

## `minLinkedInFollowers` (type: `integer`):

Only companies with a LinkedIn page and at least this many followers.

## `maxLinkedInFollowers` (type: `integer`):

Only companies with a LinkedIn page and at most this many followers.

## `websiteStatusFlags` (type: `array`):

Numeric website status flags to include. Pull valid values from the provider's website status reference endpoint.

## `websiteIpAddress` (type: `string`):

Match companies whose website resolves to this IP address, which finds sites sharing one host.

## `dedupeWebDomain` (type: `boolean`):

When several records share a web domain, keep only the best one. Requires the website presence filter to be set.

## `dedupeEmail` (type: `boolean`):

When several records share an email address, keep only the best one. Requires the email filter to be set.

## `dedupePhone` (type: `boolean`):

When several records share a phone number, keep only the best one. Requires the phone filter to be set.

## `dedupeNationalId` (type: `boolean`):

When several records share a registration number, keep only the best one. Requires the registration number presence filter to be set.

## `dataType` (type: `string`):

Which of the provider's data sets to search. Business is the firmographic company database and is the right choice for almost every use.

## `matchAnyFilter` (type: `boolean`):

Combine the inclusive filters with OR rather than AND, so a record matching any one of them is returned. Business searches only.

## `sortingOrder` (type: `array`):

How to order the records. Several can be combined, applied in the order listed.

## `displayLanguage` (type: `string`):

Two-letter ISO 639-1 code for the language of category labels. Defaults to EN.

## `internationalPhoneFormat` (type: `boolean`):

Return phone numbers in international format, with a plus and the country prefix.

## `validateFilters` (type: `boolean`):

Ask the provider to validate the filter set before running the search, so a bad code fails loudly instead of quietly matching nothing.

## `geoLevels` (type: `array`):

Numeric geocoding precision levels to include. Pull valid values from the provider's geo level reference endpoint.

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

Any additional search field, merged over the ones above. Use this for a filter the provider adds after this actor was published.

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

Stop after this many company records (1 to 50,000). You are charged per result returned.

## `pageSize` (type: `integer`):

How many companies to request per API call (1 to 50). The provider's default and maximum is 50 unless your account has been raised.

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

An access token you already hold for the data provider. Leave empty to supply a username and password instead, and the actor will request a token for you. Stored securely and never logged.

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

Your provider account username. Case sensitive. Only needed when no access token is supplied.

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

Your provider account password. Only needed when no access token is supplied. Stored securely and never logged.

## Actor input object example

```json
{
  "tryAnyLocationMatch": false,
  "restrictToMainCategory": false,
  "salesVolumeCurrency": "local",
  "isVat": false,
  "hasPhone": false,
  "hasEmail": false,
  "hasMobile": false,
  "hasFax": false,
  "hasContact": false,
  "hasWebContact": false,
  "hasWebsite": "ignore",
  "hasNationalId": "ignore",
  "hasAddress": false,
  "hasCoordinates": false,
  "hasLinkedIn": false,
  "hasLogo": false,
  "hasAdmin": false,
  "hasMarketability": false,
  "hasBuildingGeometry": false,
  "filterOnDoNotCallMe": false,
  "hasEShop": false,
  "hasPayment": false,
  "hasShopTool": false,
  "hasDigitalMarketing": false,
  "dedupeWebDomain": false,
  "dedupeEmail": false,
  "dedupePhone": false,
  "dedupeNationalId": false,
  "dataType": "business",
  "matchAnyFilter": false,
  "internationalPhoneFormat": false,
  "validateFilters": false,
  "rawFilters": {},
  "maxResults": 100,
  "pageSize": 50
}
```

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

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/global-company-database-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 = {
    "rawFilters": {},
    "maxResults": 100,
    "pageSize": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/global-company-database-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 '{
  "rawFilters": {},
  "maxResults": 100,
  "pageSize": 50
}' |
apify call nabeelbaghoor/global-company-database-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3yk12JsN5eE1XurIF/builds/XaX3zAYtSjOqgBJiV/openapi.json
