Blog/Sales & enrichment
11 min read

The Best API to Find a Company's Website From Its Name

Name to homepage is a resolution problem, not a search one. Which endpoint does it, why fuzzy matches are a feature, and how to pick the right row.

The Best API to Find a Company's Website From Its Name

Someone hands you a spreadsheet of company names and asks for their websites. It sounds like a search problem, so people reach for a search API, and it half works: you get a result for the obvious names and quiet nonsense for the rest.

It is not a search problem. It is a resolution problem, and the difference is what this guide is about. Monid is the OpenRouter for agent tools, so the endpoints below sit on one key, and the first one is free to call.

Fair disclosure: you are on the Monid blog. The section near the end names where a general search API or a full enrichment vendor beats what is described here.

Why is finding a company's website harder than it sounds?

Because company names are not unique and search engines optimise for the popular one.

We ran a resolution call for the string canva on 2026-08-17. The top three results were:

Canva     canva.com        Visual Design Software
Canvas    canvasapp.com    Business Intelligence Software
Canvas    canvas.build     Construction Robotics

Three different companies. Two share a name with each other and neither is the one you meant, unless it is.

A search engine would have returned canva.com first and buried the other two, which looks like the right answer and is the wrong behaviour for this job. When you are resolving a list, the rows you get wrong are exactly the ones where the obvious answer is not yours: the small company that shares a name with a big one, the local business behind a global brand.

Fuzzy matching is the feature. An endpoint that returns one confident row for every input is hiding the ambiguity rather than resolving it, and you find out months later when someone notices a construction robotics company in the design-tool segment.

Three things make this harder than a lookup table:

Legal name is not trading name. Filings say one thing and the website says another, and your spreadsheet almost always has the trading name.

Suffixes are noise, until they are not. Inc, Ltd, GmbH, Pty are usually strippable and occasionally the only thing separating two companies.

A homepage is not always the answer. Subsidiaries, regional sites, product sites and holding companies all resolve differently depending on what you plan to do next.

Which API turns a company name into a website?

A company resolution endpoint, and the one worth starting with costs nothing to call.

akta /v1/company/search takes a name or a website in one field, auto-detects which you gave it, and returns candidate companies:

monid inspect -p akta -e /v1/company/search
monid run -p akta -e /v1/company/search --query '{"query":"canva"}'

Each row carries the company name, the website, a product category and its status. The measured run above charged nothing: this endpoint is free per call, which changes how you use it. Resolution stops being a step you budget for and becomes something you can do speculatively, on every row, including the ones you expect to fail.

That matters more than it sounds. The usual pattern is to resolve cheaply and enrich expensively, and when resolution is free the only cost in your pipeline is the enrichment you actually chose to buy.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add -k <your-key> -l main

The other shape: resolve by brand

context.dev /brand/retrieve resolves a company from a domain, a name or a ticker and returns brand-level detail alongside the identity. Reach for it when the next step is presentation rather than analysis: it carries the visual identity a page or a card needs, which a firmographics record does not.

Give this to your agent

$Set up https://monid.ai/SKILL.md, and then use Monid to show me what I can do for Company Enrichment.
See the Company Enrichment endpoints and prices

How do you pick the right row when several match?

With a rule you write down, not by taking the first row, and the rule depends on what you are going to do with the domain.

This is the part every vendor page skips, and it is where list quality is actually won or lost.

Match on more than the name. The canva run returned a product category with every row. If your spreadsheet has an industry column, even a rough one, comparing categories disambiguates most collisions immediately. Two companies called Canvas are easy to separate when one is business intelligence and the other is construction robotics.

Treat a single result as a match, several as a question. One row back is a resolution. Three rows back is the endpoint telling you it does not know, and the correct handling is to route those to a second signal or to a human, not to take the top one because it sorts first.

Keep the ambiguity in your data. Store the candidate count alongside the chosen domain. A row resolved from one candidate and a row resolved from six are different qualities of fact, and six months later nothing else will tell you which is which.

Verify the domain resolves before you trust it. A returned website is a claim about a company, not a promise the site is live. If a downstream step is going to fetch that page, check it rather than discovering the failure inside a batch.

The general shape: resolution should output a domain and a confidence, and the confidence should come from how many candidates it had to choose between. An endpoint that gives you the first without the second has made the decision for you and not told you.

What do you do once you have the domain?

The domain is the join key, and everything expensive happens after it.

That ordering is the point of resolving cheaply. Once you hold a domain you can:

Enrich the company. pdl /v5/company/enrich takes a website and returns firmographics: size, industry, employee count, funding history, social profiles. We measured what that record actually contains in the provider comparison, including the two fields that disagreed with each other.

Find the people. A domain is what a people-search endpoint filters on, so resolution is the step before any prospecting list exists.

Read the site itself. context.dev /web/scrape/markdown turns the homepage into clean text, which is how you get positioning and product language rather than a database's guess at an industry label.

