LinkedIn Companies Scraper
Extract public LinkedIn company data from company URLs: name, description, followers, employee count, HQ, website and logo.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
companyUrls,maxCompanies,requestTimeoutSecs(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0009 per public company profile = $0.9 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Public company profile | One successfully parsed public LinkedIn company profile. Samples and diagnostics are free. | $0.0009 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.001 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
companyUrls | Public URLs in the form https://www.linkedin.com/company/company-slug/. Empty input returns one clearly labeled, uncharged sample row. | array |
maxCompanies | Maximum valid public company URLs to request. Invalid inputs return free diagnostic rows. | integer |
requestTimeoutSecs | Timeout for one company page request. | integer |
What you get
A structured dataset — each result includes fields like:
namefollowerCountemployeeCountwebsiteheadquarterscompanyUrltransportExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in B2B Leads & Contact Data
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
YouTube Channel Email Scraper
Find business emails publicly listed in YouTube channel descriptions and their linked websites. Built for creator outreach and sponsorships. No login needed.
Domain Inspector
Bulk-inspect domains: DNS records, RDAP registrar and expiry, redirects, TLS dates, security headers, robots, sitemaps and tech detection.
Google Maps Scraper
Scrape Google Maps business listings by category and city: name, phone, website, rating, reviews, lat/lng and place ID. Build local lead lists fast.
Contact Details Scraper
Extract public emails, phones, addresses, contact forms and 10 social profiles from any list of websites.
Email Verifier
Bulk email verifier at $0.60 per 1,000 addresses plus a $0.001 run-start fee. Syntax, MX, disposable and role-account checks plus optional SMTP probing.
Shopify Store Leads
Find Shopify stores and pull public emails, phones, socials, currency, country, theme, technologies, products and key pages.
Where this tool sits
- Categories
- B2B Leads & Contact Data
- Platforms
LinkedIn Companies Scraper
Extract the data LinkedIn exposes publicly on supplied company profile URLs. This actor is for public company-profile pages only: it does not request a login, cookies, employee search, hidden tabs, or authenticated/private endpoints.
Input
{
"companyUrls": [
"https://www.linkedin.com/company/apify/",
"https://www.linkedin.com/company/microsoft/"
],
"maxCompanies": 10
}
Use public URLs matching https://www.linkedin.com/company/<company-slug>/. The actor does not resolve a company name or website domain into a LinkedIn URL, because that would require a separate search data source and would make the result less predictable.
| Field | Default | Notes |
|---|---|---|
companyUrls | [] | Up to 100 public /company/<slug>/ URLs per run. Empty input returns one labeled, uncharged sample row. |
maxCompanies | 10 | 1–100. Caps how many valid URLs are actually requested, so you can paste a long list and still bound the spend. |
requestTimeoutSecs | 20 | 5–60 seconds for a single company page request. |
Output
Each real row contains only fields found in a public LinkedIn page's Organization JSON-LD or public metadata:
name,description,companyUrl, andcompanySlugfollowerCountwhen LinkedIn exposes it in public metadataemployeeCountwhen LinkedIn exposes a public JSON-LD valueheadquartersand structuredaddresswhen exposedwebsiteandlogoUrlwhen exposedtransport(direct_http) andretrievedAt
Missing public fields are null; the actor does not infer industry, funding, employee lists, contacts, revenue, or data behind a sign-in wall.
Diagnostics instead of silent gaps
Every URL that does not produce a company row produces a labeled diagnostic row instead: BAD_INPUT (not a /company/ URL), BLOCKED (LinkedIn's 999/403 or a security-verification interstitial), RATE_LIMITED, NOT_FOUND, or NO_RESULTS when the page loads but carries no matching public Organization JSON-LD. You can always reconcile input count against row count.
Proxy policy
The actor uses direct HTTP only. It never starts a residential proxy, so a blocked page returns an uncharged diagnostic rather than quietly spending proxy credit.
Empty input
Empty input produces exactly one _sample: true sample row. It is clearly labeled and never charged for a company, so the actor can be evaluated without a LinkedIn request or proxy use.
Pricing
$0.90 per 1,000 companies ($0.0009 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates — and only rows that parse as genuine public company profiles trigger the company charge event.
Invalid input, blocked pages, not-found and parse failures, duplicates, samples and diagnostics never incur the per-company fee; a run that returns nothing costs only the $0.001 start fee. Rows are written to the dataset before the charge call, so you can always audit what you paid for. Because companyUrls takes 100 URLs in one run, a full 100-company batch costs $0.09 plus a single $0.001 start.