LinkedIn Company Scraper avatar

LinkedIn Company Scraper

Pricing

from $1.40 / 1,000 company-details

Go to Apify Store
LinkedIn Company Scraper

LinkedIn Company Scraper

Scrape LinkedIn company pages by URL, slug or name, with no login. Just add companies and get the tagline, description, industry, size, headquarters, every office address, followers, specialties, website and logo. Export to CSV or Excel, or run it on a schedule. $2.00 per 1,000 companies.

Pricing

from $1.40 / 1,000 company-details

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

3 days ago

Last modified

Share

What is LinkedIn Company Scraper?

Type "Wise" into most tools and you get /company/wise, a printing company in Alpharetta, Georgia with 1,669 followers. LinkedIn Company Scraper gives you the London fintech, because it matches a name against LinkedIn's own company record and tells you which company it picked. You can hand it company URLs, slugs or plain names, in any mix, and you get one clean record per company. You don't sign in to LinkedIn.

What you can count on:

  • Names work, and you can audit them. The log shows what each name matched and which candidates were passed over.
  • A list of 670 companies takes about two minutes. Measured on 2 October 2026 at 330 to 370 companies a minute.
  • Nothing you asked for goes missing. A company that can't be read is returned as a row with an error field that says why.
  • A wrong slug costs a quarter of a real one. $0.0005 for a page with no company on it, against $0.002 for a company record.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 13 of 13 live checks on its inputs and filters passed on 8 October 2026
  • 14 company inputs run on 7 October 2026, links, slugs and names: 9 companies, 5 error rows
  • Charges matched the rows: 1 start, 9 companies, 4 checked

With it you can:

  • Extract the company name, tagline, About text, website and logo
  • Get the industry, company type, founding year and size band
  • Read the employee count and follower count as numbers
  • Get the headquarters with its street, postcode and country code, and the other office addresses listed on the page
  • Collect LinkedIn's numeric company id and the page slug
  • Load a long list from a file or a Google Sheet and cap it with one limit

It's mostly used to enrich a CRM or a lead list with size, industry and headquarters, to group prospects by sector or country, and to check that the company records in a database still match LinkedIn. Run it on a schedule and the follower counts become a growth series for a set of competitors.

What company data do you get?

🏢 Company name and tagline🔗 LinkedIn URL, slug and company id
About description🌐 Website
IndustryCompany size band and employee count
📍 Headquarters, with street, postcode and country codeEach office address on the page
👥 Follower countSpecialties, as a list
Company type and founding yearLogo
Whether the row came from a URL, slug or nameScrape timestamp

How to scrape LinkedIn companies

  1. Get a free Apify account.
  2. Open LinkedIn Company Scraper.
  3. Paste company URLs or slugs, or type company names. Mixing them is fine.
  4. Set "Maximum companies" if you want a ceiling on the run.
  5. Press Start, then download the records as Excel, CSV, JSON, XML or HTML.

That's the whole job. There's nothing to code and no LinkedIn login to supply.

⬇️ Input

Paste what you have. URLs, slugs and names are combined, and a company given twice is read once.

There's one page per company, so there's only one limit: "Maximum companies" caps what the run returns, and 0 (the default) means no cap.

Two by URL or slug, one by name

{
"companyUrls": ["https://www.linkedin.com/company/monzo", "xelix."],
"companyNames": ["Wise"]
}

A long list from a file or Google Sheet, capped at 500 companies

{
"startUrls": [{ "url": "https://www.linkedin.com/company/wiseaccount" }],
"maxItems": 500
}
FieldNotes
companyUrlsFull company URLs or bare slugs. Paste the slug exactly: a trailing dot is part of it.
companyNamesPlain names. Each is matched to LinkedIn's own company record rather than by guessing a URL from the name.
startUrlsThe same as companyUrls, pasted or loaded in bulk from a file or a Google Sheet.
maxItems, delayMs, maxConcurrencyRun ceiling (default 0, no limit), an optional extra pause before each request (default 0), and how many companies are read at once (default 8).

Why a name beats a guessed URL

Slugs aren't names. /company/wise and /company/wiseaccount are different companies, and only one of them is the one you meant. When you give a name, the run looks it up in LinkedIn's company records and writes down its choice:

Company "Wise" -> Wise (1769571); 3 other candidate(s) ignored: WISE, Wisemonk, WiseTech Global
"Wise" -> https://www.linkedin.com/company/wiseaccount

There's a catch you should know about. A name can be matched to its page only while the company has job postings on LinkedIn. If it has none, you get an error row that says so and asks for the URL or slug, billed target-checked ($0.0005). You don't get a lookalike.

If two companies share a name and you care which one you get, give the URL. A name finds the closest match. A URL is exact.

For developers

  • companyUrls takes full URLs or bare slugs. Paste a slug exactly as LinkedIn has it: a trailing dot is part of it.
  • startUrls does the same job as companyUrls and also loads a list from a file or a Google Sheet.
  • maxItems is the only cap (default 0, no limit).
  • maxConcurrency (default 8, from 1 to 8) is how many companies are read at once. delayMs (default 0) adds a pause before each request. Neither needs changing for a normal run.
  • Records are written as they're read. If you stop a run early you keep what it had collected.
  • Two runs of one input started at the same moment both finished in testing, with no company lost.

⬆️ Output

One record per company. id is LinkedIn's numeric company id, or the slug where the page doesn't show one.

