Company Data & Enrichment: Firmographics, Funding, Products avatar

Company Data & Enrichment: Firmographics, Funding, Products

Pricing

from $20.00 / 1,000 basic company profiles

Go to Apify Store
Company Data & Enrichment: Firmographics, Funding, Products

Company Data & Enrichment: Firmographics, Funding, Products

Company data from a domain, LinkedIn URL or name: firmographics, industry classification across 10 code systems, business model, customer types, products and technologies, funding rounds with investors, legal entities, a source on every fact. Crunchbase alternative. $0.02 a company.

Pricing

from $20.00 / 1,000 basic company profiles

Rating

0.0

(0)

Developer

Pvalyou

Pvalyou

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

8

Monthly active users

2 days ago

Last modified

Share

Company Enrichment API ✅ Firmographics, Funding, Products Actor

Company enrichment API: a domain, a LinkedIn company URL or a company name goes in. One structured company profile comes out, with a source on every fact. The input comes prefilled with three companies on the basic tier, so the easiest way to try it is to click Start. Firmographics you would get from Clearbit or ZoomInfo, funding rounds and investors you would get from Crunchbase, and a layer neither of them sells: the company classified, its products and technologies segmented, and its unit economics modelled. Built from the company's own site, its public profiles, the official company registries, the patent offices, its job board and the public web. A company already on file answers in seconds. A new one is read now, which takes a few minutes, and answers at once for everyone after that. On the full tier you can ask for a live read of any company.

$0.02 a company, $0.05 for the full tier ($0.045 on Silver and $0.04 on Gold plans), for sales and marketing teams segmenting a list of domains, investors and analysts screening companies, market researchers, and compliance teams checking who they are onboarding. Company enrichment from a domain, funding rounds with investors, an industry classification API with NAICS, SIC and ISIC codes, and the company's products and technologies, in one call.

What you get

  • ✅ The highest measured accuracy on the open company-data benchmarks. 98.0% enrichment success and 95.0% of latest funding stages correct, against 89.0% and 92.3% for the best providers listed. The tables are below.
  • ✅ Classification you can filter on, produced by a language model, not a lookup table. Industry and sub-industry, business model and revenue model, software and physical intensity, deeptech, customer types with a primary type, use cases, integration ecosystem, compliance frameworks, scalability, plus seven industry code systems (NAICS, SIC, SICS, ISIC, NACE, UK SIC, NAPCS). Most enrichment APIs return one industry string copied from a profile page. This is read from what the company actually says it does.
  • ✅ Products and technologies, segmented. Each product with its category, group, price tier, payment model, free tier, SaaS and open-source flags. Each technology with its category and group. A firmographics API returns headcount, industry and location. This returns what the company sells and what it is built with, read from the company's own pages.
  • ✅ Funding with the investors on each round. Round type, date and precision, amount and currency, valuation when published, lead investors, investor type, source pages. Acquisitions and IPOs with their terms.
  • ✅ Unit economics, modelled. The atomic unit, market size, revenue per unit, costs, LTV to CAC and payback, each with a confidence score and the reasoning behind it.
  • ✅ Related companies, events, legal entities. Parents, subsidiaries and partners, a dated event timeline, registered entities with numbers, jurisdictions and status.
  • ✅ The full tier. Everything above plus the people named on the web with their titles and LinkedIn URLs, website liveness and archive history, patents with a summary, open roles from the company's own job board, and backers from investor portfolio pages.
  • ✅ Real-time on demand. Every profile says when it was read (record_as_of). On the full tier, set maxAgeDays to 0 and every company is read live now, or to a number of days to read again only the records older than that.
  • ✅ Priced per company. $0.02 basic, $0.05 full, less on Silver and Gold. Nothing when the company could not be identified.

📊 Measured on open benchmarks

Two public benchmarks score company-data providers on the same frozen company lists with the same judge. We ran both through this Actor and graded the answers with each benchmark's own judge prompts and models: the highest score on both boards, nine points above the best listed provider on enrichment and three on funding. Every answer and every verdict is public, so anyone can re-grade them.

Company enrichment (openbenchmarks company-enrichment, 282 companies, five firmographic fields, read 2026-09-14): 98.0% enrichment success, 98.3% field accuracy, 99.9% field coverage. The best provider on the board scores 89.0%.

