Company Data Enrichment — Firmographics, Revenue & HQ
Pricing
from $1.00 / 1,000 results
Company Data Enrichment — Firmographics, Revenue & HQ
Enrich a list of company names or domains with clean firmographics: website, industry, HQ, employee count, revenue range, founded year, ownership & description as JSON. A low-cost ZoomInfo / Clearbit alternative for CRM enrichment, lead lists & sales intelligence.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
2
Bookmarked
112
Total users
61
Monthly active users
18 days ago
Last modified
Categories
Share
Company Data Enrichment — Firmographics, Revenue & HQ
Have a list of company names or domains and need clean, structured firmographics for each? This Actor turns that raw list into ready-to-use company records — industry, headquarters, employee count & range, revenue range, founded year, ownership, CEO, description and logo — one flat row per company, ready to drop straight into your CRM, spreadsheet or data pipeline.
Every name or domain is resolved to the canonical company profile via search (not naive slug-guessing), so a typed name lands on the right company — and you can paste a domain for an exact match. It's a low-cost, pay-as-you-go alternative to ZoomInfo, Clearbit and Apollo: no seat licenses, no annual contract. Runs on Apify with API access, scheduling, integrations and proxy rotation.
- 🏢 Names or domains in → firmographics out — industry, HQ, size, revenue range, founded year, ownership, CEO, description & logo
- 🎯 Accurate matching — each input resolves to the canonical company profile (not slug-guessing); paste a domain for an exact match
- 💸 Pay-as-you-go — no seat license, no annual contract; unmatched companies aren't billed by default
- ⚡ One run → one clean, flat dataset (JSON / CSV / Excel / API)
Quick start (API)
Enrich three companies by name in a single call:
curl -X POST "https://api.apify.com/v2/acts/foxlabs~company-enrichment/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "companyNames": ["Stripe", "Notion", "Datadog"], "maxResults": 100 }'
Prefer no code? Open the Input tab, paste your names or domains, and click Start — then download the enriched results.
What you get
One clean, flat record per company:
| Field | Type | Description |
|---|---|---|
name | string | Company display (short) name |
legalName | string | Full legal company name |
website | string | Official company website |
domain | string | Root domain |
industry | string | Industry sectors, comma-joined |
industries | array | Industry / sector tags |
headquarters | string | HQ as city, state, country |
address | object | { street1, street2, city, state, country, zipcode } |
yearFounded | number | Founding year |
employees | number | Employee count |
employeesFormatted | string | Readable headcount, e.g. 8,000 |
employeesRange | string | Headcount bucket, e.g. 5K-10K |
revenueFormatted | string | Readable revenue estimate, e.g. $14.4B |
revenueRange | string | Revenue bucket, e.g. $10B+ |
ownership | string | Public or Private |
ceo | object | { name, designation, rating, photoUrl, linkedin, twitter } |
description | string | Company description |
logo | string | Company logo URL |
matched | boolean | true when the input resolved to a profile |
url | string | Source company profile URL |
scrapedAt | string | ISO 8601 timestamp of the enrichment |
Unmatched inputs are skipped by default (and not billed). Turn on Include unmatched to get an explicit row per unresolved input with the fields above set to
nullplus anerrormessage.
Sample output
{"url": "https://www.owler.com/company/stripe","name": "Stripe","legalName": "Stripe, Inc.","website": "https://stripe.com","domain": "stripe.com","industry": "Finance, Payments","industries": ["Financial Services", "Payments"],"headquarters": "San Francisco, California, United States","address": {"street1": "354 Oyster Point Blvd","street2": null,"city": "San Francisco","state": "California","country": "United States","zipcode": "94080"},"yearFounded": 2010,"employees": 8000,"employeesFormatted": "8,000","employeesRange": "5K-10K","revenueFormatted": "$14.4B","revenueRange": "$10B+","ownership": "Private","ceo": {"name": "Patrick Collison","designation": "CEO","rating": null,"photoUrl": null,"linkedin": null,"twitter": null},"description": "Stripe builds economic infrastructure for the internet...","logo": "https://logo.owler.com/assets/images/stripe.png","matched": true,"scrapedAt": "2026-07-05T12:00:00.000Z"}
Download the dataset as JSON, CSV, Excel, HTML or XML.
Example inputs (copy & paste)
// 1) Enrich a list of company names (the quick-start recipe){ "companyNames": ["Stripe", "Notion", "Datadog"], "maxResults": 100 }// 2) Exact matching by domain (most accurate){ "companyDomains": ["stripe.com", "notion.so", "datadog.com"], "maxResults": 500 }// 3) Big list — return an error row for anything that can't be matched{ "companyNames": ["Acme Corp", "Globex", "Initech"], "includeUnmatched": true, "maxResults": 1000 }// 4) Enrich exact profile URLs (or upload a .txt / .csv of them){ "companyUrls": [{ "url": "https://www.owler.com/company/stripe" }, { "url": "https://www.owler.com/company/notion" }] }// 5) High-throughput bulk run — push concurrency for a big domain list{ "companyDomains": ["stripe.com", "notion.so", "datadog.com", "figma.com", "airtable.com"], "maxConcurrency": 40, "maxResults": 5000 }// 6) Unlimited — enrich the whole list with no cap (maxResults 0){ "companyDomains": ["stripe.com", "notion.so", "datadog.com"], "maxResults": 0 }// 7) Combine names + domains in a single run (sources merge){ "companyNames": ["Stripe"], "companyDomains": ["notion.so", "datadog.com"], "maxResults": 200 }
Input & filters
- Company names — paste one per line (e.g.
Stripe,Notion); each is resolved to its canonical company profile. - Company domains — the most accurate option; paste
stripe.com,notion.so… for an exact match. - Company URLs / file upload — paste exact profile URLs, or upload a
.txt/.csvof many companies. - Maximum number of companies — hard cap; pay-per-result scales linearly.
0= unlimited, up to 100,000. - Concurrent lookups — how many companies to enrich in parallel (default 10, up to 50).
- Include unmatched — off by default (you're not billed for unmatched); turn on for an explicit error row per unresolved input.
- Proxy — Apify Datacenter proxy is sufficient (included free on every plan).
At least one of names, domains or URLs is required.
Use cases
- CRM enrichment. Feed a list of account names or domains and append industry, HQ, employee range, revenue range, founded year, ownership and CEO to every record. Missing fields come back
null— never a guess — so your CRM stays clean. - Lead-list enrichment & scoring. Turn a raw list of names/domains into scored leads: prioritise by
employeesRange+revenueRange+ownershipto route the biggest accounts to your best reps. - TAM & market sizing. Enrich a segment list, then bucket by industry, size and revenue range to size a market and spot the leaders.
- Sales prospecting & personalisation. Pull the CEO name, description and industry to tailor outbound and open with something relevant instead of a generic template.
- Data cleanup & dedupe. Resolve messy, hand-typed company names to a canonical company + root domain, then use the domain as a reliable dedupe / join key across systems.
- Spot enrichment without a subscription. A pay-as-you-go alternative to ZoomInfo / Clearbit / Apollo for teams that need enrichment on demand, not an annual seat license.
Performance & throughput
Enrichment runs on fast HTTP requests (Cheerio — no headless browser), so each company is typically fetched in a second or two. Throughput scales with Concurrent lookups (maxConcurrency, default 10, up to 50) and your Apify plan. Each input company is a single request — exact-list enrichment, no crawling beyond your list — and Datacenter proxy is sufficient: no residential proxy, external keys or rate limits to manage.
Integrations
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('foxlabs/company-enrichment').call({companyNames: ['Stripe', 'Notion', 'Datadog'], maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("foxlabs/company-enrichment").call(run_input={"companyDomains": ["stripe.com", "notion.so"], "maxResults": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item.get("industry"), item.get("revenueFormatted"))
Also works with Make / n8n / Zapier (Apify app → run this Actor, map the input), scheduled runs, webhooks, and the Apify MCP server for AI agents.
Data quality
- Source. Firmographics are read from public Owler company profiles (parsed from the profile's embedded data, not fragile HTML selectors).
- Matching. Names and domains are resolved to the canonical company via Owler's search — not slug-guessing that can land on a wrong or squatter profile. A domain gives the most reliable match; an ambiguous one-word name is the main matching risk.
- Coverage. It varies by company — large public companies are the richest; small and private companies are sparser. Any field the profile doesn't publish is returned as
null, never fabricated. - Estimates. Revenue and employee figures are estimates, not audited filings — use the ranges for segmentation and scoring.
Pricing
Pay per result — you're billed per company returned, and by default you're not billed for companies that can't be matched (toggle with Include unmatched). There's an Apify free tier to evaluate the full output before you scale, and Datacenter proxy is sufficient, so there are no residential-proxy or third-party data costs on top. See the Actor's pricing panel on its Apify page for the current per-result rate.
FAQ
What do I give it as input? A list of company names, domains, or company profile URLs (or upload a .txt / .csv). At least one is required.
Names or domains — which is more accurate? Domains give an exact match. Names are resolved via Owler's search and are accurate for most companies, but an ambiguous one-word name can resolve to the wrong company — use the domain when in doubt.
Where does the data come from? Public Owler company profiles. Always verify your use complies with the source's Terms of Service and applicable data-protection law.
Why are some fields empty? Coverage varies by company; missing fields return null (small/private companies are sparser). Values are never guessed.
Are the revenue and employee numbers exact? No — they're estimates, not filed financials. Use revenueRange / employeesRange for bucketing.
Am I billed for companies that can't be matched? No, not by default. Turn on Include unmatched to get an explicit error row per unresolved input.
What export formats are available? JSON, CSV, Excel, HTML, XML, or via the Apify API and integrations.
How many companies can I enrich in one run? Up to 100,000 via maxResults (set 0 for unlimited).
Do I need residential proxies? No — Apify Datacenter proxy (free on every plan) is sufficient.
Can I schedule it or call it from my app? Yes — use the Apify API, the JS/Python clients, Make / n8n / Zapier, webhooks, or the Apify MCP server.
Troubleshooting
- 0 results / everything unmatched → check the inputs are real companies, try domains for exact matching, and turn on Include unmatched to see an
errorrow explaining which inputs didn't resolve. - The wrong company was matched → a short or ambiguous name resolved to another company. Re-run that entry with its domain (
companyDomains) or its exact profile URL (companyUrls). - Some fields are
null→ that company's public profile doesn't publish them (common for small/private companies); values arenull, never fabricated. - A big list feels slow → raise Concurrent lookups (
maxConcurrency, up to 50); overall throughput also depends on your Apify plan.
Notes, limits & legal (honest)
- Source. Data comes from public Owler company profiles; this Actor structures information that is already publicly visible.
- Estimates, not filings. Revenue and employee counts are estimates and can lag reality — treat them as directional signals.
- Personal data. The
ceoobject contains a named individual from the public profile. If you process personal data, ensure you have your own legal basis (e.g. GDPR). - Your responsibility. Always verify your use complies with the source's Terms of Service and applicable data-protection law.
- Not affiliated with Owler or with any company listed; trademarks belong to their respective owners.
Support
Questions, a field you'd like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr. We reply fast.
If this Actor saves you time, a ⭐ review really helps.
Changelog
0.2 — 2026-07-05
- Reworked docs: API quick-start, sample output, integrations, FAQ & troubleshooting.
2026-06-29 — accuracy & speed update
- Much higher match accuracy — company names are now resolved to the correct profile via Owler's search API (returns the canonical company), instead of naive slug guessing that could land on a wrong/squatter profile.
- New: company domains input — paste domains (e.g.
stripe.com) for exact matching. - No billing for unmatched companies — off by default; toggle with Include unmatched.
- Faster runs (reduced retry overhead).
🔗 foXLabs B2B Intelligence Suite
| Actor | Best for |
|---|---|
| Owler — Company Data, Revenue, Competitors & Funding | Firmographics + competitor graph + funding & news |
| Craft.co — Financials, Valuation & M&A | Revenue/income statements, valuation, acquisitions, executives |
| Built In — Tech Stack, Employees & Jobs | Tech stack, exact headcount & hiring signals |
| Glassdoor — Ratings, Reviews & Size | Employer rating, reviews, % recommend, CEO approval, size |
| Indian Company Data | 🇮🇳 India: CIN, directors, financials & charges (MCA/Tofler) |
| Free Company Lookup | 🆓 Quick basics — try before you enrich at scale |
Part of the foXLabs data platform — public-data company, contact, ownership, financial, jobs, location & AI-search intelligence scrapers. Browse the full suite and free how-to guides at data.foxlabs.com.tr.
