Two of the most-used company scrapers on the Apify store publish a sample record on their own listing page. In one, Microsoft's website field comes back as news.microsoft.com. In the other, Netflix's comes back as a jobs.netflix.com URL with campaign parameters still attached. Neither is the corporate domain, and neither is a bug. The website field on a LinkedIn company page is a link the page admin chose, so it points wherever marketing wanted traffic that quarter.

That one field usually decides whether the rest of the pipeline works. Company records exist to be joined to something: a CRM account, an email pattern, a set of people you want to reach. Most of those joins run on the domain. Any LinkedIn company scraper project starts from the fact that the field you need most is the one LinkedIn is least dependable about.

What a company page actually holds

Every LinkedIn company page scraper returns roughly the same payload, because they are all reading the same page. That record splits into three groups, and knowing which group a field belongs to tells you how much to trust it.

Declared by the page admin. Name, tagline, description, specialties, company type, founding year and that website link. Specialties in particular is a free-text array with no vocabulary behind it. In HarvestAPI's published sample, Netflix's entire specialties array is one entry that reads like its tagline rather than a list of capabilities. Founding year is frequently absent; it is null for Microsoft in the other actor's sample.

Derived by LinkedIn. The numeric company ID, the vanity slug, follower count, locations with the headquarters flagged, industry, and two separate headcount numbers. Industry is drawn from a fixed vocabulary: LinkedIn's own Industry Codes V2 reference, published on Microsoft Learn, lists 434 active industry values plus 53 retired ones. A fixed vocabulary is what makes industry usable for segmentation and also what makes it blunt, since every agency, consultancy and studio in your list lands in a handful of buckets.

The two headcount numbers matter more than they look. employeeCountRange is the band the page displays, such as 10001 and above. employeeCount is a tally of profiles that currently name that company as their employer. For a 40-person B2B software company those two can disagree by a wide margin in either direction, because the tally counts anyone who never updated their profile after leaving and misses anyone who never listed the job.

Not there at all. Revenue, technographics, a verified domain, headcount by department, parent and subsidiary structure in any usable form. Funding is a partial exception: LinkedIn surfaces funding rounds sourced from Crunchbase, which is why a scraped record can carry a last funding round and money raised while carrying no revenue figure.

Four jobs that all get called company scraping

People scrape LinkedIn companies for four different reasons. The tool you want depends on which one applies, and picking wrongly is where budgets disappear.

Building a target list from filters. You do not know the companies yet. You describe them, by headcount band, geography, industry and growth, and you want whatever comes back. To scrape LinkedIn company data this way you need a search-driven tool, and you run into LinkedIn's account search ceiling.

Enriching accounts you already have. You have a CRM export or a client list and you need the firmographic columns filled in. Company data enrichment of this kind takes URLs, names or domains as its input, so the search ceiling never applies and the constraint becomes match rate: how often a company name resolves to the right LinkedIn page.

Fanning a company list out to people. The company record is a stepping stone. What you actually want is decision makers at those accounts, which means a second and much larger extraction, plus email enrichment on top.

Watching companies change. Headcount, hiring velocity, new locations, follower growth. This is the same scrape on a schedule, and all that matters is that the schema stays stable between runs.

The first two are cheap. The third is where cost multiplies, because 1,000 companies at, say, 30 relevant employees each is 30,000 people records rather than 1,000.

Sales Navigator stops paginating a people search at 2,500 results. Account search stops at 1,000. Evaboot's own pricing FAQ states both numbers and attributes the ceiling to LinkedIn rather than to any tool: up to 2,500 leads, or 1,000 companies. No scraper gets past it by trying harder, because the results simply stop being served.

The fix is arithmetic rather than cleverness. Split one search into several that each return fewer than 1,000, then merge and deduplicate on the numeric company ID.

Headcount is the best first cut, because Sales Navigator's size bands do not overlap and cover the whole range, so splitting on them cannot silently drop or double-count anyone. Geography is the natural second cut, though it needs care: a company with offices in four countries can appear in four regional searches, which is exactly why you deduplicate on the ID. Industry is the weakest split, since the taxonomy is coarse enough that a single value can hold more than 1,000 companies inside one country on its own. We wrote up the equivalent maths for people searches in Sales Navigator export limits, and the splitting logic carries over unchanged.

What 1,000 companies costs

Every figure below was read off the vendor's own pricing page on 8 September 2026, normalised to one thousand company records.