providerenrichment success
Pvalyou98.0%████████████████████████░
People Data Labs89.0%██████████████████████░░░
Apollo88.6%██████████████████████░░░
Parallel86.0%██████████████████████░░░
Predict Leads80.6%████████████████████░░░░░
Explorium70.5%██████████████████░░░░░░░
CompanyEnrich69.7%█████████████████░░░░░░░░
ZoomInfo63.9%████████████████░░░░░░░░░
Exa60.4%███████████████░░░░░░░░░░
Seltz30.0%███████░░░░░░░░░░░░░░░░░░

Funding (openbenchmarks company-funding, 300 companies, the latest funding stage, read 2026-09-14): 95.0% of stages correct, against 92.3% for the leader.

providerlatest stage correct
Pvalyou95.0%████████████████████████░
Firecrawl92.3%███████████████████████░░
Parallel90.0%██████████████████████░░░
Exa88.7%██████████████████████░░░
Crunchbase85.8%█████████████████████░░░░
Fiber84.9%█████████████████████░░░░
Crustdata79.0%████████████████████░░░░░
Harmonic71.2%██████████████████░░░░░░░
People Data Labs67.6%█████████████████░░░░░░░░
Fundable60.3%███████████████░░░░░░░░░░
Apollo49.8%████████████░░░░░░░░░░░░░
ZoomInfo46.1%████████████░░░░░░░░░░░░░

Board scores are the benchmarks' published leaderboards on the day, one row per provider at its best arm. Our answers, the per-company verdicts and the method are in results/pvalyou for enrichment and results/pvalyou for funding; the benchmarks themselves are at openbenchmarks-labs/company-enrichment and openbenchmarks-labs/company-funding. The numbers are the product path: the same intake and the same record a paid call returns.

👥 Who uses company enrichment?

  • 💸 Investors and analysts. A sourced profile with rounds, investors, valuation, people and events for screening and diligence, without a data-broker contract.
  • 📈 Sales and marketing. Classification, customer types, products and integration ecosystem for segmentation and fit scoring across a list of domains.
  • 🔭 Market and competitive research. The same record for every company in a space, so products, technologies, business models and funding compare like with like.
  • 🏦 Compliance and onboarding. Legal entities with registration numbers, jurisdictions, status and officers-in-the-record, plus what the public web says the company does.
  • 🤖 AI agents and pipelines. One JSON record per company with stable field names, callable from the Apify API, the MCP server and the Python and JavaScript clients. Events only, so it is eligible for agentic payment.

▶️ How to enrich a company in 5 steps

  1. Open this Actor in the Apify Console. The input comes prefilled with three companies.
  2. Put your companies in companies, one per line: a domain, a website URL, a LinkedIn company URL or a name, up to 200 per run.
  3. Pick a tier: basic for the company profile, or full for the profile plus the people named on the web, website, patents, open roles and backers.
  4. Click Start. A company on file answers in seconds, and a new one is read now, which takes a few minutes.
  5. Download the profiles from the run's dataset as JSON, CSV or Excel, or read them through the Apify API. To enrich a list on a timetable, add a schedule, and to be told when a run finishes, add a webhook.

⬇️ Input: a tier and a list of companies

{
"tier": "basic",
"companies": ["monday.com", "https://www.linkedin.com/company/similarweb", "linear.app"]
}
FieldWhat it does
tierbasic (the company profile) or full (the profile plus the people named on the web, website, patents, open roles and backers).
maxAgeDaysFull tier only. Read a company again when its record is older than this many days, 0 for a live read of every company (a few minutes each). Empty: a company read in the last 90 days answers at once.
companiesOne per line: a domain, a website URL, a LinkedIn company URL, or a name. Each entry may also be an object with company, an optional name and country (for a name that could be several companies) and its own tier. Up to 200 per run.

A name alone is resolved by web search and refused when it matches several companies, as an uncharged item that asks for the domain or the country. A LinkedIn person URL, an empty entry or a reserved domain is rejected before any paid step.

⬆️ Output: one dataset item per company

Every item carries type, the query it came from, charged, and outcome. exists means the company was on file and answered at once, created means it was read now, refreshed means it was on file but read more than 90 days ago and was read again for you. The flat columns summarise. The record field holds everything.