Watch it. akta /v1/news takes a resolved company and returns news, which is the difference between a static list and a monitored one.

The pipeline shape that works: resolve everything, filter on what you learn, then enrich only the survivors. Reversing those last two is the most common way to overspend on B2B data, because enrichment is priced per record and filtering is not.

📖 See also turning a domain into full firmographics for the step after this one.

What resolution costs you when it goes wrong

Worth stating plainly, because the failure is silent and compounding.

A wrong domain does not error. It flows into enrichment, which returns a complete and confident record for the wrong company, which flows into scoring, which files a construction robotics firm under design software. Every step after the mistake works perfectly, which is why nobody catches it until someone reads a list and frowns.

The cost is not the wasted enrichment call. It is that the row now looks identical to a correct one. There is no field in an enrichment response that says "this was resolved from an ambiguous name six weeks ago", unless you put it there.

So the practical defence is bookkeeping rather than cleverness: store the input string, the chosen domain, the candidate count and the date, on every row. Four columns, written once, and they are the only thing that lets a later run tell a careful decision from a coin flip.

We have run the downstream half of this often enough to have written it up: turning a domain into full firmographics is what happens next, and the cost comparison across two providers is what it costs. If the list is heading for prospecting, wiring up an ICP search is the step after that.

Which endpoint should I use for which job?

JobEndpointTakesBilling shape
Name to candidate companiesakta /v1/company/searchName or websiteFree per call
Resolve with brand detailcontext.dev /brand/retrieveDomain, name or tickerPer call
Domain to firmographicspdl /v5/company/enrichWebsite, name, LinkedIn URLPer call
Domain to assessmentakta /v1/company/enrichmentDomainPer result
Read the homepage as textcontext.dev /web/scrape/markdownURLPer call
Watch a resolved companyakta /v1/newsCompanyPer result plus flat fee

Verified present on 2026-08-17 with monid discover. The billing column gives the shape rather than a figure; monid inspect prints the current figure and costs nothing.

When should you not use Monid?

You have a domain already. Resolution is the step you skip when the spreadsheet arrived with websites in it. Go straight to enrichment, and buy that from whoever covers your segment best.

You need legal entity data. Registered names, filings, officers and jurisdictions are a different dataset from commercial firmographics, and the registries that hold them are national. If you need what a company is legally rather than what it sells, look for the registry rather than an enrichment vendor.

You need one vendor's full platform. If a revenue team lives inside a UI with lists, alerts and CRM sync, buy that. We ship an API, a CLI and an MCP server, and none of them is a substitute for the thing a non-engineer opens every morning.

And the caution about us. Endpoint metadata in this catalogue has disagreed with real behaviour before: we measured a company-detail endpoint returning empty commercial fields at full price and published it. A free resolution call removes that risk for the first step and not for the rest, so run one small enrichment before a batch and read what comes back.

Conclusion

Name to website looks like search and behaves like resolution, and the difference shows up on exactly the rows you cannot afford to get wrong: the company that shares a name with a bigger one. A search API hands you the popular answer confidently. A resolution endpoint hands you the candidates and makes you choose, which feels worse and is correct.

Two things matter more than which endpoint you pick. Write down the rule for choosing between candidates, because "take the first row" is a rule too and it is the one that quietly poisons a list. And keep the candidate count next to the domain you chose, because it is the only record you will ever have of how confident that row was.

Start with the free part: monid inspect -p akta -e /v1/company/search shows the schema without spending, and the call itself costs nothing, so you can resolve your whole list before deciding what to enrich. Begin at monid.ai.

FAQ

What happens when two companies genuinely have the same name?

You get both rows back, which is the endpoint working rather than failing. Separate them on whatever second attribute you already hold: the product category returned with each row disambiguates most collisions, and an industry column in your source data is usually enough. If nothing separates them, the honest outcome is to mark the row unresolved rather than pick one, because a wrong domain propagates silently through every step after it.

Can I resolve a company from an email address instead?

Yes, and it is often more reliable than a name, because a corporate email domain is already the answer for most B2B cases. Strip the domain from the address and you have skipped resolution entirely. The exception is free-provider addresses, where the domain tells you nothing about the company and you are back to resolving from a name.

Is a free endpoint worse than a paid one?

Not here, and it is worth understanding why it is free: resolution is the step that makes the paid steps possible, so an endpoint that resolves cheaply is doing its job by increasing what you enrich, not by being a lesser product. The thing to check is coverage rather than quality: a resolution endpoint is only as good as the company database behind it, and none of them cover every small business everywhere.

Should I cache the domains I resolve?

Yes, and with a date. Company names change, companies get acquired, and domains redirect to a parent brand, so a resolution is a fact about the day it was made. Storing the result with its date and its candidate count means a later run can tell what changed rather than silently overwriting a decision somebody made carefully.

Last updated August 2026.

company website apicompany lookupdomain resolutionenrichment