# Company Identity Resolver (`mambalabs/company-identity-resolver`) Actor

Resolves a company name to its primary domain and LinkedIn URL, one company or a batch of names and domains with one row per entry. Any mix of name, domain, or LinkedIn URL in; one canonical identity out with 0-100 confidence scores, conflict detection, and a match method. Flat, Clay-ready.

- **URL**: https://apify.com/mambalabs/company-identity-resolver.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 22 total users, 3 monthly users, 99.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.95 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

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

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

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

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

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

# README

### 🪪 What can Company Identity Resolver do?

Give it a **company name**, and it returns the company's **primary domain and LinkedIn company URL**.

**Modes:** company name to domain (the most common use), domain to canonical name and LinkedIn URL,
and LinkedIn URL to domain and name. Any mix of the three in one row works too.
Give it **any combination of name, domain or LinkedIn URL**, one company or a **batch list**, and it
returns **one canonical company identity per row**: name, primary domain and LinkedIn company URL,
each with a **0 to 100 confidence score**.

Give it whatever you have. It resolves the missing fields, cross-checks the ones you supplied, and
**flags disagreements rather than silently merging them**.

| 📦 What you get | ⚙️ Features and integrations |
|---|---|
| 🪪 **A canonical name, domain and LinkedIn URL**<br>💯 **Per-field and overall confidence**, 0 to 100<br>⚔️ **Conflict detection**, never a silent merge<br>🧾 **20 flat fields**, `snake_case`, one row per entity | 📚 **Batch mode**, lists of names and domains in one run<br>🔄 **Any input, any direction**, name, domain or slug<br>🧬 **Canonical name from the company's own JSON-LD**<br>🧊 **7 day cache**, repeat lookups skip the network, not the per-row charge<br>⬇️ **Export** to JSON, CSV, Excel, HTML or XML |

Bought by Clay users, RevOps teams, outbound agencies and agent builders who need a reliable dedupe
and join key for company records. It is the join primitive the rest of a GTM stack hangs off.

> 🚫 **This resolves identity, it does not enrich.** It will not tell you headcount, industry or
> revenue. For that, join on the domain it returns and use
> [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba).

### 💡 Why use Company Identity Resolver?

| If you want | Read these fields |
|---|---|
| A stable join key across systems | `domain` |
| The company's real name | `name`, `name_confidence` |
| Their LinkedIn page | `linkedin_url`, `linkedin_confidence` |
| To know whether to trust the match | `confidence_score`, `match_method` |
| To catch bad merges before they happen | `match_method = "conflict"` |
| What you originally supplied | `input_company_name`, `input_domain`, `input_linkedin` |

#### ⚔️ Conflicts are surfaced, never merged

When your inputs disagree, a domain that says one company and a LinkedIn slug that says another, the
row comes back with `match_method: "conflict"` and a capped score.

That is the single most valuable thing this actor does. A resolver that quietly picks one side
writes a bad join key into your CRM and you find out months later. This one hands the disagreement
back to you.

#### 🧭 How resolution works

1. **Anchor the domain**, which is the canonical key. A provided domain is validated by DNS. With no
   domain, a search bridges the name or LinkedIn slug to the company's own domain, ranking
   candidates by result position and stem similarity and excluding aggregator hosts.
2. **Confirm identity on the homepage.** The resolved homepage is fetched and its
   `schema.org/Organization` JSON-LD is read for the self-declared canonical name and the `sameAs`
   LinkedIn URL.
3. **Anchor the LinkedIn URL, and verify it.** The one you provided is returned as given (counted
   as validated when the homepage `sameAs` names the same page). Otherwise the homepage's own link
   wins: its `sameAs`, or a plain link to a LinkedIn company page. Otherwise the actor collects
   LinkedIn pages from a Brave search restricted to `linkedin.com/company` (Bing as the fallback
   engine), then DuckDuckGo, then an optional Serper (Google results API) backup, stopping as soon
   as one page verifies. A search result page verifies when its name is identical to the name the
   company site declares (`linkedin_confidence` 85) or to the name you provided (80), or when its
   slug is one the domain implies and its name is identical to the domain name, and the domain
   exists (75). "Identical" means equal after lowercasing and removing punctuation and legal words
   such as Inc, Ltd, and Group. A page under `minLinkedinConfidence` (default 70) is not returned:
   `linkedin_url` is null and `linkedin_verification` names what was seen and why it was held back.
   A row with no LinkedIn page is marked `degraded: true` and `degradation_reason` names the steps
   it tried.