{
"id": "1769571",
"url": "https://www.linkedin.com/company/wiseaccount",
"companyUrl": "https://www.linkedin.com/company/wiseaccount",
"companySlug": "wiseaccount",
"companyName": "Wise",
"companyDescription": "Wise is a global technology company, building the best way to move money around the world. With the Wise account people and businesses can hold 40+ cu…",
"companyWebsite": "https://wi.se/f4m4ed",
"companyIndustry": "Financial Services",
"companySize": "5,001-10,000 employees",
"companyHeadquarters": "London",
"companyAddressParts": { "street": "The Tea Building", "city": "London", "region": null, "postcode": "E1 6JJ", "countryCode": "GB" },
"companyType": "Public Company",
"companyFounded": "2011",
"companySpecialties": ["money transfer", "currency exchange", "foreign currency", "fintech", "…"],
"companyId": "1769571",
"companyEmployeesCount": 11701,
"companySlogan": "160+ countries. 40+ currencies. Money for here, there and everywhere.",
"companyFollowers": 683681,
"companyLocations": [
"The Tea Building 56 Shoreditch High Street London, E1 6JJ, GB",
"W 26th Street New York City, US",
"Váci út 80 Budapest, Budapest 1133, HU",
"…"
],
"companyLogo": "https://media.licdn.com/dms/image/v2/C4E0BAQGi4FxUQN6fqw/company-logo_200_200/company-logo_200_200/0/1677655590999/wiseaccount_logo?e=2147483647&v=beta&t=UF_3Kpsw-V2H1VtVd55ZU4SoS8f0_7GyWXjsHREja60",
"inputSource": "name",
"scrapedAt": "2026-09-13T23:36:28.817Z"
}

inputSource is url, slug, startUrl or name. A field the company hasn't filled in on LinkedIn is absent from its record. There's no companyFounded if the page has no founding year.

How much does it cost to scrape LinkedIn companies?

EventFree planStarterScaleBusiness
actor-start, per run$0.001$0.001$0.001$0.001
company-detail, per company returned$0.002$0.0018$0.0016$0.0014
target-checked, per company LinkedIn answered with no company data (no such page, a generic page for a slug that is not quite right, an empty page, or a name that matches no company)$0.0005$0.0005$0.0005$0.0005

Enterprise plans pay the Business price.

$2.00 per 1,000 companies on the Free plan, $1.40 on Business. Proxy usage and platform usage are inside that price.

  • 500 companies: $0.001 + 500 × $0.002 = $1.001 ($0.70 on Business).
  • 520 slugs of which 20 turn out to be wrong: $0.001 + 500 × $0.002 + 20 × $0.0005 = $1.011 ($0.71 on Business).

A company LinkedIn never answered isn't charged at all. Neither is an input that isn't a company page URL.

The $5 of credits that comes with Apify's Free plan each month covers about 2,500 companies before you pay anything.

How many companies, how fast, and the limits

RunResult
15 companies by URL or slug14 records in 6 to 13 seconds
670 companies670 records in 1 minute 48 seconds to 2 minutes 3 seconds (330 to 370 a minute)
Same input, two runs started at the same momentboth finished, no company lost

Whole runs on Apify, 2 October 2026. At that pace an hour covers roughly 20,000 companies.

What it won't give you:

  • Anything the page doesn't show. All fields are read from the public company page. A company that hides a field on LinkedIn doesn't have it here.
  • A name match for a company with no job postings. Give its URL or slug.
  • Employees. LinkedIn shows a handful on the page and keeps the full list behind a login. This actor returns none.
  • Recent updates. A company's posts are a separate actor, LinkedIn Company Posts Scraper.
  • Headcount. The follower and employee counts are LinkedIn's. Its employee count is the number of members who list the company, which isn't the same thing as headcount.

FAQ

What happens to a company that can't be read?

You get an error row for it, with an error field giving the reason: no such page, a generic page for a slug that's not quite right, or LinkedIn refusing the request. A company LinkedIn answered with no company data bills target-checked only. One LinkedIn never answered is free. A URL that isn't a company page (a school or a profile, say) and a name that matches no company also come back as error rows: the URL isn't charged, and the name bills target-checked.

Why did a slug return the wrong company?

Because the slug belongs to someone else. Put the name in "Company names" and let the run match it, or copy the slug from the company's LinkedIn address bar.

Why is a field empty?

The company left it empty on LinkedIn. What the public page doesn't show isn't available here.

Do I need proxies of my own, or a LinkedIn account?

No to both. The records come from pages LinkedIn serves to a logged-out visitor, so no session of yours is ever at risk. Proxy usage is included in the price.

Can I track a company over time?

Schedule the same list weekly or monthly and compare companyFollowers and companyEmployeesCount between datasets. The actor doesn't keep history for you, so keep the datasets.

This actor reads only public pages, takes no account access and collects no private data. Public data scraping is generally lawful in the UK, EU and US, and hiQ v LinkedIn is the usual reference. You remain responsible for how you use what you collect, including under GDPR where the data identifies a person.

Enrich a CRM, a sheet or an agent

Most of this data ends up beside a list you already hold. Apify's integrations send each finished dataset to Google Sheets, Airbyte, Make or Zapier, and a webhook can tell your own system when a run is done.

Calling it from code is one request: POST https://api.apify.com/v2/acts/boncross~linkedin-company-details-scraper/run-sync-get-dataset-items with the input JSON as the body. Short lists come back in the response. For long ones, start a run and read the dataset when it finishes. The apify-client packages on NPM and PyPI wrap both.

Through the Apify MCP server (mcp.apify.com) an AI agent can call the actor as a tool: give it a company name mid-conversation and it gets the record back, ready to summarise what the company does before drafting outreach.

More from BonCross

Your feedback

If a name matched the wrong company, we'd like to see it. Post the name and what you expected on the Issues tab in Apify Console, along with anything else that looks off. BonCross reads each report and answers there.