typeChargedContents
companyonce (company_basic or company_full)the profile
errorneveran error code and a message

Every error item is free, and its code says which stage refused it:

Where it comes fromCodes
Your input, before any callinvalid_input (not a string or an object with company, or too short to identify), empty_query, unknown_tier, too_many (over 200 companies in one run)
The company serviceambiguous (the name matches several companies, add a domain or a country), no_identity (no web presence to build a profile from), rate_limited, unauthorized, upstream_error, unreachable, api_error
While the Actor waits for a new company to be readtimeout (45 minutes on basic, 60 on full: the company keeps being read and answers at once on your next run), failed, unknown_job

The flat columns for the first prefilled company:

namedomaincountryindustrysub_industrybusiness_modelfounding_yearemployee_rangetotal_funding_m_usdrounds_countproducts_countpeople_countevents_count
monday.commonday.comIsraelIT and TelecomEnterprise SoftwareB2B20121001-5000234.1542015

That table is an excerpt of the 37 flat columns every company item carries. The rest are legal_name, website, status, org_type and org_subtype, employees, is_public, is_acquired, is_unicorn, logo, last_round_date, technologies_count, description, org_id, record_as_of, outcome, tier, charged and charged_event, and on the full tier patents_count, open_roles and website_state. All of them survive a CSV or Excel export, so a public, acquired or unicorn filter, a last-round-date cut or a dead-website filter needs no JSON parsing. The nested record sits beside them with everything else.

The record field for the same company, trimmed to one entry per list:

{
"identity": {"name": "monday.com", "legal_name": "Monday.com Ltd.", "other_legal_names": ["DaPulse High-Tech Company", "monday crm"],
"domain": "monday.com", "status": "active", "type": "Company", "subtype": "Startup", "country": "Israel",
"founding_date": "2012-03-13", "employees": 4638, "employee_range": "1001-5000", "establishment_type": "Standard Startup",
"operates_globally": true, "is_public": true, "is_unicorn": true, "logo": "https://.../376c60af....avif"},
"classification": {"industry": "IT and Telecom", "sub_industry": "Enterprise Software", "business_model": "B2B",
"revenue_model": ["Subscription fees", "Enterprise contracts"],
"software_intensity": {"score": 2, "category": "Apps and Analytics"}, "physical_intensity": {"score": 1, "category": "No Physical Components"},
"customers": {"primary_type": "Commerce & Media", "keywords": ["Enterprise business teams", "HR teams", "Marketing teams", "Sales teams", "SMBs"]},
"use_cases": ["Project management", "Workflow automation", "..."],
"codes": {"naics": {"code_primary": "541511", "description_primary": "Custom Computer Programming Services"},
"isic": {"code": "6201", "description": "Computer programming activities"}, "...": "5 more systems"}},
"products": [{"name": "monday.com Work OS platform", "url": "https://monday.com/work-management", "category": "Enterprise Software",
"subcategory": "Work Operating System", "group": "Business tools", "price_tier": "mid", "payment_model": "recurring", "is_saas": true}, "...3 more"],
"technologies": [{"name": "mondayDB", "description": "Proprietary scalable data infrastructure designed to support complex workflows...",
"url": "https://www.computerworld.com/article/3703228/..."}, "...1 more"],
"unit_economics": {"atomic_unit_name": "Seat", "target_vertical": "Enterprise Work Management Platforms", "overall_feasibility_score": 0.85,
"calc_ltv_cac_ratio": 4.2, "calc_payback_months": 18.3, "...": "22 more fields, each block with its reasoning and confidence"},
"funding": {"total_m_usd": 234.1, "rounds_count": 5, "investors_count": 8, "last_round_date": "2020-05-22",
"rounds": [{"round_type": "Series D", "round_date": "2019-07-30", "round_amount_m_usd": 150.0, "round_valuation_m_usd": 1900.0,
"investors": [{"name": "Sapphire Ventures", "type": "venture capital"}, {"name": "HarbourVest Partners", "type": "private equity"}, "...3 more"],
"source_urls": ["https://techcrunch.com/2019/07/30/monday-com-raises-150m-more-now-at-1-9b-valuation-for-workplace-collaboration-tools/"]},
"...8 more, from the 2012 seed to a 2024 post-IPO round"]},
"acquisitions": [{"deal_direction": "subject_is_acquirer", "target_name": "OneAI", "acquisition_type": "full_entity",
"summary": "monday.com agreed to acquire OneAI, a voice AI company, to add voice agent capabilities to its AI Work Platform."}],
"ipos": [{"ticker_symbol": "MNDY", "stock_exchange": "NASDAQ GS", "ipo_type": "traditional", "offer_price": 155.0, "shares_offered_m": 4.07,
"total_raised_m_usd": 631.4, "valuation_at_ipo_m": 6800.0, "ipo_status": "trading"}],
"related_companies": [{"name": "Asana", "domain": "asana.com", "relationship": "Competitor", "source_urls": ["https://pitchbook.com/profiles/company/..."]}, "...38 more"],
"people": [{"name": "Eran Zinman", "title": "Co-Founder & Co-CEO", "role": "founder", "is_founder": true, "linkedin": "https://www.linkedin.com/in/eranzinman",
"source_urls": ["https://monday.com/p/about", "..."]}, "...19 more"],
"events": [{"type": "Valuation Milestone", "date": "2019-07-30", "date_precision": "day", "valuation_m_usd": 1900.0,
"description": "Reached $1B+ valuation (unicorn): Series D of $150M led by Sapphire Ventures..."}, "...14 more"],
"legal_entities": [{"english_legal_name": "MONDAY.COM LTD", "local_legal_name": "מנדיי. קום בע\"מ", "registration_id": "514744887", "jurisdiction": "il",
"status": "active", "date_of_registration": "2012-03-13", "entity_hierarchy": "headquarters", "is_founding_registration": true,
"address": "6 Yitzhak Sadeh St, Tel Aviv, 6777506, Israel"}, "...11 more"],
"public_profiles": {"linkedin": "https://www.linkedin.com/company/mondaydotcom", "crunchbase": "https://www.crunchbase.com/organization/mondaydotcom",
"pitchbook": "...", "tracxn": "...", "...": "12 more"},
"links": {"pricing_url": "https://monday.com/pricing", "careers_url": "https://monday.com/careers", "...": "14 more"},
"founders": [{"name": "Eran Zinman", "years_of_experience": 7.9, "num_prior_employers": 4, "prior_ceo_roles": 1, "has_mba": false,
"experience": [{"organization": "Othersay", "title": "CEO & Co-founder", "department": "Executive", "is_founder": true,
"start_date": "2009-01-01", "end_date": "2010-01-01"}, "...5 more"], "education": ["...1 entry"]}, "...1 more"],
"website": {"state": "LIVE", "score": 100, "reason": "up with real content", "has_mx": true, "domain_expires": "2027-07-18"},
"patents": {"count": 273, "granted": 138, "first_filing": "2019-06-26", "latest_filing": "2026-03-23", "rows": ["...up to 100"]},
"open_roles": {"status": "matched", "board": {"provider": "..."}, "summary": {"open_roles": "...", "by_department": {"...": "..."}}, "roles": ["...up to 100"]},
"backers": [{"name": "Entrée Capital", "kind": "fund", "first_invested_date": "2012-08-02", "last_invested_date": "2018-07-11", "n_rounds": 4}, "...7 more"]
}

💰 Pricing

EventPriceWhen
company_basic$0.02once per company profile delivered
company_full$0.05 on Free and Bronze, less on Silver and Goldonce per full profile delivered
Actor start$0.00005once per run
could not be identified, ambiguous name, refused input, failed run, timeout$0never

The full profile costs less on Silver and Gold plans, automatically:

PlanPrice per full profile
Free and Bronze$0.05
Silver$0.045
Gold$0.04

Platinum and Diamond plans pay the Gold price. The basic profile is $0.02 on every plan.

Worked examples, event charges only: 100 domains on the basic tier, $2; a list of 1,000 domains, $20; one company in full, the plan price above. The Actor start adds $0.00005 a run, which does not move any figure here.

You can try the Actor on the Apify free plan, which includes monthly platform usage credit and needs no credit card.