**No request is sent to LinkedIn at any step.** The LinkedIn URL is read from the company's own
homepage or from a search result link. Every request is capped by the time left in the run, so a
slow search engine cannot run the clock out.

Aggregator domains (LinkedIn, Crunchbase, Bloomberg, Wikipedia and the like) are excluded as
candidate domains. Common names, holding companies and recent rebrands are scored down rather than
guessed at.

#### ▶️ Ready-to-run examples

| Example | What it does |
|---|---|
| [Company Name to Domain Finder](https://apify.com/mambalabs/company-identity-resolver/examples/company-name-to-domain-finder?fpr=mamba) | Resolve a company name to its primary domain |
| [Same Company Conflict Checker](https://apify.com/mambalabs/company-identity-resolver/examples/same-company-conflict-checker?fpr=mamba) | Check whether two records refer to the same company |
| [Domain to LinkedIn Company URL Lookup](https://apify.com/mambalabs/company-identity-resolver/examples/domain-to-linkedin-company-url-lookup?fpr=mamba) | Resolve a domain to its LinkedIn company page |
| [CRM Dedup Key Builder](https://apify.com/mambalabs/company-identity-resolver/examples/crm-company-record-dedup-key?fpr=mamba) | Generate a dedupe key for CRM company matching |
| [LinkedIn Slug to Company Domain](https://apify.com/mambalabs/company-identity-resolver/examples/linkedin-slug-to-company-domain?fpr=mamba) | Reverse-resolve a LinkedIn slug back to the domain |
| [Batch Company Names to Domains](https://apify.com/mambalabs/company-identity-resolver/examples/batch-company-names-to-domains?fpr=mamba) | A list of names, one run, one row each |

### 📋 What data can Company Identity Resolver extract?

**20 fields** per entity, flat and `snake_case`, no nested objects.

| Field | What it holds |
|---|---|
| `name` | The canonical company name, preferring the company's own declaration |
| `domain` | The primary domain, the canonical key |
| `linkedin_url` | The LinkedIn company URL |
| `confidence_score` | Overall 0 to 100 blend; null on a degraded row |
| `domain_confidence`, `linkedin_confidence`, `name_confidence` | Per-field scores |
| `linkedin_verification` | The evidence behind a returned LinkedIn URL, or why none was returned |
| `match_method` | How the identity was resolved, including `conflict` |
| `resolved` | Whether a usable identity came back |
| `status` | `ok` (a domain or LinkedIn URL is returned), `not_found`, or `error` (the lookup failed; not charged) |
| `input_company_name`, `input_domain`, `input_linkedin` | Echoed back, so the row is self-describing |
| `run_date` | When the run happened |
| `degraded`, `degradation_reason` | Whether a step could not run, and why |
| `row_status` | `ok`, `degraded`, or `notice` (a run level message such as the free plan cap) |
| `error_reason` | Why the row is degraded or a notice; `null` on an `ok` row |
| `billable_events_json` | This row's billing receipt, for example `[{"event":"apify-default-dataset-item","count":1}]` |

Every row carries every key. A value that is unknown is `null`, never a missing key.

> ⚠️ **Threshold on `confidence_score` rather than on `resolved`.** Name-to-domain resolution is
> inherently ambiguous for very common names, holding companies and recent rebrands. The actor puts
> that ambiguity in the score instead of hiding it, which only helps if you read it. For a
> high-trust pipeline, gate on the score and route the rest to manual review.

> ⚠️ **`false` and `null` mean different things on every row.** `false` is a
> measurement: the actor looked and the answer was no. `null` is the absence of
> one: the actor could not look. When something it needed fails, the row comes
> back with `degraded: true`, a plain-language `degradation_reason`, and every
> field it could not measure set to `null` rather than to a confident `false` or
> `0`. Filter on `degraded` before you trust a negative.

### 🛠️ How to resolve a company to a canonical identity

1. Open the **Input** tab and supply whatever you have: `company_name`, `domain`, `linkedin_url`, or
   any mix.
2. Click **Start**.
3. Read `domain` as your join key and `confidence_score` as your gate.
4. Route any row with `match_method: "conflict"` to review rather than into your CRM.

The Input tab opens with `Stripe` and `stripe.com` filled in. That run returns one row: `stripe.com`,
`https://www.linkedin.com/company/stripe` from the homepage `sameAs`, `match_method: "exact_domain"`,
`confidence_score` 100 (measured 2026-10-12).

#### 📚 Single lookup or a list of companies

**One company.** Put the name in `company_name` (add `domain` or `linkedin_url` if you have them):

```json
{ "company_name": "Stripe" }
```

**A list.** Put company names in `company_names`, domains in `domains`, or both, one per line, and
click **Start**:

```json
{
  "company_names": ["Stripe", "Notion", "Figma", "Linear", "Vercel"],
  "batchSize": 2
}
```

Every entry runs the same resolution path as a single lookup and writes its own row, in input order,
with a `status` of `ok`, `not_found`, or `error`, and its own `confidence_score` and `match_method`.
A row that fails returns an `error` row with `degradation_reason` set, is not charged, and the rest of
the batch continues. If you give a single `company_name`, `domain` or `linkedin_url` together with a
list, it is added as the first row. A company listed twice is looked up, written and charged once.

The five name list above returns five rows:

| `input_company_name` | `name` | `domain` | `linkedin_url` | `match_method` | `confidence_score` |
|---|---|---|---|---|---|
| Stripe | Stripe | stripe.com | https://www.linkedin.com/company/stripe | search_resolved | 90 |
| Notion | Notion | notion.com | https://www.linkedin.com/company/notion | search_resolved | 79 |
| Figma | Figma | figma.com | https://www.linkedin.com/company/figma | search_resolved | 90 |
| Linear | Linear | linear.app | https://www.linkedin.com/company/linear | search_resolved | 79 |
| Vercel | Vercel Inc. | vercel.com | https://www.linkedin.com/company/vercel | search_resolved | 90 |

(Measured on a live run of build 0.0.27, 2026-09-19, `batchSize` 5, 19 seconds for the five rows.)

When `company_names` and `domains` have the same number of entries, name 1 is resolved with domain 1,
name 2 with domain 2, and so on, which is the shape of a spreadsheet with both columns. When the
lengths differ, each list contributes its own rows, names first. `batchSize` is how many companies
resolve at the same time (default 2, maximum 10; more concurrency meets search refusals sooner, so
raise it for speed only if you accept more unresolved rows). The price per row is the same as a single lookup; a
batch pays the Actor start event once per run instead of once per company. From the API, the same
input works with `POST /v2/acts/mambalabs~company-identity-resolver/runs`.

#### 🧪 Using it in Clay

Add an Apify enrichment column and map whichever columns you have. Every input is accepted as a
string, which is what Clay sends.

Supplying more than one identifier is better, not worse: extra inputs are cross-checked rather than
overridden, and a conflict between them is exactly the signal you want before a merge.

#### 🔑 Using it as a dedupe key

Run it across two systems and join on `domain`. Because the domain is DNS-validated and aggregator
hosts are excluded, it is stable in a way a name never is. Gate on `domain_confidence` when the
domain came from a search rather than from your own input.

### 💵 How much does it cost to resolve a company identity?

You are charged once per entity resolved (the `apify-default-dataset-item` event).

| Plan | Per entity | Per 1,000 entities |
|---|---|---|
| Free | $0.007 | $7.00 |
| Bronze | $0.00665 | $6.65 |
| Silver | $0.0063 | $6.30 |
| Gold | $0.00595 | $5.95 |

There is also a start event, `apify-actor-start`, at $0.00005, charged once per run per GB of memory.
A batch run pays it once for the whole list.

#### Free plan monthly cap

Free Apify plan users get **400 fresh resolutions per calendar month**, reset each month. A run that
reaches the cap stops and returns a `notice` row. Paid Apify plans are not capped.

#### Maximum charge

The actor honors the **maximum cost per run** you set in Apify: when the platform reports that limit
reached, the run stops cleanly and keeps every row already charged. You can also set
`max_charge_usd` on the Input tab as a second ceiling; the run stops before any charge that would
cross it.

The optional Serper backup search bills on your own Serper account, not through Apify: at most 2
queries per company, and only when the free steps found no LinkedIn page. Serper's published
pricing (serper.dev, read 2026-09-17) is 2,500 queries free on signup, then $50 for 50,000
credits ($0.001 per query), with lower unit prices on larger packs. One credit per successful
response.

> 💳 **A low-confidence or conflicted result is still billed.** The actor did the resolution work and
> a flagged conflict is a real, useful answer, often the most useful one it produces.

> 📅 **Scheduled pricing change, 2026-10-26 12:00 UTC.** Results move from Apify's default per-row
> event to a named `result` event at the same price on every plan, so each result row costs exactly
> what it costs today. A run summary row and a blocked lookup row stop being charged. Until then every
> row is billed as described above.

> ⚠️ **A cached repeat lookup is served instantly but is still billed.** This actor prices
> per result row, and Apify charges that event for every row written to the dataset,
> whether the answer came from the network or from the 7 day cache. Corrected 2026-08-12:
> an earlier version of this section said repeat lookups inside the cache window were not
> charged. They are, and they always were. Measured on 2026-08-12, an identical lookup 16
> minutes after the first was charged one result event. The cache saves you the wait and
> the platform usage, not the per-row price.

### ⌨️ Input

Everything is on the **Input** tab. Supply at least one of the first three.

| Field | Type | Default | What it does |
|---|---|---|---|
| `company_name` | string | none | The company name, however you have it written. |
| `domain` | string | none | Bare domain. Validated by DNS when supplied. |
| `linkedin_url` | string | none | A LinkedIn company URL or slug. |
| `skipCache` | string | `"false"` | `"true"` forces a fresh resolution. |
| `company_names` | array of strings | none | Batch mode. One row per distinct name. Paired with `domains` by position when both lists have the same length. A single field given as well is added as the first row. |
| `domains` | array of strings | none | Batch mode. One row per distinct domain, or paired with `company_names`. |
| `batchSize` | integer | `2` | Companies resolved concurrently per wave in batch mode, 1 to 10. |
| `minLinkedinConfidence` | string | `"70"` | The floor, 0 to 100. A LinkedIn page the actor finds is returned only when its `linkedin_confidence` is at least this. A URL you provide is always returned. |
| `max_charge_usd` | number | none | Optional ceiling in USD for this run's charges. The run stops before crossing it. |
| `serperApiKey` | string (secret) | none | Your Serper API key. Enables the backup Google search for the LinkedIn page, at most 2 queries per company, only when the free steps found nothing. Also read from the `SERPER_API_KEY` environment variable. |

### 📤 Output

One flat row per entity, exportable as **JSON, CSV, Excel, HTML or XML**.

```json
{
  "input_company_name": "Stripe",
  "input_domain": null,
  "input_linkedin": null,
  "name": "Stripe",
  "domain": "stripe.com",
  "linkedin_url": "https://www.linkedin.com/company/stripe",
  "confidence_score": 96,
  "match_method": "search_then_jsonld",
  "domain_confidence": 95,
  "linkedin_confidence": 95,
  "linkedin_verification": "verified: the company homepage declares this page in its structured data (sameAs) (score 95)",
  "name_confidence": 96,
  "resolved": true,
  "degraded": false,
  "degradation_reason": null,
  "run_date": "2026-06-21T09:36:04Z",
  "status": "ok",
  "row_status": "ok",
  "error_reason": null,
  "billable_events_json": "[{\"event\":\"apify-default-dataset-item\",\"count\":1}]"
}
```

`degraded` is `true` when no LinkedIn company page was found, and `degradation_reason` lists the
steps tried in order, for example `no LinkedIn company page found; steps tried: slug_pattern,
search_results, duckduckgo_search, serper_search (skipped: no Serper key); last step: serper_search
(skipped: no Serper key)`.

#### 🧯 What a blocked row and a summary row mean

A degraded row whose `degradation_reason` starts with `no LinkedIn company page found` is an answer:
the search engines replied and none of them carried the company's page.

A degraded row whose `degradation_reason` starts with `blocked:` or `timed_out:` is not an answer.
Every LinkedIn search engine refused the request, or the run ran out of time before one replied, and
the reason says "this is not a confirmed absence". Rerun those rows.

A run that writes no company row at all, for example because the run budget ran out before the
first row, writes one **summary row** instead and still finishes successfully. It has
`match_method: "unresolved"`, `degraded: true`, and a `degradation_reason` that starts with
`run_outcome=` (`no_results`, `blocked`, or `timed_out`), then names the search engines reached and
blocked, the run ID, and the build. It is never a company.

When the run's time is nearly spent, the actor stops starting new rows, keeps every row it already
wrote, and says how many rows it did not start in the run's status message.

### 💡 Tips

- Supply every identifier you have. Cross-checking is free and a surfaced conflict is worth more
  than a confident wrong answer.
- Join on `domain`, not on `name`. Names change; domains rarely do.
- Route `match_method: "conflict"` rows to a human. That is what the flag is for.
- Repeat lookups inside 7 days come from the cache, so re-running a list is fast; every row is still
  billed, cached or not (see the cost section).
- Have a list already? Put it in `company_names` or `domains` and run once. One row per entry, same
  price per row, one Actor start event instead of one per company.

### ⚠️ Known limits

**Name-to-domain resolution is inherently ambiguous** for very common names, holding companies and
recent rebrands. The actor surfaces this in the confidence score rather than hiding it. Threshold on
`confidence_score` for high-trust pipelines.

**LinkedIn is a corroborating anchor, not a content source.** No request is sent to LinkedIn. The
URL comes from the company's homepage, or from a search result whose name verifies against the
company. No personal profiles are read and no page content is extracted.

**Verification trades fill for accuracy.** On a 111 company test set, the share of rows with a
LinkedIn URL fell from 98 percent to 79 percent when verification shipped on 2026-10-12, and the
share of rows with a wrong URL fell from 28 percent to 13 percent. A company whose site blocks automated
visits, whose site declares a different name from its LinkedIn page, and who links no LinkedIn page,
comes back with no LinkedIn URL rather than a guess.

**A provided LinkedIn URL is checked against the homepage, not against LinkedIn.** When the
homepage `sameAs` names the same page, `linkedin_confidence` is 95; otherwise it is 80.

**Public data only.** No Crunchbase, no LinkedIn login, no paid third-party API.

**Resolution quality depends on the search stage** when you supply no domain. If you already have a
domain, supply it: it is the canonical key and providing it skips the least certain step entirely.

**Results are cached for 7 days.** Set `skipCache` to `"true"` to force a fresh resolution.

### ❓ FAQ

##### What does `match_method: "conflict"` mean?

Your inputs disagreed. A domain pointed at one company and a LinkedIn slug at another. The score is
capped and the row is handed back to you rather than merged.

##### Which field should I use as a join key?

`domain`. It is DNS-validated and aggregator hosts are excluded, so it is stable across systems in a
way a company name is not.

##### Does it read LinkedIn profiles?

No. The actor sends no request to LinkedIn and never reads a personal profile. A LinkedIn URL comes
from the company's own homepage or from a search result link.

##### Why is confidence low on a company I recognize?

Usually a common name, a holding company or a recent rebrand. Supplying the domain removes the
ambiguity entirely.

##### Can I resolve many companies in one run?

Yes. Put names in `company_names` or domains in `domains` (one per line in the Console, a JSON array
from the API) and every distinct entry gets its own row. A failed row returns `status: "error"`, is not
charged, and does not stop the batch.

##### Can I give it just a LinkedIn slug?

Yes. It reverse-resolves the slug back to the company's own domain.

### 🧩 Want other GTM data?

Mamba Labs builds a fleet of enrichment actors that share one flat output convention:

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Answer Visibility Tracker](https://apify.com/mambalabs/ai-answer-visibility-tracker?fpr=mamba) | `RJZvzKniYK4nswcMg` |
| [AI List Extractor for Any Website](https://apify.com/mambalabs/ai-list-extractor-any-website?fpr=mamba) | `D5hOdIez45M0NX5jD` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [Amazon Product, Price, and Stock Tracker](https://apify.com/mambalabs/amazon-product-price-stock-tracker?fpr=mamba) | `MtJPZoyjJ3IeqTFyo` |
| [Amazon Top Reviews Scraper](https://apify.com/mambalabs/amazon-top-reviews-scraper?fpr=mamba) | `wh6Mq6G6BlW1CRPwx` |
| [API Deprecation and Breaking Change Monitor](https://apify.com/mambalabs/api-change-monitor?fpr=mamba) | `pHsbS3xXUK8Jqutz5` |
| [App Store and Google Play Review Monitor](https://apify.com/mambalabs/app-store-google-play-review-monitor?fpr=mamba) | `MaCMEhGrbchxQZ92G` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [B2B Social Video Transcripts](https://apify.com/mambalabs/b2b-social-video-transcripts?fpr=mamba) | `dG2UYVKE2e4zfDucK` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Bluesky Posts Scraper](https://apify.com/mambalabs/bluesky-posts-scraper?fpr=mamba) | `KldSjS7wjoeZ7vQGm` |
| [Brand Sponsor Finder](https://apify.com/mambalabs/brand-sponsor-finder?fpr=mamba) | `PPgK6xrgOmvL7Nrys` |
| [Bulk WHOIS and RDAP Domain Age Lookup](https://apify.com/mambalabs/whois-domain-lookup?fpr=mamba) | `MTrkG5FLU6SjqLdJY` |
| [Business PDF Field Extractor](https://apify.com/mambalabs/business-pdf-field-extractor?fpr=mamba) | `vM7JCk0CMAx5W0oJh` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Careers Page Jobs, 17 ATS Boards](https://apify.com/mambalabs/ats-jobs-feed?fpr=mamba) | `izP0rfIgf5YaRZfIh` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Role Email, Phone and Address Finder](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Search, CA, TX, WA, OR, LA](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [CRM Contact Job Change Checker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Email List Verifier, Bring Your Own Key](https://apify.com/mambalabs/email-verifier?fpr=mamba) | `CzVJ4NlaCKk80xpgE` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Eventbrite Events Scraper](https://apify.com/mambalabs/eventbrite-events-scraper?fpr=mamba) | `sgc6znyrbjOy5Yk9f` |
| [Expert Witness Finder, US and Australia](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Facebook Posts Scraper](https://apify.com/mambalabs/facebook-posts-scraper?fpr=mamba) | `T6jxIeq4ua0SLXnqG` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GDPR Cookie Banner and Consent Checker](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [GitHub Followers and Following Export](https://apify.com/mambalabs/github-followers-following-export?fpr=mamba) | `SGNxDmFb9v3tRDaFI` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Center Scraper by Domain](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [Google Maps Places Scraper](https://apify.com/mambalabs/google-maps-places-scraper?fpr=mamba) | `SuvHCNJ7pIuw6gn54` |
| [Google Trends Scraper](https://apify.com/mambalabs/google-trends-scraper?fpr=mamba) | `OeDzaACKmBYJXzHZk` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [Healthcare Provider NPI Enricher](https://apify.com/mambalabs/healthcare-provider-npi-enricher?fpr=mamba) | `MrgbHzcpDq3mOv9Df` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Search Across TikTok, Instagram and YouTube](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Journalist and Media List Builder](https://apify.com/mambalabs/journalist-media-list-builder?fpr=mamba) | `mAfizsZC8qRoR0ecS` |
| [Launch Directory List Builder](https://apify.com/mambalabs/launch-directory-list-builder?fpr=mamba) | `cRq3bmvEZxZtioQ7U` |
| [Lead File Import Checker](https://apify.com/mambalabs/lead-file-import-checker?fpr=mamba) | `RwlGVXTf46LqZdUgt` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Jobs Feed](https://apify.com/mambalabs/linkedin-jobs-feed?fpr=mamba) | `SH6N0d8cz46BhCC8B` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Companies from Seed Domains](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [MCP Server Change and Health Monitor](https://apify.com/mambalabs/mcp-server-change-health-monitor?fpr=mamba) | `IeqjWF9U0BdDQFY08` |
| [Media URL Transcriber](https://apify.com/mambalabs/media-url-transcriber?fpr=mamba) | `Syfr7Ya3EsHgWfrB6` |
| [Meta Ad Library Ads by Company, Graph API](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [Multi Platform Social Posts and Comments](https://apify.com/mambalabs/multi-platform-social-posts-comments?fpr=mamba) | `icFuHR1EzDvUcfCQ5` |
| [Netherlands Rental Listings](https://apify.com/mambalabs/dutch-rental-listings?fpr=mamba) | `sGKGsbwoX18lFb6dR` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newly Registered Companies, UK, Norway, Finland, France](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [News and Media Mention Monitor](https://apify.com/mambalabs/news-media-mention-monitor?fpr=mamba) | `gol1PPUKrsIk4QLBd` |
| [News Site Article Archive](https://apify.com/mambalabs/news-site-article-archive?fpr=mamba) | `NjcF3UD8791raFNHh` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Private Company Funding History](https://apify.com/mambalabs/private-company-funding-history?fpr=mamba) | `H02K3rQIVOYpnLYc3` |
| [Product Hunt Daily Launches with Maker Domains](https://apify.com/mambalabs/product-hunt-launches-feed?fpr=mamba) | `O4VX63drWK9Y9x641` |
| [Property Owner Records](https://apify.com/mambalabs/property-owner-records?fpr=mamba) | `0J7ovG1iaZpQD1P0T` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Recent Funding Rounds Feed](https://apify.com/mambalabs/recent-funding-rounds-feed?fpr=mamba) | `KueVp9MOz7iOoAgDp` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reddit Search and Thread Scraper](https://apify.com/mambalabs/reddit-search-thread-scraper?fpr=mamba) | `4Gsth5cP2Xt9V2xDN` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Research Topic Institutions and Authors](https://apify.com/mambalabs/research-topic-institutions-authors?fpr=mamba) | `OH8ANqt7bCKbo72Gk` |
| [Semrush Domain Metrics](https://apify.com/mambalabs/semrush-domain-metrics?fpr=mamba) | `3dqa0abJrpssHtrYL` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Shopify App Store and Chrome Web Store Listings](https://apify.com/mambalabs/shopify-app-store-chrome-web-store-listings?fpr=mamba) | `gaY0BzkLyN77mD3wI` |
| [Site Crawler for Links and Tables](https://apify.com/mambalabs/site-crawler-links-tables?fpr=mamba) | `lLLJ6JxZ4XqN8ULz0` |
| [Streaming Subscription Prices by Country](https://apify.com/mambalabs/streaming-subscription-prices-by-country?fpr=mamba) | `tbMroS2Zyn57bW17E` |
| [Substack Newsletter and Posts Scraper](https://apify.com/mambalabs/substack-scraper?fpr=mamba) | `UEFsdwiPLmPNVy9xd` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [Tennis Match Data](https://apify.com/mambalabs/tennis-match-data?fpr=mamba) | `v3OX6zxXHZOf2yurO` |
| [Threads Posts by Keyword, Exact Match](https://apify.com/mambalabs/threads-keyword-search?fpr=mamba) | `2OT8K8RiEEWtaj2MW` |
| [Ticketmaster Event Prices](https://apify.com/mambalabs/ticketmaster-event-prices?fpr=mamba) | `CrvPX4IwLXQX9bls1` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [TikTok Video Stats](https://apify.com/mambalabs/tiktok-video-stats?fpr=mamba) | `uz9Q3cEycRgA6NfqA` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [US and UK Contract Award Winners by Company](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [US Import Records Buyer Finder](https://apify.com/mambalabs/us-import-records-buyer-finder?fpr=mamba) | `VIMafpKF5ggOw0COU` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [Website Accessibility Checker, WCAG 2.2 AA](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel and Video List Scraper](https://apify.com/mambalabs/youtube-video-channel-scraper?fpr=mamba) | `txaAjeBqgj5MStFE4` |
| [YouTube Channel Email Finder](https://apify.com/mambalabs/youtube-channel-email-finder?fpr=mamba) | `IDgKZcmeeuunUbccN` |
| [YouTube Channel from Company Domain](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |
| [Zillow Listing Details](https://apify.com/mambalabs/zillow-listing-details?fpr=mamba) | `yG4zM0Enfsw2NefJ1` |

> Every actor in the suite takes a domain or a company and returns one flat row,
> so they stack in the same Clay table without reshaping anything.

### 🆘 Support

Something wrong, or a company the actor resolves incorrectly? Open an issue on the **Issues** tab
with the inputs and the row, and we will look at it.

> ℹ️ **Sourcing and legal.** This actor uses public data only: DNS, the company's own homepage and
> its `schema.org` JSON-LD, and login-free public search (Brave, Bing, DuckDuckGo). No request to
> LinkedIn, no personal profiles, no paid third-party API. You are responsible for how you use the output.

### ⚖️ Unofficial

This actor is **unofficial**. It is not affiliated with, sponsored by, or endorsed by LinkedIn,
Microsoft, Bing, Brave or DuckDuckGo. It reads publicly available pages only, with no account and no
authenticated session.

Built by [Mamba Labs](https://apify.com/mambalabs?fpr=mamba).

# Actor input Schema

## `company_name` (type: `string`):

Company name, e.g. Stripe. At least one of name, domain, or LinkedIn is required.

## `domain` (type: `string`):

Bare domain, e.g. stripe.com. The strongest canonical key when provided.

## `linkedin_url` (type: `string`):

Full LinkedIn company URL (https://www.linkedin.com/company/stripe) or bare slug (stripe).

## `company_names` (type: `array`):

Batch mode. A list of company names, one per line (Stripe, Notion, ...). Every entry produces its own output row with a status of ok, not_found or error. If domains has the same number of entries, name i and domain i are resolved together as one row. A single company_name, domain or linkedin_url given as well is added as the first row, and a company listed twice runs, and is charged, once. A row that fails returns an error row, is not charged, and the rest of the batch continues.

## `domains` (type: `array`):

Batch mode. A list of bare domains, one per line (stripe.com, notion.so, ...). One output row per distinct entry, or paired with company_names by position when both lists have the same length. Leave empty for single lookups.

## `batchSize` (type: `integer`):

How many companies resolve concurrently per wave in batch mode. Default 2, maximum 10. A single input always runs alone. More concurrency meets search engine refusals sooner; raise it for speed only if you accept more unresolved rows.

## `minLinkedinConfidence` (type: `string`):

A LinkedIn page the actor finds is returned only when its linkedin_confidence is at least this value, 0 to 100. Default "70". The score comes from evidence that the page belongs to this company: the company homepage links it (92 to 95), its name is identical to the name the company site declares (85) or to the company name you provide (80), or its slug and name both match the domain (75). Under the floor linkedin_url is null, with the reason in linkedin_verification. A LinkedIn URL you provide is always returned as given. Sent as a string for Clay compatibility.

## `skipCache` (type: `string`):

When "false" (default), a successful resolution is cached for 7 days and reused for free on repeat lookups. Set "true" to force a fresh resolution. Sent as a string for Clay compatibility.

## `serperApiKey` (type: `string`):

Backup search behind DuckDuckGo for the LinkedIn company page. Used only when the free steps find nothing, at most 2 queries per company (about 0.001 USD each on Serper's paid tier; 2,500 queries free on signup). Falls back to the actor's SERPER_API_KEY environment variable. Leave empty to skip the step.

## `max_charge_usd` (type: `number`):

Optional. The run stops before any charge that would take this run's total past this amount in USD, and every row already charged is kept. Leave it empty to rely only on the maximum cost per run set in Apify, which the actor also honors.

## `source_tag` (type: `string`):

Internal attribution tag set by Mamba Labs on published task examples. Not required, and nothing depends on it. Leave it empty.

## Actor input object example

```json
{
  "company_name": "Stripe",
  "domain": "stripe.com",
  "batchSize": 2,
  "minLinkedinConfidence": "70",
  "skipCache": "false"
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing the canonical identity tuple and confidence scores for each input entity.

# 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 = {
    "company_name": "Stripe",
    "domain": "stripe.com",
    "batchSize": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/company-identity-resolver").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 = {
    "company_name": "Stripe",
    "domain": "stripe.com",
    "batchSize": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/company-identity-resolver").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "company_name": "Stripe",
  "domain": "stripe.com",
  "batchSize": 2
}' |
apify call mambalabs/company-identity-resolver --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/company-identity-resolver"
        }
    }
}
```

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

## OpenAPI specification

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