Home › Basics › How to Get Company Data Through an API: A Step-by-Step Path
How to Get Company Data Through an API: A Step-by-Step Path
To get company data through an API, pick a provider, create a key, then send a domain, URL or work email to a lookup endpoint with an Authorization header. The response is structured JSON with firmographic fields, plus a flag telling you whether the company was found at all.
Decide what you are looking up
The identifier shapes everything else. Most company data APIs accept one of three inputs: a website domain, a full URL, or a work email address from which the domain is extracted. Domains are the best key because they are stable, unique and easy to normalise. Company names are ambiguous (“Delta” could be an airline, a faucet maker or a dental plan) and are rarely supported as a direct lookup.
If your data starts as a messy CRM export, your first job is cleaning: lowercase, strip www., drop paths, remove personal mail domains such as gmail.com. A fifth of a signup list can disappear at that step, and that is correct, because a free-mail address tells you nothing about an employer.
Step 1: choose an interface
REST suits code that decides when to enrich: a signup hook, a nightly sync, a one-off clean-up script. A tool interface over MCP suits an AI assistant that decides on its own when a company question needs an answer. The BusinessMCP Company Data API offers both, with the same inputs and prices on each, which keeps cost modelling simple. Our piece on company data for AI agents covers the agent side.
Step 2: get a key and make the first call
Sign up, create a key in the developer area and store it as an environment variable, never in source control. Then make the simplest possible request. According to the provider’s page, a lookup is a GET on /api/hub/v1/companies/{domain} with a bearer token:
curl https://businessmcp.com/api/hub/v1/companies/stripe.com \
-H "Authorization: Bearer $BUSINESSMCP_API_KEY"
Read the response in two layers. First, did it find the company? Second, if so, which fields came back? The page states that firmographics include name, industry, size, location, phone and LinkedIn, and that the exact JSON field names are in the API reference, so check that reference rather than guessing key names.
Step 3: handle the three outcomes
| Outcome | What it means | What to do |
|---|---|---|
| Found with fields | A record exists | Write fields to your database with a fetched-at date |
| Found, partial fields | Some attributes are blank | Store blanks as null; do not fill with guesses |
| Not found | No record for that domain | Mark unknown, retry in weeks, not hours |
| Error (4xx/5xx) | Request or service problem | Retry only if the error says it is retryable |
Key takeaway: the quality of a company data integration shows in how it treats misses. A pipeline that guesses on a miss pollutes your CRM; one that records “unknown” stays trustworthy.
Step 4: budget before you scale
Pricing models differ widely, and the difference between “pay per call” and “pay per hit” can move a bill by a large factor. BusinessMCP’s page says its lookups are charged only when a company is found, at $0.02 per call, and that not-found returns are free. If you expect a 70 percent hit rate on 10,000 domains, that logic implies roughly 7,000 charged lookups, though your real rate depends on your list. Our pricing comparison lays out other models side by side.
A sensible test plan:
- Export 300 to 500 real domains from your CRM or signups.
- Remove duplicates and personal mail domains.
- Resolve them with the candidate API and record found, partial and not-found counts.
- Hand-check 30 found records against the company’s own website.
- Multiply the hit rate by your full list size to estimate spend.
Step 5: cache and respect limits
Company facts change slowly, so cache results. The provider’s own guide suggests keeping hits for about 30 days and misses for about a week, with domains normalised as the cache key. The same guide lists rate limits of 600 requests per minute per key and 60 per minute for bulk and per-unit tools, so batch work instead of firing thousands of single calls. See bulk company lookup for how batches behave.
Step 6: know what you are not getting
Every company data API has a ceiling. This one is described as company-level only: no people, no personal emails, and no revenue, funding or intent data, according to its guide. If you need those, you are shopping in a different tier, usually with a sales call. Our overview of enrichment API options explains where each type of data tends to come from.
A short checklist before you ship
- Personal mail domains filtered before any call.
- Domain normalised before caching.
- Not-found stored as unknown with a date.
- Spend cap or balance alert configured.
- Fields mapped by checking the reference, not by assumption.
- A clear note in your data dictionary on which source filled which field.
If you want to see raw output before writing code, the free company lookup tool from the same provider answers single-domain questions in a browser.
Common first-week mistakes
Teams new to enrichment tend to repeat the same errors. They loop over a whole table without deduplicating, paying for the same domain repeatedly. They treat an industry label as precise when it is a category label from a public source. They overwrite a salesperson’s hand-entered data with an API value. And they forget that employee counts arrive as ranges, so a field called size is a band, not a headcount.
The fix for each is a short written contract: what the API may overwrite, what it may only fill when empty, and what a human owns. That contract is worth more than any vendor feature, and it makes later CRM integration far less painful.
Frequently asked questions
How do I get company data through an API?
Choose a provider, create an API key, send a domain or email to a lookup endpoint with a bearer token, and read the structured response. Handle the not-found case explicitly.
Do I need a domain to look up a company?
Usually yes. Most lookup APIs key on a domain, URL or work email. Name-only lookup is a different, fuzzier problem that not every vendor supports.
Is there a free way to try company data?
Several vendors offer a free tier or trial credit, and BusinessMCP also publishes a free company lookup tool for single domains.
What happens when the API does not know the company?
A well-designed API returns an explicit not-found flag rather than a made-up record. Store that as unknown and avoid retrying the same domain every day.