Skip to content
Search/
CyberMax › Answers

How to find a company's website from its name, in bulk

Updated 2026-11-10 · Data and API builders · by CyberMax

Short answer

Don't trust the first search result. Use a lookup that checks evidence: Namewhere on Apify matches each name against Wikidata, tests likely domains, opens the homepage to confirm the brand, rejects parked domains and returns the domain with a 0-1 confidence, at $0.0008 per match; misses are free.

  1. Put one company name per row. Add the country when names are common ("Monzo Bank | gb" or the country field).
  2. Remove legal suffixes only if they are inconsistent; Namewhere handles Inc, Ltd, GmbH and similar itself.
  3. Run the list and keep the confidence column: 0.9+ is safe to use as is, 0.6-0.9 deserves a quick look.
  4. Check the runner-up domains for rows where two companies share a name.
  5. Feed the domains to the next step: contact details, tech stack or company size.

Copy-paste code

Python (pip install apify-client): names in, domain + confidence out

import csv, os
from apify_client import ApifyClient

names = [row[0] for row in csv.reader(open("companies.csv")) if row]
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("cybermax/company-to-domain").call(run_input={
    "companies": names,          # "Acme Brick Company", "Monzo Bank | gb", ...
    "minConfidence": 0.6,
    "includeSocials": True,
})
with open("domains.csv", "w", newline="") as f:
    w = csv.writer(f)
    w.writerow(["company", "domain", "confidence", "status"])
    for r in client.dataset(run["defaultDatasetId"]).iterate_items():
        w.writerow([r["input"], r.get("domain"), r.get("confidence"), r["status"]])

JavaScript / Node (npm i apify-client)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cybermax/company-to-domain').call({
  companies: ['Stripe', 'Acme Brick Company', 'Monzo Bank | gb'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const r of items) console.log(r.input, '->', r.domain, r.confidence);

No code: Google Sheets via n8n, Make or Zapier

n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method:  POST
URL:     https://api.apify.com/v2/acts/cybermax~company-to-domain/run-sync-get-dataset-items
Auth:    Header Auth  ->  Authorization: Bearer <your Apify token>
Body:    JSON  {"companies": {{ $json.names }}, "minConfidence": 0.6}
Output:  one n8n item per result row, ready for Google Sheets / Airtable / a Slack message

Make:    Apify app -> "Run an Actor" (Actor: cybermax/company-to-domain, wait for finish = yes)
         -> Apify "Get Dataset Items" (dataset = the run's defaultDatasetId) -> Google Sheets "Add a Row"
Zapier:  Apify app -> action "Run Actor" (cybermax/company-to-domain, input JSON as above)
         -> trigger "Finished Actor Run" -> "Fetch Dataset Items" -> your app
Runs longer than 5 minutes: start with POST /v2/acts/cybermax~company-to-domain/runs and read the dataset when the run finishes.

Sheet flow: Google Sheets "Get rows" -> Aggregate the name column into one array -> the request above -> "Update row" with domain and confidence.

From an AI agent (MCP)

# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
  "mcpServers": {
    "company-to-domain": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/company-to-domain",
               "--header", "Authorization: Bearer ${APIFY_TOKEN}"],
      "env": { "APIFY_TOKEN": "<your Apify token>" }
    }
  }
}
# The agent sees one tool, cybermax--company-to-domain, with the Actor's input schema.
A real record (input "Stripe", 24 Sep 2026)
FieldValue
domainstripe.com
confidence0.99 (high)
sourcesdns-guess, redirect-from:stripe.io, redirect-from:stripe.net, wikidata
homepage titleStripe | Financial Infrastructure to Grow Your Revenue
socialslinkedin, x, github

Source: Namewhere (Apify Actor cybermax/company-to-domain) README, real run on 24 Sep 2026

Run Namewhere on Apify

Why the first Google result is not good enough

Search results mix the company with review sites, directories, news and lookalike domains, and many short names have a parked or unrelated .com. A lookup built for this checks that the homepage really names the brand and records why it chose the domain, so you can trust a 0.95 and review a 0.65.

Company name to domain for CRM and lead lists

Typical uses: cleaning a CRM import, matching a trade-show or grant list to websites, enriching an investor portfolio, or giving an AI agent a reliable first step before it looks anything else up.

Good to know

Price on Apify: $0.0008 per resolved company ($0.80 per 1,000); names it cannot resolve with enough confidence are free. Apify's free plan includes $5 of usage each month.

Very generic names ("Smith Consulting") need a country or city to resolve well; without one they come back as unresolved instead of a guess.

Namewhere icon

Namewhere: Company names in, official website domains out

$0.0008 per match, misses free

Namewhere returns the official domain for each company name with a confidence score, evidence and socials. $0.0008 per match; misses are free.

Runs on your own Apify account, pay per result; failed results are not charged.

Questions

Is there a free company name to domain API?

Namewhere charges only for matches, and Apify's monthly free credit covers a first list of a few thousand names.

How accurate is it?

Every row carries a 0-1 confidence and the evidence (Wikidata, name match, homepage check). Filter on confidence to trade coverage for precision.

Can it handle companies outside the US?

Yes. Add a country code to each name ("Name | de") or set the country field to rank local domains first.

Can an AI agent use it?

Yes. Apify's MCP server exposes it as cybermax--company-to-domain for Claude, Cursor and other MCP clients.

Free: the Free API Starter Kit

Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Compare the options

Company name to domain finders compared: price, confidence and evidenceNamewhere vs two company-name-to-domain Actors on Apify: live price per match, confidence scores, evidence and

Related answers

How to find the contact email, phone and socials for a list of company domainsGet each company's published email, phone, socials and contact page from its own site, for a whole list of domHow to check the tech stack of hundreds of websites at onceFind the CMS, framework, CDN, email provider, DMARC policy, domain age and TLS expiry for a whole list of doma