🔎 How the profile is built

  1. The input identifies the company: a domain or a website URL directly, a LinkedIn company URL by its page, a name by web search. A name that matches several companies comes back ambiguous rather than as a guess, and asks for the domain or the country.
  2. The company's own site and its public profiles are collected, along with the pages the open web publishes about it, the official company registries, the patent offices, its job board and archive.org.
  3. Language models read those pages and fill the structured record: the classification and its code systems, the products and technologies, the unit economics, and the extraction of funding rounds, investors, acquisitions, IPOs, people, events and legal entities.
  4. Every output is schema-validated and checked by deterministic rules before it is written, and every fact keeps the source pages it came from, which travel with the record as source_urls.
  5. The profile is then on file. outcome tells you which path your call took: exists answered from the profile already held, refreshed read it again because its record was more than 90 days old, created read the company for the first time.

🔐 Data, licences and privacy

  • The company's own site and the public web. Pages are read one at a time with an honest user agent, plus official company registries, the patent offices and archive.org. No login, no bypass, no data broker feed.
  • A source on every fact. Rounds, related companies, people and events carry the pages they were read from. Read them when a number matters.
  • People with their public professional role only. Name, title, role flags and the public LinkedIn URL, from pages that name them. Never contact details.
  • Pass-through to your dataset. The profile lands in your own Apify dataset under your account's retention settings. The profile itself is on file on our side, which is why a company already read answers at once and one read more than 90 days ago is read again for you. Operational logs keep the query, the tier, timing and the billing outcome.

⏱️ How long it takes

A company on file answers in seconds. A new company, or a live read on the full tier, is read now: the pipeline collects its profiles and pages, runs the classification and the extraction, and writes the record. Measured on our own runs, that is 6 to 10 minutes for one company, and many companies are read at a time: an 819-company list in September ran at about 28 new companies every 10 minutes. Both tiers take the same time. The Actor submits your whole list first and then delivers each company as it lands, so a list of 100 new companies takes well under an hour and a list of 100 companies on file takes a minute. The Actor waits for the queue for up to 12 hours, and gives each company 45 minutes (60 on full) once its read starts. One that runs past that comes back as an uncharged timeout item and answers at once on your next run. When you call the Actor from code, an AI agent or an integration, give the run a timeout of at least 15 minutes (or none): a run that ends before a new company is read returns a timeout item for it, uncharged, and the next run answers it at once.

⚠️ Limits, stated plainly

  • Language models fill the record from the collected pages, under schema validation and deterministic rules. Read the sources when a number matters.
  • A company with no web presence beyond a registry entry is refused as no_identity, uncharged.
  • Registry records come from the registers we read (40 official registers plus GLEIF). A company registered elsewhere has fewer legal entities in its record.
  • Up to 200 companies per run.

🔗 Works well with

The parts of the full tier are sold on their own: Website Liveness Check, Job Postings, Patent Lookup, Company Registry Lookup and LinkedIn Person Enrichment. Use them when you want one part in bulk at its own price.

🔌 Company enrichment API, clients and integrations

Run the Actor from the Apify Console, from the Apify API, from the Python or JavaScript client, from the Apify MCP server, or from Make, Zapier and n8n through the Apify integrations. Each entry may be a string or an object with company, name, country and tier. Schedule it over a domain list and set a webhook on run completion to pull the profiles into your CRM or warehouse.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("pvalyou/company-record").call(run_input={
"tier": "basic",
"companies": ["monday.com", "https://www.linkedin.com/company/similarweb",
{"company": "Linear", "country": "United States", "tier": "full"}],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["type"], item.get("name"), item.get("industry"),
item.get("total_funding_m_usd"), item.get("charged"))

❓ FAQ

Why did a name come back ambiguous?

Several companies carry that name. Add the domain, or the country, and it resolves.

Why is outcome sometimes exists?

The company was already on file and fresh, so it answered in seconds from the profile we already hold. refreshed means it was on file but read more than 90 days ago and was read again for you. created means it was read for the first time now.

Can I get only the classification?

The profile is the unit. Filter the fields on your side. If you want one part in bulk, the linked Actors above sell each part at its own price.

💬 Support and feedback

Found a company that resolved wrong, a field that looks off, or a company you need that comes back no_identity? Open an issue on this Actor's page with the domain, the tier and what you expected. Issues are answered by the developer.