RoutePublished pricePer 1,000 companies
Apify, automation-lab/linkedin-company-scraperfrom $1.80 / 1,000$1.80
Apify, harvestapi/linkedin-company-search$2.00 / 1,000 short, $4.00 / 1,000 full$2.00 or $4.00
Apify, harvestapi/linkedin-company$4.00 / 1,000 at the Free and Bronze tiers, $3.50 at Silver, $3.00 at Gold and above$3.00 to $4.00
Bright Data LinkedIn Company Scraper API$1.50 / 1,000, pay as you go$1.50
Bright Data LinkedIn dataset$250 per 100,000 records, $250 minimum$2.50
WizLeads Freelancer, connected account$39 for 10,000 credits, 1 credit per company$3.90
WizLeads Freelancer, account-less$39 for 10,000 credits, 2 credits per company$7.80
MagicalAPI Pro$30 for 300,000 credits, 150 credits per request$15.00
Evaboot1 credit per account, cheapest covering tier $49 for 1,500 credits$49.00
Coresignal Starter$199 for 12,000 credits, 10 credits per base company record$165.83

Three points about that table.

Evaboot charges one credit for a lead or an account, which is fair, but its tiers are sized for people volumes. A thousand accounts needs the 1,500-credit tier at $49 a month, so the effective rate is set by the tier you are forced into rather than by the unit price. At the 50,000-credit tier the same work costs $9.98 per thousand.

Coresignal costs about ninety times the cheapest actor on the list, and that gap is the real decision in this whole category.

PhantomBuster is missing for a different reason: it meters execution time rather than records. Monthly plans run $69, $159 and $439, carrying 20, 80 and 300 hours of runtime, so what a thousand companies costs you depends on how long the run takes rather than on how many rows come back. That is fine when scraping is one step inside a longer automation and awkward when you only want a list.

Scraping pages against buying a dataset

A scraper sells you a fetch. You supply the target, it returns what LinkedIn served at that moment, and the price reflects one HTTP round trip plus the cost of not getting blocked. A firmographic data vendor sells you coverage, normalisation and a licence. You do not supply the target, because the point is the companies you could not have named.

Coresignal's published rates make the shape clear. A base or clean company record costs 10 credits, a multi-source record costs 20. The $49 Mini plan carries 2,500 credits, which is 250 company records. Starter at $199 carries 12,000 credits, so 1,200 records, or $165.83 per thousand. Growth at $1,000 carries 150,000 credits and brings that to $66.67 per thousand. You are paying for records already resolved across 15-plus sources, for fields LinkedIn never exposes, and for the ability to query rather than crawl.

Bright Data sells both sides, which makes the comparison clean. Its live LinkedIn Company Scraper API is $1.50 per 1,000 records pay as you go, with a free tier of 5,000 records a month and a Scale plan at $499 for 384,000 records included. Its pre-built LinkedIn dataset is $250 for 100,000 records against a $250 minimum order, which is $2.50 per 1,000. The dataset is dearer per record and hands you 100,000 rows immediately with no run to babysit. The API is cheaper and returns today's data on exactly the companies you asked for.

Scrape when you have a search or a list that already describes your ICP, when freshness matters more than breadth, and when the volume is in the thousands. Buy when you need discovery across companies you cannot enumerate, when you need revenue or technographics, when you need one schema across millions of rows, or when procurement wants a licence rather than a scraping run. Choosing wrongly is expensive in both directions: paying $166 per thousand for a list you could have specified yourself, or spending a quarter trying to crawl your way to coverage a vendor already has.

Joining companies to people

The company ID is the join key, and it is the only identifier on a LinkedIn record that does not drift. Names change, vanity slugs get rewritten, domains get re-pointed after an acquisition. The numeric ID stays.

Which direction you run the join changes the bill. Starting from a company list and fanning out to employees means a second extraction sized by headcount, not by account count. Starting from a people search and keeping the company columns that come attached costs nothing extra, because the fields ride along on rows you were already paying for. For ABM against a fixed named account list you have no choice and pay the fan-out. For ICP-shaped prospecting the second route is usually the cheaper way to end up with the same two tables.

Either way the company record is not contactable on its own. Every company page that reaches an inbox has to pass through a person and then an email, and find rates across enrichment vendors are not close to each other. In our enrichment benchmark on 1,000 B2B leads, verified-valid find rates ran from 25.9% to 67.0%, a 2.6x spread on one identical list. Budget the company scrape as the cheap first leg of that pipeline, because it is.

What breaks once you scale

Domains. The website field is a marketing link, so a meaningful slice of any raw export points at newsrooms, careers sites and campaign pages. Plan a resolution step, or every domain-keyed join downstream quietly loses rows.

Duplicate and shadow pages. Large companies run regional pages, product pages and legacy pages left over from acquisitions. Several will match your filters and several will carry partial fields. Deduplicating on name gets this wrong, which is the practical argument for keeping the numeric ID in your schema from the first run.

Unclaimed pages. LinkedIn auto-generates company pages from profiles that name an employer nobody has ever claimed. They carry a name, an employee tally and almost nothing else. They are a rounding error on an enterprise ICP and a large fraction of the result set on a small-business one.

