LinkedIn Company Scraper — Company Data API, No Login | $1/1k avatar

LinkedIn Company Scraper — Company Data API, No Login | $1/1k

Pricing

from $1.00 / 1,000 results

Go to Apify Store
LinkedIn Company Scraper — Company Data API, No Login | $1/1k

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

Raffy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

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: openJobsCount shows 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?

FieldTypeDescription
namestringCompany name as shown on LinkedIn
urlstringThe company's public LinkedIn page, https://www.linkedin.com/company/<slug>/
companyIdstringLinkedIn's numeric company id (the id LinkedIn's job search filters by)
slugstringThe company name in the page address
taglinestringOne-line tagline under the name, when the company set one
descriptionstringThe company's own "About us" text
websitestringCompany website
industrystringLinkedIn industry, e.g. Software Development
companySizestringSize range as LinkedIn shows it, e.g. 1,001-5,000 employees
companySizeMin / companySizeMaxintegerThe range as numbers (companySizeMax is empty for 10,001+)
employeesOnLinkedInintegerHow many LinkedIn members list the company as employer (a number, no names)
headquartersstringHeadquarters as shown, e.g. Redmond, Washington
addressobjectHeadquarters address: street, city, region, postalCode, country (ISO code)
locationsarrayOffice addresses from the Locations section, primary office first
foundedintegerYear founded
typestringPublic Company, Privately Held, Nonprofit, ...
specialtiesarraySpecialties the company lists
followerCountintegerLinkedIn followers
logoUrlstringLogo image URL
coverImageUrlstringCover (banner) image URL
similarPagesarrayNames of the companies LinkedIn lists under "Similar pages"
affiliatedPagesarrayNames of affiliated pages (subsidiaries, showcase pages)
openJobsCountintegerOpen jobs LinkedIn shows for the company, when it shows the number
inputNamestringThe company name you typed, for rows found through Company names
statusstringok, not_found or error (see below)
errorstringPlain reason when status is not ok
scrapedAtstringISO 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)

statusMeaningBilled?
okThe company page was read.Yes
not_foundLinkedIn has no company page at that address, or no company matches the name you typed.No
errorThe 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

  1. Click Try for free (or Start) - the prefilled example returns 6 well-known companies in under a minute.
  2. Put your companies into Companies, one per line: https://www.linkedin.com/company/stripe/, stripe or 2135371. Or type names into Company names to look up.
  3. Set Maximum results and click Start.
  4. 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

FieldTypeDefaultDescription
startUrls (Companies)array of strings6 example companiesCompany 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.
companyNamesarray of strings-Company names to look up with LinkedIn's public company search. The example companies are skipped when you use this.
maxItemsinteger20Stop after this many rows
proxyConfigurationobjectApify Proxy (datacenter) onLinkedIn 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.

RunCompaniesTimeResult
Default input (no arguments)6about 10 s6 ok
100 company slugs from 20+ countries10059 s91 ok, 9 not_found (slugs that do not exist), 0 error
Mixed input: renamed URL, numeric id, typed names, /about/ URL96 s6 ok, 3 not_found
40 typed company names (US, Europe, Asia, Latin America, Africa)4044 s40 ok
15 more typed names, some for companies with no open jobs1521 s13 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:

EventPrice
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 inputName against name for 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 an error row 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 is not_found; paste the URL instead. In our tests 53 of 55 typed names were found.
  • openJobsCount, founded, tagline and specialties appear only when LinkedIn shows them for that company.
  • employeesOnLinkedIn counts LinkedIn members who list the company, which differs from the headcount the company reports; companySize is 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 error until 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.

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.