# Company Master Data + Parent & Ultimate Owner (CIN, LinkedIn) (`event-data-api/company-master-data-parent-owner`) Actor

Turn any company name, alias or domain into a complete master-data record in bulk — official registered name, CIN/LLPIN/FCRN/LEI, immediate & ultimate parent company (with IDs), website, LinkedIn, followers, employees and HQ. India + global. No login or cookies required.

- **URL**: https://apify.com/event-data-api/company-master-data-parent-owner.md
- **Developed by:** [RS Niraj](https://apify.com/event-data-api) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Company Master Data + Parent & Ultimate Owner

**Turn any company name, alias or domain into a complete, verified master-data record — identity, statutory IDs, the full ownership chain, and live LinkedIn metrics — in one call.**

Give it `"Myntra"` (or `myntra.com`) and get back: the official registered name, CIN, its **immediate parent** *(Flipkart Internet Private Limited)*, its **ultimate parent** *(Walmart Inc)*, plus website, LinkedIn, followers, employees and HQ — for the company **and** its parents.

---

### ✨ What you get (per company)

| Field | Example |
|---|---|
| **official_name** | Myntra Designs Private Limited |
| **id / id_type** | U72300KA2007PTC041799 · CIN |
| **lei** | 254900V73H400ZE35J15 |
| **website · linkedin** | myntra.com · /company/myntra |
| **followers · employees** | 25,91,000 · 17,949 |
| **hq_city · hq_country** | Bengaluru · India |
| **industry · founded** | Internet · 2007 |
| **parent_type** | ACQUIRED_BY |
| **immediate_parent** | Flipkart Internet Private Limited (+ CIN, LinkedIn, employees, HQ) |
| **ultimate_parent** | Walmart Inc (+ LEI, country, LinkedIn, employees, HQ) |

### 🌳 Parent & ownership intelligence (the differentiator)

Most tools stop at the company. This one maps **who owns whom** and always fills a parent:

- **Subsidiary** → immediate + ultimate parent *(Myntra → Flipkart → Walmart)*
- **Group company** → holding company *(TCS → Tata Sons)*
- **Foreign branch** → India arm + global parent *(Citi India → FCRN → Citigroup)*
- **Government PSU** → flagged `GOVT_OWNED` *(ONGC, BHEL)*
- **Joint venture** → both parents *(Tata AIA → Tata Sons + AIA Group)*
- **Independent / top holding** → marked as its own top entity *(Razorpay, Reliance)*

### 🎯 Why it's accurate (zero-wrong)

- **GLEIF** (global LEI registry) cross-checks every ID and parent
- Every **CIN is reverse-validated** on the web (in `full` mode) — wrong IDs are dropped, never guessed
- Brand → **real legal entity** resolution *(Swiggy → BUNDL Technologies, Nykaa → FSN E-commerce, Groww → Nextbillion Technology)*
- Principle: **blank > wrong** — an unverifiable field is left empty, never fabricated

### 📥 Input — your data, any shape

- **companies** — JSON list of names, domains, or `{name, domain, linkedin}` objects
- **pasteRows** — rows copied straight from Excel / Google Sheets (columns auto-detected)
- **sheetUrl** — a public Google-Sheet / CSV link

### ⚙️ Modes

| Mode | Best for | Speed |
|---|---|---|
| 🟢 **fast** | name + website + LinkedIn only | fastest |
| 🟡 **balanced** *(default)* | identity + parent + enrichment | fast |
| 🔴 **full** | CIN/LLPIN/FCRN that must be 100% verified | thorough |

`enrich` (default on) adds followers / employees / HQ for the company **and** its parents.

### 💡 Use cases

- **Account & lead enrichment** — map a domain list to registered entities + group structure
- **KYC / compliance / due-diligence** — verified CIN/LEI + ultimate beneficial owner chain
- **CRM hygiene & de-duplication** — collapse aliases & subsidiaries under one parent
- **Market & competitor mapping** — see entire corporate groups at a glance

### 📤 Output

One clean dataset row per company (download as JSON, CSV or Excel) with the company's full record plus flattened `immediate_parent_*` and `ultimate_parent_*` columns.

---

*Works for Indian (CIN/LLPIN/FCRN) and global (LEI) entities. India-first, globally aware.*

# Actor input Schema

## `companies` (type: `array`):

A list of companies to resolve. Each item can be: (1) a plain name/alias — "Infosys"; (2) a domain — "infosys.com"; or (3) an object with optional hints: {"name", "domain", "linkedin", "email_domains", "master_id"}. Hints improve accuracy but are not required — a bare name or domain works.
## `pasteRows` (type: `string`):

Paste rows copied straight from Excel or Google Sheets (Ctrl/Cmd+C → paste here). Tab- or comma-separated. Columns are auto-detected — name/company/alias, domain/website, linkedin, email. A header row is optional. Use this when you don't want to build JSON.
## `sheetUrl` (type: `string`):

A public Google-Sheet CSV-export link or any CSV URL. The whole file is downloaded and every row resolved. (Google Sheet → File → Share → Publish to web → CSV, or use the .../export?format=csv link.)
## `mode` (type: `string`):

fast = official name + website + LinkedIn only (cheapest, no parent). balanced = identity + parent + enrichment, GLEIF-verified (recommended). full = additionally reverse-validates every CIN on Google so IDs are zero-wrong (most accurate, a bit slower).
## `enrich` (type: `boolean`):

Add live LinkedIn metrics — followers, employee count and HQ city/country — for the company AND its immediate & ultimate parents. Turn off if you only need the registered identity + IDs.
## `geminiApiKey` (type: `string`):

OPTIONAL. Your own Google AI Studio (Gemini) key. If provided, reasoning runs directly on the Gemini API — far cheaper and uses a strict schema. If left blank, a built-in reasoning path is used automatically (billed to your Apify usage). Get a free key at aistudio.google.com/apikey.
## `workers` (type: `integer`):

How many companies to resolve at once. 6–10 is a good balance of speed vs. rate-limits. Lower it (e.g. 2) if you use a free Gemini key (15 requests/minute limit).

## Actor input object example

```json
{
  "companies": [
    {
      "name": "Myntra",
      "domain": "myntra.com"
    },
    {
      "name": "Tata Consultancy Services"
    }
  ],
  "mode": "balanced",
  "enrich": true,
  "workers": 8
}
````

# 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 = {
    "companies": [
        {
            "name": "Myntra",
            "domain": "myntra.com"
        },
        {
            "name": "Tata Consultancy Services"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("event-data-api/company-master-data-parent-owner").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 = { "companies": [
        {
            "name": "Myntra",
            "domain": "myntra.com",
        },
        { "name": "Tata Consultancy Services" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("event-data-api/company-master-data-parent-owner").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 '{
  "companies": [
    {
      "name": "Myntra",
      "domain": "myntra.com"
    },
    {
      "name": "Tata Consultancy Services"
    }
  ]
}' |
apify call event-data-api/company-master-data-parent-owner --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Company Master Data + Parent & Ultimate Owner (CIN, LinkedIn)",
        "description": "Turn any company name, alias or domain into a complete master-data record in bulk — official registered name, CIN/LLPIN/FCRN/LEI, immediate & ultimate parent company (with IDs), website, LinkedIn, followers, employees and HQ. India + global. No login or cookies required.",
        "version": "2.0",
        "x-build-id": "ndbYPK5AnP1b3jD3O"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/event-data-api~company-master-data-parent-owner/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-event-data-api-company-master-data-parent-owner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/event-data-api~company-master-data-parent-owner/runs": {
            "post": {
                "operationId": "runs-sync-event-data-api-company-master-data-parent-owner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/event-data-api~company-master-data-parent-owner/run-sync": {
            "post": {
                "operationId": "run-sync-event-data-api-company-master-data-parent-owner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "companies": {
                        "title": "Companies (JSON list)",
                        "type": "array",
                        "description": "A list of companies to resolve. Each item can be: (1) a plain name/alias — \"Infosys\"; (2) a domain — \"infosys.com\"; or (3) an object with optional hints: {\"name\", \"domain\", \"linkedin\", \"email_domains\", \"master_id\"}. Hints improve accuracy but are not required — a bare name or domain works."
                    },
                    "pasteRows": {
                        "title": "Paste rows (from Excel / Google Sheet)",
                        "type": "string",
                        "description": "Paste rows copied straight from Excel or Google Sheets (Ctrl/Cmd+C → paste here). Tab- or comma-separated. Columns are auto-detected — name/company/alias, domain/website, linkedin, email. A header row is optional. Use this when you don't want to build JSON."
                    },
                    "sheetUrl": {
                        "title": "Google Sheet / CSV URL",
                        "type": "string",
                        "description": "A public Google-Sheet CSV-export link or any CSV URL. The whole file is downloaded and every row resolved. (Google Sheet → File → Share → Publish to web → CSV, or use the .../export?format=csv link.)"
                    },
                    "mode": {
                        "title": "Resolution mode",
                        "enum": [
                            "fast",
                            "balanced",
                            "full"
                        ],
                        "type": "string",
                        "description": "fast = official name + website + LinkedIn only (cheapest, no parent). balanced = identity + parent + enrichment, GLEIF-verified (recommended). full = additionally reverse-validates every CIN on Google so IDs are zero-wrong (most accurate, a bit slower).",
                        "default": "balanced"
                    },
                    "enrich": {
                        "title": "Enrich with LinkedIn (followers + employees + HQ)",
                        "type": "boolean",
                        "description": "Add live LinkedIn metrics — followers, employee count and HQ city/country — for the company AND its immediate & ultimate parents. Turn off if you only need the registered identity + IDs.",
                        "default": true
                    },
                    "geminiApiKey": {
                        "title": "Gemini API key (optional)",
                        "type": "string",
                        "description": "OPTIONAL. Your own Google AI Studio (Gemini) key. If provided, reasoning runs directly on the Gemini API — far cheaper and uses a strict schema. If left blank, a built-in reasoning path is used automatically (billed to your Apify usage). Get a free key at aistudio.google.com/apikey."
                    },
                    "workers": {
                        "title": "Parallel workers",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many companies to resolve at once. 6–10 is a good balance of speed vs. rate-limits. Lower it (e.g. 2) if you use a free Gemini key (15 requests/minute limit).",
                        "default": 8
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
