# Company enrichment API: firmographics from a domain

Give your agent a domain and get the company behind it: industry, headcount, location, founding year, tech stack, funding, sometimes revenue. 19 providers do this through one treg.to key. Resolution is a solved problem, so the useful comparison is which fields come back filled, what a miss costs, and how fast.

## What's the best way to ask ChatGPT?

Setup line (paste into any agent): `set up treg — https://treg.to/llms.txt`

Then ask: "Using treg, enrich these 30 domains into a table: company name, industry, headcount, country, founded year and tech stack. Show me the price first, and mark any field that came back empty."

- **Give the domain, not the name** A domain maps to one company. A name is ambiguous and matches the wrong one.
- **Ask for the fields you need** Some providers price per section requested. Asking for everything costs more.
- **Ask it to mark the blanks** An empty field is information. A quietly guessed one is not.
- **Batch when you can** Several providers have a bulk route at half the single-call price.

## Why go through treg.to

- **One key, not 9 accounts** treg.to holds the provider keys. Neither you nor the agent sees them.
- **Price before the call** The provider's own rate, $0.000 markup, from a prepaid balance.
- **No subscription, no seats** Charged per call. $1.00 free per new team, no card to start.
- **Your own keys are free** Already pay Hunter? Register it and those calls are never metered.
- **Switch by changing a word** Another provider is a different word in the prompt, not a new integration.
- **Nothing to integrate** No SDK, no OAuth dance per vendor, no seats.

## Behind the scenes: what ChatGPT sees before it calls

treg.to does not choose for you. It hands ChatGPT this comparison and it picks, or you tell it how.

### Which is cheapest?

- Cheapest per found: The Companies API at $0.0019 (`thecompaniesapi.companies.enrich`)
- Cheapest per result: Bright Data at $0.0015 (`brightdata.x.companies-crunchbase`)
- Cheapest per call: CompanyEnrich at $0.0098 (`companyenrich.companies.enrich`)

Those units are not interchangeable: one call can return many results, so compare on the unit you will actually be billed in.

### Which is the most reliable?

- People Data Labs: 100% over 51 calls, 113ms median
- Apollo.io: 100% over 71 calls, 202ms median
- The Companies API: 100% over 293 calls, 262ms median
- Hunter: 100% over 126 calls, 371ms median
- LeadMagic: 100% over 8 calls, 5.4s median

Measured on treg.to traffic; not a controlled benchmark.

### How do they compare?

| Provider | Price | Accepts | Verified |
|---|---|---|---|
| Bright Data | $0.0015 per result | dataset_id, format, input | unverified |
| The Companies API | $0.0019 per found | simplified, refresh, domain, email | unverified |
| Hunter | $0.0049 per found | domain, clearbit_format | 2026-07-31 |
| Tomba | $0.0089 per found | domain | 2026-08-20 |
| Icypeas | $0.0095 per found | url | 2026-08-20 |
| CompanyEnrich | $0.0098 per call | domain, expand, name, linkedinUrl, linkedinId, twitterUrl | 2026-08-20 |
| Findymail | $0.0198 per found | domain, name, linkedin_url | unverified |
| Brand.dev | $0.025 per found | domain, maxSpeed, maxAgeMs, timeoutMS, force_language, name | 2026-08-20 |
| LeadMagic | $0.025 per found | company_domain, profile_url, company_name | 2026-07-31 |
| Apollo.io | $0.026 per found | domain, website, name, linkedin_url | unverified |
| Diffbot | $0.0299 per call | type, url, name, location, ip, phone | 2026-07-28 |
| Fiber AI | $0.04 per found | companyIdentifier, companyDomain, companyName | unverified |
| PredictLeads | $0.04 per call | id_or_domain | 2026-08-20 |
| Lusha | $0.25 per found | companies | 2026-07-31 |
| People Data Labs | $0.38 per found | website, name, profile, ticker, location, locality | 2026-07-31 |
| Coresignal | $0.392 per found | website, fields, id | unverified |
| Akta by Wokelo | $0.875 per found | company, sections | 2026-07-31 |
| Crunchbase | own account, free | field_ids, card_ids, entity_id | unverified |
| Ocean.io | own account, free | company, people, fields, domains, companyDataMapping, webhookUrl | 2026-08-20 |

