Company Enrichment API: Domain to Company Data — Firmfold
Pricing
$10.00 / 1,000 company enricheds
Company Enrichment API: Domain to Company Data — Firmfold
Get a full company profile from a domain, work email or company name: logo, tech stack, email security, domain age, contacts, socials, hiring and firmographics (founded, employees, HQ). B2B company data enrichment API, Clearbit alternative. $0.01 per company; misses free.
Pricing
$10.00 / 1,000 company enricheds
Rating
0.0
(0)
Developer
CyberMax
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Firmfold: company enrichment API (domain, email or name to full company profile)
Full company profiles from a domain, email or name
Give it domains, work emails or company names; get one flat row per company with logo, tech stack, email security, contacts, socials, hiring and firmographics, for $0.01 per company.
▶ Try it now with a prefilled input · $0.01 per company enriched, misses free (1,000 companies = $10) · Apify's free plan includes $5 of credit a month, enough for up to about 500 companies
Built for: Sales and RevOps teams filling a CRM · Clay and Google Sheets list builders · Agencies qualifying leads · AI agents that need company context
Real output (real run on Apify, 24 Sep 2026):
| Input | Company | Site runs on | Email on | Public contact | Open jobs | Founded · employees · HQ |
|---|---|---|---|---|---|---|
| stripe.com | Stripe | Next.js, Nginx | Google Workspace | linkedin.com/company/stripe | 692 | 2010 · 8000 · San Francisco |
| figma.com | Figma | Sanity, Next.js, CloudFront, Netlify… | Google Workspace | press@figma.com | 159 | 2012 · 324 · San Francisco |
| brick.com | Acme Brick Company | WordPress, WooCommerce, Fastly… | Mimecast | contact@brick.com | 0 | not on Wikidata (left empty) |
Also in each row: the official domain, brand colour, MX/SPF/DMARC, domain age, phones, address, new jobs in the last 30 days, industry, ticker and parent company. It folds five tested CyberMax tools into one row with the same ~60 keys every time, ready for Google Sheets, Clay, HubSpot, Salesforce or an AI agent: a Clearbit Enrichment alternative with no LinkedIn scraping and no sign-up anywhere else. Unknown names, dead domains, personal email providers (gmail.com…) and, in monitor mode, unchanged companies are free.
Why Firmfold
- One call instead of five. Buying the same fields from the single tools costs about $0.021 per company; Firmfold is $0.01.
- Every row has the same shape. Missing data is
nullor[], never a missing key, so a spreadsheet or CRM mapping never breaks.modulesFilledsays which parts found data. - Change alerts for scheduled CRM refreshes. Monitor mode returns only companies whose profile changed (new tech, new contacts, a rebrand, a big hiring jump) and says which parts changed. Unchanged companies cost nothing.
- Names work too. "Acme Brick Company" becomes
brick.comfirst (with a confidence score), then gets the full profile. - Honest data. Firmographics come only from a Wikidata record whose official website is this domain. If there is no such record the fields stay empty; they are never guessed.
What you get (one record per company)
| Group | Fields |
|---|---|
| Identity | domain, website, companyName, description, language, domainSource (input or name-lookup), domainConfidence |
| Logo (Logolark) | logoUrl, iconUrl, logoFormat, logoIsIcon, brandColor (every image is downloaded and checked) |
| Tech & domain (DomainDNA) | techStack[], cms, ecommerce, analytics[], hosting[], emailProvider, spf, dmarcPolicy, domainCreatedAt, domainAgeYears, registrar, domainExpiresAt, tlsExpiresAt, securityHeadersScore |
| Contacts (Hollerdex) | bestEmail, emails[{email,label}] (sales, support, press, general…), phone, phones[], linkedin, x, facebook, instagram, youtube, tiktok, github, contactPageUrl, contactFormUrl, salesUrl (scheduler, demo or sign-up link), contactRoute (the best public way in: email, contact form, contact page, phone, sales link or LinkedIn company page), address |
| Hiring (HireHeat) | hiringOpenJobs, hiringNewLast30Days, hiringLevel, hiringTopFunctions[], hiringTopLocations[], hiringRemoteJobs, jobBoardUrl, jobBoardAts (Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee) |
| Firmographics (Wikidata, CC0) | wikidataId, founded, employees, employeesAsOf, hqCity, hqCountry, hqCountryCode, industries[], ticker, stockExchange, parentCompany |
| Run info | status, modulesFilled[], summary, errors[], sources, ms, enrichedAt; in monitor mode change and changedModules[] |
status is enriched (charged), domain-not-found (unknown name or a domain that doesn't resolve; free, with bestGuessDomain when there was a weak match) or invalid (free).
Ready-made inputs (first try in one click)
A domain, a name and a work email, every part on (the Store's prefilled input; about 20 s, 3 × $0.01):
{ "companies": ["stripe.com", "Notion", "hello@linear.app"] }
Company names to full profiles (names with "&" work: GW&K Investment Management → gwkinvest.com):
{ "companies": ["Acme Brick Company", "GW&K Investment Management", "Monzo Bank | gb"] }
Weekly CRM refresh, only changed companies returned (pair with a Schedule):
{ "companies": ["stripe.com", "g-p.com", "hubspot.com"], "monitor": true, "monitorKey": "crm-accounts" }
Input
{"companies": ["stripe.com", "Notion", "hello@linear.app", "Acme Brick Company", "Monzo Bank | gb"],"modules": ["logo", "tech", "contacts", "hiring", "firmographics"]}
| Field | Default | What it does |
|---|---|---|
companies | required | One per line: domain, URL, work email or company name. Add a country to a name after a bar ("Hiscox | gb"). Duplicates are skipped. |
modules | all | Pick parts to save time. The domain check, tech stack and email security always run. |
country | none | Default country for names (helps with ambiguous names). |
monitor / monitorKey | false / auto | Return only new or changed companies (see below). |
includePersonalEmails | false | Off: only role addresses (sales@, support@…). On: also named people's addresses that the company publishes itself. |
minDomainConfidence | 0.6 | For names: below it the company is returned free as domain-not-found. |
maxConcurrency | 5 | Companies in parallel (5 is right for 1 GB memory). |
timeoutSecs | 20 | Time budget per part; a slow part is cut off and noted in errors, the rest of the profile still comes back. |
maxContactPages | 4 | Pages read per site for contacts. |
proxyConfiguration | off | Optional Apify Proxy for sites that block data-centre IPs. |
Output (real record from an Apify run, 24 Sep 2026, trimmed)
{"input": "figma.com","status": "enriched","domain": "figma.com","companyName": "Figma","logoUrl": "https://static.figma.com/app/icon/2/icon-512.png","brandColor": "#000000","techStack": ["Sanity", "Next.js", "Amazon CloudFront", "Netlify", "Font Awesome", "Vimeo embed"],"cms": "Sanity","emailProvider": "Google Workspace","dmarcPolicy": "quarantine","domainAgeYears": 27.4,"bestEmail": "press@figma.com","emails": [{ "email": "press@figma.com", "label": "press" }, { "email": "legal@figma.com", "label": "legal" }],"linkedin": "https://www.linkedin.com/company/figma","x": "https://x.com/figma","hiringOpenJobs": 159,"hiringNewLast30Days": 38,"hiringLevel": "very strong","hiringTopFunctions": ["sales", "engineering", "design", "data", "product"],"jobBoardUrl": "https://boards.greenhouse.io/figma","wikidataId": "Q96186334","founded": "2012","hqCity": "San Francisco","hqCountry": "United States","modulesFilled": ["logo", "tech", "contacts", "hiring", "firmographics"],"summary": "Figma (figma.com): founded 2012, 324 employees, HQ San Francisco, United States; site on Sanity; email on Google Workspace; 159 open jobs (38 new in 30 days); contact press@figma.com; 6 social profiles."}
The full records of that run are available on request; the table and example above are copied from it unchanged.
Tested on real companies
Real Apify run on 40 mixed inputs (domains, work emails, names, a gmail address and a made-up domain), 24 Sep 2026: 38 of 38 real companies enriched, the gmail address and the made-up domain returned free, 93 s for the whole run at 1 GB, about $0.0001 of compute per company. Parts found: tech 37/38, firmographics 33/38, logo 32/38, contacts 30/38, hiring 19/38 (many companies simply have no public job board on the six systems checked). Names resolved correctly: Acme Brick Company → brick.com, Monzo Bank → monzo.com, Hiscox → hiscoxgroup.com, Ben & Jerry's → benjerry.com.
Same 10 domains through two other enrichment Actors (details in examples/benchmark-2026-09-24.json):
| Firmfold | foxlabs/company-enrichment | mambalabs/company-firmographic-enricher | |
|---|---|---|---|
| Tech stack, MX, SPF/DMARC, domain age | 10/10 | none | none |
| Role emails, phones, socials | 9/10 | none (address only) | phone on 3/10 |
| Hiring activity | yes (3 of these 10 have public boards) | none | none |
| Founded / employees / HQ | 9/10 (Wikidata) | 10/10 (Owler) | founded 2/10, employees 1/10 |
| Revenue range, CEO, competitors | not provided | yes | revenue estimate |
| Change alerts | yes | no | no |
If you need revenue estimates or CEO names, use an Owler-based tool; if you need what a company runs, how to reach it and whether it's growing, use Firmfold.
Why it pays for itself
- By hand: about 10 minutes per company to find the site, check its tech, hunt for a contact address, look at its jobs page and look up founding year and HQ (estimate), so 500 companies ≈ 83 hours; here $5.
- One call instead of five: buying the same fields from the single CyberMax tools costs about $0.021 per company; Firmfold is $0.01.
- Store rivals george.the.developer/company-enrichment-api and renzomacar/company-enrichment charge $0.02 per company (renzomacar also $0.01 per run start); nexgendata/company-enrichment-tool charges $0.10 per result (Apify Store pricing, checked 25 Sep 2026). CyberMax: $0.01, misses free.
- Monitor mode for CRM refreshes: only companies that changed (new tech, new contacts, a rebrand, a hiring jump) are returned and charged.
▶ Run it on your own list: the example input is already filled in, so the first run takes one click.
Pricing
$0.01 per company enriched (pay per event, no subscription, no start fee). Free: unknown names (domain-not-found), dead domains, personal email providers (gmail.com…), invalid input, and in monitor mode every unchanged company. Compute is small (about $0.0001 per company at 1 GB) and runs on your Apify plan.
When NOT to use Firmfold
- You need people (named decision makers, personal emails, phone numbers of employees). Firmfold only returns what a company publishes about itself.
- You need revenue, funding or valuation: not in this data.
- You only need one field group for many companies: the single tools are cheaper per call (see below).
- Sites behind strong bot walls (some large retailers) may return tech and firmographics but no contacts; that part is listed in
errorsand you're still charged only once for the rest.
Run it on a schedule (CRM refresh)
- Save your company list as a task with
"monitor": trueand amonitorKeysuch as"crm-accounts". - Schedule it daily or weekly in Apify (Schedules → Create).
- Each run returns only companies that are new or changed, with
changedModules(e.g.["tech"]when a company moves from Mailchimp to HubSpot,["contacts"]for a new sales email,["hiring"]for a 20%+ jump in open roles,["logo"]for a rebrand). Unchanged companies are not returned and not charged. A part that failed on this run keeps its old value, so a flaky site never triggers a false alert.
Integrations: code, no-code and AI agents
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("cybermax/company-enrichment").call(run_input={"companies": ["stripe.com", "Notion"]})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["companyName"], row["cms"], row["hiringOpenJobs"], row["employees"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('cybermax/company-enrichment').call({ companies: ['stripe.com', 'Notion'] });const { items } = await client.dataset(run.defaultDatasetId).listItems();
HTTP (one call, results back): POST https://api.apify.com/v2/acts/cybermax~company-enrichment/run-sync-get-dataset-items?token=<APIFY_TOKEN> with body {"companies": ["stripe.com"]}.
Google Sheets / Clay / Make / Zapier / n8n: use the Apify app or an HTTP step with the call above; every row has the same columns, so map them once.
AI agents (MCP): Firmfold is a tool on Apify's MCP server: https://mcp.apify.com/?tools=cybermax/company-enrichment. Tool description for agents: "Enrich companies: domain, work email or company name in; logo, tech stack, email security, domain age, contacts, socials, hiring and firmographics out, one flat record each."
FAQ
Why not foxlabs/company-enrichment, the most-used one, at $0.001 per company? It is cheaper and gives revenue ranges, CEO and competitors, which Firmfold does not. On the same 10 domains it returned no tech stack, email security, role emails, socials or hiring data; Firmfold filled tech on 10/10 and contacts on 9/10. Pick by the fields you need.
Why not a Clearbit-style subscription? No seat, no contract, no sign-up outside Apify: you pay $0.01 only for companies that were found, and nothing for unknown names or dead domains.
Why not look it up by hand? For five companies, do. For a list of hundreds, the same ~60 columns every time (missing data is null, never a missing key) means one CRM mapping that never breaks.
Can an AI agent use it (MCP)? Yes. Add https://mcp.apify.com/?tools=cybermax/company-enrichment as an MCP server in Claude, Cursor, VS Code or any MCP client; the agent sees the input schema and calls Firmfold directly.
Can I call it from Python, JavaScript or plain HTTP? Yes. POST your input JSON to https://api.apify.com/v2/acts/cybermax~company-enrichment/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN and the results come back in the response, or use the apify-client package for Python or JavaScript. Recipes for Make, Zapier, n8n and Google Sheets are in Integrations.
Is it legal to use? Firmfold combines public company websites, Wikidata (CC0), DNS and public job boards. Contact details from company sites can be personal data under GDPR/CCPA, so use them for a legitimate business purpose and follow anti-spam rules. This is general information, not legal advice.
The company has no contact page or email. What do I get? contactRoute always names the best public way in: email, contact form, contact page, phone, a sales/booking link (salesUrl, e.g. a Calendly or "Get started" page) or the LinkedIn company page.
Why is hiringOpenJobs 0 for a company I know is hiring? Firmfold checks Greenhouse, Lever, Ashby, SmartRecruiters, Workable and Recruitee, by the domain and by the company's name (so g-p.com finds the globalizationpartners board). Companies on Workday or their own careers system aren't covered.
Is a company name enough? Usually. Add a country after a bar for ambiguous names ("Hiscox | gb"), or pass the domain when you have it; below minDomainConfidence the row comes back free as domain-not-found with bestGuessDomain.
Do you scrape LinkedIn or people data? No. Only what the company publishes about itself, DNS/RDAP, public job boards and Wikidata.
Start now
▶ Try Firmfold with a prefilled input · $0.01 per company enriched, misses free (1,000 companies = $10). Questions or a missing field? Open an issue on the Store page and it gets answered the same day.
Also from CyberMax
The parts, if you need only one field group (cheaper per call):
- Namewhere: company name to official domain.
- Logolark: company logos, icons and brand colours.
- DomainDNA: tech stack, email security and domain age.
- Hollerdex: emails, phones and social profiles.
- HireHeat: hiring signals by domain, with the full job list.
All tools: Insidewell · Swellmeter · Capturewren · Gripeline · Keyfern · HireHeat Jobs · Linkheft
Data and privacy
Public company information only: the company's own website, DNS and RDAP records, public job boards and Wikidata (CC0). No LinkedIn scraping, no people lookups. Personal email addresses are off by default.
Changelog
- 2026-09-25: Names with "&" resolve (GW&K Investment Management → gwkinvest.com, AT&T → att.com); job boards named after the company are found (g-p.com → Greenhouse
globalizationpartners, 48 open jobs); newsalesUrlandcontactRoutefields so every company has a way in. - 2026-09-24: First release.
© 2026 CyberMax.
Found Firmfold useful? A quick rating on its Store page helps others find it.