Sales, Marketing & Ad Tech
Company Enrichment API
Your customers type a company name into a form. Everything your product then wants to do depends on resolving that string to an actual organisation.
- CRM vendors
- Sales engagement platforms
- Marketing automation software
- Data platforms and CDPs
What your customers would see
example interfaceMockupIllustrative mockup of the interface we would build. Figures shown are examples, not results from a live deployment.
The problem this solves
Every go-to-market product hits the same wall early. A lead arrives as an email domain and a free-text company name. Routing, scoring, territory assignment, pricing tier and reporting all need firmographics the form did not collect. So the vendor buys enrichment, discovers the coverage is thin outside large US companies, and ends up stitching two or three providers together with reconciliation logic nobody owns.
The hard part is not collecting attributes. It is entity resolution. 'Acme', 'Acme Inc', 'ACME Corporation' and a subsidiary trading under a different name may be one buying entity or four. Mergers, rebrands and holding structures mean a correct answer last year is wrong now. Most enrichment errors that reach a sales team are resolution errors rather than attribute errors, and they are the ones that erode trust in the data fastest.
The second structural issue is staleness. Firmographics are treated as static fields and refreshed on a vendor's schedule, which means headcount figures drift and acquired companies persist as independent records. Change detection — a company moved, was acquired, opened a location, cut headcount — is usually worth more to a sales team than the attributes themselves.
Who buys this
CRM vendors, Sales engagement platforms, Marketing automation software, Data platforms and CDPs
What the API returns
What comes back
- Resolved company identity with confidence and the alternatives considered
- Industry classification across multiple schemes, with the mapping rather than one forced code
- Headcount and revenue estimates with ranges and the basis for each
- Locations distinguished by type: headquarters, office, manufacturing, registered address only
- Corporate structure: parent, subsidiaries and the ultimate buying entity where identifiable
- Technology and hiring signals where the source permits commercial redistribution
- Change events with dates: acquisitions, rebrands, relocations, headcount shifts, funding
- Per-field provenance and freshness, so a stale estimate is visible as one
Endpoints
| Method | Path | Returns |
|---|---|---|
| GET | /v1/companies/resolve | Resolve a domain or name to a company identity |
| GET | /v1/companies/{id} | Full enriched record with provenance |
| POST | /v1/companies/batch | Enrich a list of domains or names |
| GET | /v1/companies/{id}/structure | Parent, subsidiaries and buying entity |
| GET | /v1/companies/{id}/changes | Change events with dates and sources |
| POST | /v1/webhooks/subscribe | Subscribe to changes for a tracked account list |
Request and response
illustrativeRequest
{
"input": { "domain": "example-industries.com", "name": "Acme Industries Inc" },
"include": ["firmographics", "locations", "structure", "changes"],
"min_confidence": 0.8
}Response
{
"resolution": {
"company_id": "cmp_0441209",
"matched_on": "domain",
"confidence": 0.96,
"alternatives_considered": [
{ "company_id": "cmp_0441777", "name": "Acme Industries (Holdings)", "score": 0.61 }
]
},
"firmographics": {
"legal_name": "Example Industries Incorporated",
"industry": { "sic": "3559", "naics": "333242", "custom": "Industrial equipment" },
"headcount": { "estimate": 840, "range": [720, 980], "basis": "filings_and_hiring_signals",
"as_of": "2026-09-30" },
"revenue": { "range_usd": [180000000, 260000000], "basis": "filings", "confidence": 0.74 },
"founded": 1987
},
"locations": [
{ "type": "headquarters", "country": "US", "region": "OH", "confidence": 0.93 },
{ "type": "manufacturing", "country": "MX", "region": "NL", "confidence": 0.81 },
{ "type": "registered_only", "country": "DE", "confidence": 0.88 }
],
"structure": { "parent": null, "subsidiaries": 3, "ultimate_buying_entity": "cmp_0441209" },
"changes": [
{ "date": "2026-07-11", "type": "acquisition", "detail": "Acquired Northbridge Tooling",
"source": "company_announcement" }
],
"freshness": { "firmographics": "2026-09-30", "locations": "2026-08-22" }
}Where the data comes from
| Official company registries | Legal names, registered addresses, filings and officers; openly available in most jurisdictions and the strongest basis for identity |
| Regulatory filings | Where companies file publicly, these give revenue and headcount as reported rather than estimated |
| Permitted public web sources | Company sites and public pages, subject to each site's terms — collection and redistribution are separate permissions and we treat them as such |
| Licensed commercial firmographic data | For coverage outside well-registered jurisdictions; the licence usually restricts redistribution through an API, which shapes what can be resold |
| Your own CRM data | Optional and with your agreement: confirmed account records are the best available ground truth for resolution accuracy |
| Technology and hiring signals | Only from sources whose terms permit commercial use of derived data; several widely-used ones do not |
The intelligence layer
The difference between a demo and a service is mostly in this section. These are the parts that keep the answer trustworthy once real traffic is hitting it.
- Entity resolution as the core of the build: blocking, candidate generation and a scored match rather than string similarity
- Domain as the primary key where available, with careful handling of shared hosting, redirects and country-specific domains
- Alternatives returned with their scores, so an ambiguous resolution is visible to the caller instead of being decided silently
- Headcount and revenue as ranges with a stated basis, because point estimates for private companies are false precision
- Location typing from the evidence — an address appearing only in a registry filing is marked registered-only, not an office
- Corporate structure assembled from registry ownership data, with the ultimate buying entity flagged where it can be established and left null where it cannot
- Change detection by diffing snapshots, with each event carrying its source document
- Accuracy measured against a human-labelled sample and against customer CRM ground truth, reported per field and per region rather than as one headline number
What it changes for the business
Shorter forms
Resolving a domain to firmographics removes fields from signup and lead capture, which measurably improves completion.
Routing and scoring that work
Territory assignment and tiering stop depending on whatever the prospect typed into a free-text field.
Change-triggered workflows
Acquisitions, relocations and headcount shifts become events your customers can build plays on.
One integration instead of three
A single reconciled layer replaces the multi-vendor stitching most GTM products accumulate.
How it fits into your product
How it embeds
- Synchronous resolve endpoint fast enough to run inside a form submission
- Batch enrichment for CRM backfill at scale, with per-record cost predictability
- Change webhooks into your customers' workflow engines
- Confidence thresholds per use, so autofill can be stricter than a reporting rollup
- White-label delivery under your brand and domain
- Field-level entitlements, so attributes you cannot license onward are simply absent rather than silently approximated
Included in every build
- Authentication, scoped API keys and per-customer rate limiting
- Input validation with predictable, documented error responses
- Versioned endpoints so your integration never breaks without notice
- Request and response logging for audit and dispute resolution
- Latency, error-rate and usage monitoring with alerting
- OpenAPI specification, sandbox environment and client examples
- Backups, failover design and a documented recovery procedure
- An agreed support arrangement once the service is live
How we would build it
about 20 weeksDiscovery and feasibility
Weeks 1–3
This one depends heavily on data access, so we start by proving the sources exist, can be licensed for your use, and actually carry the signal the model needs. If they do not, you find out here.
Architecture and baseline model
Weeks 4–6
A written architecture and a baseline model measured against a holdout period, so you know what accuracy you are buying before the full build starts.
Production build
Weeks 7–16
Data pipelines, model training and serving, historical archive, validation harness, API, security, monitoring and documentation.
Validation and integration
Weeks 17–20
Backtesting against held-out history, accuracy reporting your team can audit, integration support and an agreed retraining cadence.
Commercial models
There is no fixed price list, because the cost is driven by data complexity, integration count, model requirements, request volume and the support level you need. Scope is agreed in writing before development starts.
Fixed-scope prototype
A defined slice of the service, built and priced as one piece of work. The usual first step when the business case needs proving internally.
Fixed-price build
An agreed scope against a written architecture, delivered for an agreed price. Best when the requirements are already clear.
Build then retainer
We build the service, then operate and improve it under a monthly agreement covering monitoring, updates and model maintenance.
White-label product
The service runs under your brand, your domain and your pricing, with MLPivot invisible to your customers.
Questions buyers ask
What coverage can you realistically promise?
Strong in jurisdictions with open, machine-readable company registers, and progressively weaker where registers are paywalled, unstructured or incomplete. Small private companies anywhere are the weak spot — headcount and revenue for a thirty-person firm are estimates with wide ranges, and we return them as such. We measure coverage per region during discovery instead of quoting a global percentage.
Can we resell the enriched data to our customers?
For data derived from official registries and permitted public sources, generally yes. For licensed commercial firmographic data, usually not without a redistribution licence, and several providers forbid API resale outright. This is the single most common surprise in these builds, so we map the licence position per field before the architecture is written and design the product so unlicensable fields are absent rather than present and non-compliant.
How accurate are headcount and revenue estimates?
For companies that file publicly, accurate because they are reported. For private companies, they are modelled from hiring signals, registry data and sector benchmarks, and the honest output is a range with a confidence. A single number would be more satisfying and less true.
How do you handle holding companies and subsidiaries?
Where registry ownership data supports it, the structure is returned and an ultimate buying entity is identified. Where it does not, the field is null. Guessing a parent relationship from a shared name is how enrichment tools merge two unrelated companies, and we would rather return less.
What is the refresh cadence?
Registry-sourced fields refresh on filing activity; web-sourced fields on a rolling schedule. Every field carries an as-of date, so your customers can see staleness rather than assume currency. For tracked account lists, change webhooks are the better pattern than polling.
Related blueprints
Lead Scoring API
Calibrated conversion probabilities and prioritisation for leads and opportunities, trained on your own outcomes rather than a generic model.
Buying Intent Intelligence API
Account-level signals that a company may be researching a category, with each signal's strength and basis stated rather than blended into a score.
SEO Ranking Intelligence API
Search positions, ranking movement and location-specific results tracked per keyword and competitor, as a data layer inside your marketing tool.
Want this built for your platform?
Tell us what your product does today and what you want another system to be able to ask it. We will come back with an approach, a scope and a price.