Endpoints:

- `akta.companies.enrich`: treg call akta.companies.enrich --query company=canva.com --query sections=location
- `apollo.companies.enrich`: treg call apollo.companies.enrich
- `branddev.brand.retrieve`: treg call branddev.brand.retrieve --query domain=stripe.com --query maxSpeed=true
- `branddev.brand.retrieve-by-name`: treg call branddev.brand.retrieve-by-name --query name=Anthropic
- `branddev.brand.retrieve-by-email`: treg call branddev.brand.retrieve-by-email --query email=support@stripe.com --query maxSpeed=true
- `branddev.brand.retrieve-by-ticker`: treg call branddev.brand.retrieve-by-ticker --query ticker=NVDA --query maxSpeed=true
- `branddev.brand.retrieve-by-isin`: treg call branddev.brand.retrieve-by-isin --query isin=US0378331005 --query maxSpeed=true
- `brightdata.x.companies-crunchbase`: treg call brightdata.x.companies-crunchbase
- `companyenrich.companies.enrich`: treg call companyenrich.companies.enrich --query domain=stripe.com
- `companyenrich.companies.enrich.by_properties`: treg call companyenrich.companies.enrich.by_properties --data '{"name":"Anthropic","linkedinUrl":"https://www.linkedin.com/company/anthropicresearch"}'
- `companyenrich.companies.enrich.batch`: treg call companyenrich.companies.enrich.batch --data '{"domains":["stripe.com","anthropic.com"]}'
- `companyenrich.companies.get`: treg call companyenrich.companies.get --query id=0192577c-1d7a-715c-a5b7-1b9b530445e0
- `coresignal.companies.enrich`: treg call coresignal.companies.enrich
- `coresignal.companies.collect`: treg call coresignal.companies.collect
- `crunchbase.companies.enrich`: treg call crunchbase.companies.enrich
- `diffbot.companies.enrich`: treg call diffbot.companies.enrich --query type=Organization --query url=https://www.diffbot.com --query size=1
- `diffbot.companies.bulk_enrich`: treg call diffbot.companies.bulk_enrich --query name=treg-verify --data '[{"type":"Organization","url":"diffbot.com"}]'
- `fiber-ai.companies.enrich`: treg call fiber-ai.companies.enrich --data '{"companyDomain":{"value":"stripe.com"}}'
- `findymail.search.company`: treg call findymail.search.company --data '{"domain":"stripe.com"}'
- `hunter.companies.enrich`: treg call hunter.companies.enrich --query domain=stripe.com
- `icypeas.companies.enrich`: treg call icypeas.companies.enrich --query url=https://www.linkedin.com/company/stripe/
- `leadmagic.companies.enrich`: treg call leadmagic.companies.enrich --data '{"company_domain":"leadmagic.io"}'
- `lusha.companies.enrich`: treg call lusha.companies.enrich --data '{"companies":[{"domain":"lusha.com"}]}'
- `oceanio.companies.enrich`: treg call oceanio.companies.enrich --data '{"company":{"domain":"stripe.com"}}'
- `oceanio.companies.lookup_bulk`: treg call oceanio.companies.lookup_bulk --data '{"domains":["stripe.com"]}'
- `oceanio.companies.enrich_bulk`: treg call oceanio.companies.enrich_bulk --data '{"companyDataMapping":{"c1":{"company":{"domain":"anthropic.com"}}},"webhookUrl":"https://example.com/treg-webhook","fields":["domain","name","employeeCountOcean"]}'
- `pdl.companies.enrich`: treg call pdl.companies.enrich --query website=peopledatalabs.com
- `predictleads.companies.enrich`: treg call predictleads.companies.enrich
- `thecompaniesapi.companies.enrich`: treg call thecompaniesapi.companies.enrich
- `thecompaniesapi.companies.enrich_by_email`: treg call thecompaniesapi.companies.enrich_by_email
- `tomba.companies.enrich`: treg call tomba.companies.enrich --query domain=stripe.com