Decay. Employee count is the field people most want to track over time and the field that moves for reasons unrelated to hiring. A profile updated late shows as a departure this month rather than last quarter. Trend it over quarters, not weeks.

Vendor durability. Proxycurl was, for years, the default LinkedIn company API for programmatic access and it shows up in old integration guides everywhere. Its site today carries a single line: Proxycurl is no longer in service, with a pointer to a different company. Anything built on one provider's API in this category needs a swap path.

How we handle company scraping at WizLeads

WizLeads is our product, so read this section knowing that.

Company search is a first-class mode alongside people search, and it costs the same: 1 credit per company with a connected account, 2 credits account-less. Account-less means no LinkedIn credentials, no cookie and no session: extraction runs on our infrastructure, so nothing about the run ties back to your account. On the $39 Freelancer plan with 10,000 credits, that is 10,000 companies scraped, or 5,000 account-less.

Each record carries the company-side fields we return on every row: company ID, name, page URL, website, industry, employee count, description, location, HQ, company type, specialties, year founded and revenue range, inside a 35-field CSV. Enrich Company Website fills in the domain where LinkedIn leaves it blank, which is the resolution step the raw field makes necessary. Smart Link Splitting, on Agency and above, splits a search that exceeds the cap into sub-searches and deduplicates the results, so the 1,000-company ceiling stops being manual work. Everything runs from POST /tasks/add on the REST API as well as the dashboard, and connects to Clay, n8n, Make and Zapier. A 5,000-record task finishes in 15 to 20 minutes.

The honest limitation: we return what LinkedIn holds plus the domain we resolve. We do not sell revenue estimates, technographics or a licensed company database, and if your job is discovery across companies you cannot describe with Sales Navigator filters, a firmographic vendor is the right purchase and this is not it.

If the job is turning searches or account lists into clean company rows, you can try it on the Sales Navigator scraper for $1 for the first month on the 10,000-credit plan, which then holds a 20% discount for life. The step-by-step export walkthrough covers the people side of the same workflow.

Common questions

What is a LinkedIn company scraper?

A LinkedIn company scraper takes either a Sales Navigator account search or a list of company page URLs and returns the structured firmographic fields behind each page: name, numeric company ID, industry, employee count, follower count, headquarters and other locations, company type, specialties, founding year and the website link the page admin set. It is a different product from a people scraper, and most vendors price and cap the two separately.

1,000. Sales Navigator stops paginating an account search past 1,000 results, against 2,500 for a people search. Evaboot's pricing FAQ states the same two numbers and attributes the ceiling to LinkedIn rather than to any tool. The workaround is to split one search into several narrower ones, usually by headcount band first, then geography, and deduplicate on the numeric company ID afterwards.

How much does it cost to scrape 1,000 LinkedIn companies?

Roughly $1.80 to $4.00 on pay-per-result Apify actors, $1.50 on Bright Data's pay-as-you-go company scraper API, $3.90 on WizLeads' $39 Freelancer plan with a connected account, and $49 on Evaboot because 1,000 account credits needs its 1,500-credit tier. Buying the same 1,000 companies as licensed firmographic records costs far more: Coresignal's $199 Starter plan works out at about $165.83 per 1,000 base company records. All figures read off vendor pricing pages on 8 September 2026.

Is the website field on a LinkedIn company page reliable?

No. It is a link the page admin chose, so it often points at a newsroom, a careers site or a campaign landing page rather than the corporate domain. Two Apify company actors publish sample output on their own listing pages: Microsoft's website field returns news.microsoft.com and Netflix's returns a jobs.netflix.com URL with campaign parameters attached. Since almost every downstream join runs on the domain, plan a separate domain resolution step rather than trusting the raw field.

Should I scrape LinkedIn company pages or buy a firmographic dataset?

Scrape when you have a search or list that already describes your ICP, when freshness matters more than breadth, and when the volume is in the thousands. Buy a dataset when you need discovery across companies you cannot enumerate, when you need fields LinkedIn never exposes such as revenue or technographics, or when procurement wants a licence rather than a scraping run. Bright Data sells both: its live company scraper starts at $1.50 per 1,000 records and its LinkedIn dataset at $250 for 100,000 records against a $250 minimum order.

Can you scrape LinkedIn company pages without a LinkedIn account?

Yes, because many company pages are publicly readable. Several Apify actors advertise no cookies and no account, and Bright Data's company scraper API runs on its own infrastructure with a free tier of 5,000 records a month. WizLeads offers an account-less mode across both people and company scraping at 2 credits per record instead of 1. The still-common alternative is pasting your own LinkedIn session cookie into a tool, which puts your account on the hook for every request it makes.