LinkedIn Company Scraper — Company Data API, No Login | $1/1k
Pricing
from $1.00 / 1,000 results
LinkedIn Company Scraper — Company Data API, No Login | $1/1k
Scrape public LinkedIn company pages without an account: name, website, industry, company size, headquarters, founded, specialties, followers, logo, locations, similar pages and open jobs. By URL, slug, id or company name. No people data.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Raffy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
What does LinkedIn Company Scraper do?
LinkedIn Company Scraper turns public LinkedIn company pages into clean, structured data: name, website, industry, company size, headquarters and address, founded year, type, specialties, followers, logo, cover image, office locations, similar pages and open jobs. It works as a LinkedIn company data API without an account: paste company URLs, the name from the page address (stripe), numeric company ids, or just type company names, and get one row per company as JSON, CSV or Excel.
It reads only what LinkedIn shows to visitors who are not logged in. No LinkedIn account, no cookies, no login, no browser. Company facts only: no employee lists, no people, no posts.
Use cases for this LinkedIn company scraper
- Lead generation and CRM enrichment: add website, industry, size range, headquarters and follower count to a list of accounts.
- Market mapping: pull the companies LinkedIn lists as similar pages and affiliated pages to find competitors and subsidiaries.
- Hiring signals:
openJobsCountshows how many jobs a company has open on LinkedIn right now. - Data cleaning: turn company names from a spreadsheet into LinkedIn company ids, page URLs and websites.
- AI agents: call it with a company name or URL and get a self-describing row back in seconds.
What data can LinkedIn Company Scraper extract?
| Field | Type | Description |
|---|---|---|
name | string | Company name as shown on LinkedIn |
url | string | The company's public LinkedIn page, https://www.linkedin.com/company/<slug>/ |
companyId | string | LinkedIn's numeric company id (the id LinkedIn's job search filters by) |
slug | string | The company name in the page address |
tagline | string | One-line tagline under the name, when the company set one |
description | string | The company's own "About us" text |
website | string | Company website |
industry | string | LinkedIn industry, e.g. Software Development |
companySize | string | Size range as LinkedIn shows it, e.g. 1,001-5,000 employees |
companySizeMin / companySizeMax | integer | The range as numbers (companySizeMax is empty for 10,001+) |
employeesOnLinkedIn | integer | How many LinkedIn members list the company as employer (a number, no names) |
headquarters | string | Headquarters as shown, e.g. Redmond, Washington |
address | object | Headquarters address: street, city, region, postalCode, country (ISO code) |
locations | array | Office addresses from the Locations section, primary office first |
founded | integer | Year founded |
type | string | Public Company, Privately Held, Nonprofit, ... |
specialties | array | Specialties the company lists |
followerCount | integer | LinkedIn followers |
logoUrl | string | Logo image URL |
coverImageUrl | string | Cover (banner) image URL |
similarPages | array | Names of the companies LinkedIn lists under "Similar pages" |
affiliatedPages | array | Names of affiliated pages (subsidiaries, showcase pages) |
openJobsCount | integer | Open jobs LinkedIn shows for the company, when it shows the number |
inputName | string | The company name you typed, for rows found through Company names |
status | string | ok, not_found or error (see below) |
error | string | Plain reason when status is not ok |
scrapedAt | string | ISO 8601 time of extraction |
Fields a company did not fill in on LinkedIn are left out of its row. In a 100-company test run every ok row had name, companyId, industry, companySize, followerCount and employeesOnLinkedIn; 98% had a website and a description, 84% specialties, 44% a founded year.
Result status (tri-state output)
status | Meaning | Billed? |
|---|---|---|
ok | The company page was read. | Yes |
not_found | LinkedIn has no company page at that address, or no company matches the name you typed. | No |
error | The page could not be read after several retries (for example LinkedIn kept showing its sign-in wall); error says why. | No |
How to scrape LinkedIn company data
- Click Try for free (or Start) - the prefilled example returns 6 well-known companies in under a minute.
- Put your companies into Companies, one per line:
https://www.linkedin.com/company/stripe/,stripeor2135371. Or type names into Company names to look up. - Set Maximum results and click Start.
- Open the Output tab or export the dataset as JSON, CSV, Excel, XML or HTML.
To automate it, use the API tab (Node.js, Python, curl), a Schedule, or the Apify MCP server.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls (Companies) | array of strings | 6 example companies | Company URLs (any country site, /about/ and other sub-pages work), slugs like tata-consultancy-services, or numeric company ids. Other text is looked up as a company name. |
companyNames | array of strings | - | Company names to look up with LinkedIn's public company search. The example companies are skipped when you use this. |
maxItems | integer | 20 | Stop after this many rows |
proxyConfiguration | object | Apify Proxy (datacenter) on | LinkedIn slows down one IP after about 60 pages; the datacenter proxy spreads the requests. No residential proxy needed. |
Example input:
{"startUrls": ["https://www.linkedin.com/company/stripe/","posthog","1035"],"companyNames": ["Revolut", "Tata Consultancy Services"],"maxItems": 20}
Output
A real row from a run on the Apify platform (29 Sep 2026; description, specialties and image URLs shortened here):
{"url": "https://www.linkedin.com/company/posthog/","status": "ok","scrapedAt": "2026-09-29T18:53:01.901Z","companyId": "37415928","slug": "posthog","name": "PostHog","tagline": "Make your product self-driving. Get started with npx @posthog/wizard","description": "At PostHog, we're working to increase the number of successful products in the world. ...","website": "https://posthog.com/","industry": "Software Development","companySize": "51-200 employees","companySizeMin": 51,"companySizeMax": 200,"employeesOnLinkedIn": 231,"headquarters": "San Francisco","address": { "city": "San Francisco", "country": "US" },"locations": ["San Francisco, US"],"founded": 2020,"type": "Privately Held","specialties": ["analytics", "open source", "product analytics", "session replay", "error tracking"],"followerCount": 57479,"logoUrl": "https://media.licdn.com/dms/image/v2/D560BAQGQUyE_CXUxIw/company-logo_200_200/...","coverImageUrl": "https://media.licdn.com/dms/image/v2/D563DAQEA7rvhEksP6g/image-scale_191_1128/...","similarPages": ["ElevenLabs", "Linear", "Buffer", "Camunda", "Supabase", "Haus", "Ashby", "Todoist", "GitLab", "Checkly"]}
Rows that are not data explain themselves and are free:
[{ "url": "https://www.linkedin.com/company/this-company-does-not-exist-zz9q/", "status": "not_found", "error": "HTTP 404: page does not exist" },{ "url": "https://www.linkedin.com/jobs-guest/api/typeaheadHits?typeaheadType=COMPANY&query=zzqqxxnonexistentco", "status": "not_found", "error": "LinkedIn has no company matching \"zzqqxxnonexistentco\"." }]
Speed and reliability (real runs)
All numbers are from runs on the Apify platform at the default 1,024 MB with the default datacenter proxy.
| Run | Companies | Time | Result |
|---|---|---|---|
| Default input (no arguments) | 6 | about 10 s | 6 ok |
| 100 company slugs from 20+ countries | 100 | 59 s | 91 ok, 9 not_found (slugs that do not exist), 0 error |
Mixed input: renamed URL, numeric id, typed names, /about/ URL | 9 | 6 s | 6 ok, 3 not_found |
| 40 typed company names (US, Europe, Asia, Latin America, Africa) | 40 | 44 s | 40 ok |
| 15 more typed names, some for companies with no open jobs | 15 | 21 s | 13 ok, 2 not_found (Grab, Dangote Group) |
Before building it, we measured 147 requests to 49 companies from Apify's datacenter: 97% returned the company page on the first attempt, the rest were renamed pages (followed automatically) and a few HTTP 429 slow-downs, which the Actor retries from another IP.
How much does it cost to scrape LinkedIn company data?
Pay per event, platform compute and proxy included:
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
Result (status: ok company) | $0.001 per company ($1 per 1,000) |
Examples: the default 6-company run costs $0.011; 1,000 companies cost $1.005; 10,000 companies $10.005. Rows with status not_found or error are never billed. Cap spending with Maximum results and the run's Max total charge; the Actor stops cleanly when either is reached.
Tips
- Page URLs, slugs and ids are the fastest input (one request per company). A typed name needs three requests (search, company id, page), so it takes a little longer; the result costs the same.
- Check
inputNameagainstnamefor looked-up names. The Actor takes LinkedIn's first suggestion that starts with the name you typed, which is usually the main company page. For a group with many country pages (for example "Banco Santander"), LinkedIn's first suggestion can be one country's page; paste the exact company URL when that matters. - Put many companies into one run instead of many small runs; you pay the start fee once.
Limitations
- Company-level facts only. Employee lists, member profiles, people's names, e-mails and phone numbers, and company posts are out of scope by design.
- LinkedIn shows logged-out visitors company pages only by their name address (
/company/stripe/). A numeric id is turned into that address through the company's open jobs on LinkedIn; a company with no open jobs gives anerrorrow that asks for the URL instead. - A typed name is found through the same open jobs. When the company has none, the Actor tries the page address that matches the name (for example
/company/toyota/) and keeps only a page with the right company id. If the company's address is something else entirely (Grab's page is/company/grabapp/), the row isnot_found; paste the URL instead. In our tests 53 of 55 typed names were found. openJobsCount,founded,taglineandspecialtiesappear only when LinkedIn shows them for that company.employeesOnLinkedIncounts LinkedIn members who list the company, which differs from the headcount the company reports;companySizeis the range the company chose.- Values are in English; showcase pages (
/showcase/...) and school pages are not supported. - Results reflect the public page at the time of the run. If LinkedIn changes its layout, rows come back as
erroruntil the Actor is updated; report it in the Issues tab.
FAQ
Do I need a LinkedIn account, cookies or a proxy? No. The Actor reads the public company pages LinkedIn shows to anonymous visitors; the datacenter proxy it uses is included in the price.
Is it legal to scrape LinkedIn company pages? It collects only company information LinkedIn publishes to visitors who are not signed in, and no member data. You are responsible for how you use the data; read the notice below and LinkedIn's terms.
Can an AI agent call it? Yes. With no input at all it returns 6 companies in seconds. Agents can pass company URLs, slugs, ids or names as plain strings, and every row says whether it is data (ok), an empty answer (not_found) or a failure (error).
How fresh is the data? Every run reads LinkedIn live; nothing is cached.
Why did I get fewer rows than Maximum results? You gave fewer companies, several inputs led to the same company page (it is returned once), or the run's charge limit was reached. The run log says which.
Related Actors
- LinkedIn Jobs Scraper - use it for the job postings themselves: title, location, salary, seniority and the full description, filtered by company, keyword and date.
- LinkedIn Jobs Scraper — Hiring Leads with Emails - use it when you need hiring-manager contact emails for companies that are hiring.
Legal and data-protection notice
This Actor extracts only company information that LinkedIn publishes to visitors who are not signed in. It does not log in, does not work around access controls, and does not extract member data such as names, profile links, photos, e-mail addresses or phone numbers; the "Employees at" block and company posts on the page are skipped. Company descriptions are written by the companies themselves. Personal data is protected by the GDPR in the European Union and by other laws worldwide, so do not use any personal data without a legitimate reason. You are responsible for complying with LinkedIn's terms of service and applicable law when you use the extracted data.
This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by LinkedIn Corporation. LinkedIn is a trademark of LinkedIn Corporation; all trademarks belong to their respective owners.