## What people actually struggle with

Everybody wants the same thing here, and the arguments are about what comes back and what it costs. From ~180 Reddit and X posts in August 2026, with the vendor rings removed.

**The ask, in the buyer's own words**

> "I'll give it a company name/website and it will return company size, industry, founded, market cap, maybe leadership info, etc." (r/CRM, 17 points: https://www.reddit.com/r/CRM/comments/1si1jbw/crm_enrichment_apis/)

What this page can do about it: That is exactly this job, and 19 providers do it. The comparison below is about which fields each one actually fills, because the ask is identical everywhere.

**Resolution rate is not a buying signal**

> "Every provider resolves between 94.7% and 100% of domains. That spread is not a buying signal." (r/gtmengineering: https://www.reddit.com/r/gtmengineering/comments/1vl0kht/independent_open_source_benchmark_of_company/)

What this page can do about it: Right, so this page does not rank on it. Compare on what a filled record contains, what an empty one costs you, and the measured latency, which is where the real spread is.

**A guessed field is worse than a blank one**

> "A pipeline that appends fields without validating them just produces confident-looking wrong data, which is worse than an empty field" (r/Data_Enrichment: https://www.reddit.com/r/Data_Enrichment/comments/1vqoj48/what_is_data_enrichment/)

What this page can do about it: Most providers do not distinguish observed from inferred fields, and we will not pretend otherwise. Ask the agent to keep blanks blank, and treat headcount and revenue as estimates unless the provider says otherwise.

**Credits are not comparable between vendors**

> "Every vendor on this list uses the word “credit,” and none of them mean the same thing" (r/Data_Enrichment: https://www.reddit.com/r/Data_Enrichment/comments/1vrl2q4/data_enrichment_pricing_2026_august_update/)

What this page can do about it: Which is why every price on this page is in dollars per call, converted from each provider's own unit at their published rate, with the date we last verified it.


## What actually differs

- Headcount, revenue and industry are inferred by most providers, not observed, and almost none of them mark which is which. A confidently wrong headcount does more damage in a scoring model than a blank one, so ask your agent to keep the empties visible.
- The billing units are genuinely different products. Akta prices per section of the record you request; CompanyEnrich charges one credit per call and five more for the workforce expansion; Hunter charges only when name, size and location all come back; Ocean.io's bulk lookup is half the price of its single enrichment. The word credit means something different at every vendor, which is why this page prices everything in dollars per call.
- Use the deterministic route when you have a domain. CompanyEnrich's by-domain lookup maps one domain to exactly one company, while its by-properties route is a fuzzy match at the same price. The Companies API returns an empty object and charges nothing when a domain has no company behind it.

## What is a company enrichment API?

It resolves a domain, company name or LinkedIn URL to a structured company record: legal name, industry, employee count, headquarters, founding year, and depending on the provider the technology stack, funding history, web traffic and social profiles. It is what turns a signup email domain into a qualified account.

## Questions

**What do I send in?** A domain gives the highest match rate and is deterministic. Most providers also accept a company name, a LinkedIn URL or a work email, and a few take a stock ticker.

**Which fields can I count on?** Name, domain, industry, location and an employee range come back almost everywhere. Tech stack, funding, revenue and web traffic are provider-specific, and revenue in particular is usually modelled.

**What happens when a domain has no company?** It varies, and it is worth knowing before a batch: some return a 404, some an empty object, and the free-mail domains are refused outright. Several providers do not bill for a miss.

**Is this how I qualify signups?** Yes, that is the common use: turn the new user's work email domain into firmographics and route the account. One provider has a route that takes the email address directly.

HTML version: https://treg.to/use-cases/data-enrichment-sales/enrich-a-company