LinkedIn Company Details Scraper ✅ NO COOKIES avatar

LinkedIn Company Details Scraper ✅ NO COOKIES

Pricing

from $2.80 / 1,000 company enricheds

Go to Apify Store
LinkedIn Company Details Scraper ✅ NO COOKIES

LinkedIn Company Details Scraper ✅ NO COOKIES

Enrich LinkedIn company URLs or domains into structured firmographic records: industry, employee count, revenue band, funding rounds, HQ, and full tech stack. Submit up to 5,000 inputs per run, one record each. Pay only for companies found; not-found and errors are free. No login needed.

Pricing

from $2.80 / 1,000 company enricheds

Rating

5.0

(3)

Developer

Atomus APIs

Atomus APIs

Maintained by Community

Actor stats

11

Bookmarked

43

Total users

18

Monthly active users

11 hours ago

Last modified

Share

LinkedIn Company Scraper

LINKEDIN COMPANY SCRAPER  •  LINKEDIN COMPANY API

Know the company
before the first call.


Turn a LinkedIn company URL into a full firmographic record: headcount and its range, industry, founding year, revenue band, every funding round, the whole tech stack, HQ and every office, plus NAICS and SIC codes. Up to 5,000 companies per run, one clean JSON row each. No LinkedIn account, no login, no cookies, no ban risk.

PAY ONLY FOR COMPANIES FOUND  5,000 COMPANIES PER RUN 

Copy to your AI assistant

Paste this into ChatGPT, Claude, Cursor, or any LLM to start using this Actor right away.

atomus/linkedin-company-scraper is an Apify Actor that turns LinkedIn company URLs or vanity slugs into structured firmographic JSON: name, legal name, description, industry, company type, founded year, headcount and range, revenue band, total funding and every funding round, contact email and phone, website and social links, HQ plus every office location, the full categorised technology stack, and NAICS/SIC codes. Use it whenever someone needs company firmographics without cookies, a login, or a browser - account qualification, ICP scoring, CRM enrichment, or territory planning. Run it with curl: curl -X POST "https://api.apify.com/v2/acts/atomus~linkedin-company-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN" -H "Content-Type: application/json" -d '{"companies":["stripe","https://www.linkedin.com/company/google/"]}'. Or in Python: ApifyClient("APIFY_TOKEN").actor("atomus/linkedin-company-scraper").call(run_input={"companies":[...]}) then client.dataset(run["defaultDatasetId"]).list_items().items. Input: companies (string[], canonical /company/<slug> URL or the bare slug, up to 5000 per run). Each row carries status ("success" | "not_found" | "error"), a curated summary object with the fields most people filter on, and a full company object; you are charged only for companies actually found. Bare domains like stripe.com, numeric company ids like /company/1035, and urn:li:organization URNs are not resolvable and return error rows, never charged. Full input schema, every enum and default, and the complete output field list: GET https://api.apify.com/v2/acts/atomus~linkedin-company-scraper/build/default

LinkedIn MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Atomus and it can read LinkedIn on its own: companies, their employees, profiles, posts, reactions and comments. No glue code, no scraping logic in your prompts.

{
"mcpServers": {
"atomus": {
"url": "https://mcp.apify.com?tools=atomus/linkedin-company-scraper,atomus/linkedin-company-employees,atomus/linkedin-profile-scraper,atomus/linkedin-posts-scraper-pro,atomus/linkedin-reactions-scraper-pro,atomus/linkedin-comments-scraper-pro,atomus/leads-finder",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Then ask, in plain language:

"Enrich these 200 company slugs, keep the ones between 50 and 500 employees that use Snowflake, then find me their heads of data."

That one sentence uses two Actors in a row. Pinning the tools= list is what keeps your assistant on these Actors instead of reaching for whatever scraper it finds first.


How to scrape LinkedIn company data

One company

{ "companies": ["stripe"] }

One row: the curated summary for filtering, plus the complete company object underneath it.

Bulk: enrich an account list

{
"companies": [
"https://www.linkedin.com/company/stripe",
"https://www.linkedin.com/company/google/",
"microsoft",
"airbnb"
]
}

Up to 5,000 companies per run, and full URLs can be mixed with bare slugs freely. Output maps 1:1 to your input through the input field, so rejoining in a spreadsheet or database is a straight lookup.

Qualify before you spend

Not-found and error rows cost nothing, so a messy account list is safe to throw at it. Filter afterwards on summary.staff_total, summary.revenue_band, summary.funding_total and summary.hq.country to keep only the accounts that match your ICP — the curated summary exists precisely so this is one pass over flat fields.

Score by tech stack

{ "companies": ["stripe", "shopify", "notion"] }

company.technologies is the full detected stack, each entry categorised ({ "name": "React", "category": "frontend framework" }), and summary.technologies_count is the quick size signal. Filter on the tools that mean a company is ready for what you sell.


Input

ParameterTypeRequiredDefaultDescription
companiesstring[]✅ Yes(none)LinkedIn company URLs in the canonical /company/<slug> form, or the bare slug. Up to 5,000 per run. Trailing slash and tracking parameters are fine.

Which URLs work

✅ https://www.linkedin.com/company/stripe
✅ https://www.linkedin.com/company/stripe/
✅ linkedin.com/company/stripe
✅ stripe
❌ stripe.com
❌ https://www.linkedin.com/company/1035
❌ urn:li:organization:1035

The data source resolves the canonical company slug only. Bare domains, numeric company IDs and URNs return an error row and are never charged. Open the company page in a browser and copy the /company/<name> URL from the address bar, or pass just the part after /company/.

Personal profile URLs (/in/...) do not belong here. For those, use the LinkedIn Profile Scraper, which returns the person and their current company in one row.


What data does the LinkedIn Company Scraper return?

Exactly one row per input. status says what happened: success (charged), not_found (free), error (free). On success you get two things — a curated summary with the fields people actually filter on, and the complete company object with everything the source has.

GroupFields
Curated summarysummary.name · domain · linkedin_url · industry · type · founded_year · staff_total · revenue_band · funding_total · funding_rounds · hq{city,state,country} · technologies_count · last_updated
Identitycompany.summary.name · legal_name · description · overview · founded_year · type (PUBLIC_COMPANY, PRIVATELY_HELD, NON_PROFIT, …) · industry · industries[]
Sizecompany.summary.staff.total · staff.range{start,end}
Linkscompany.link.website · domain · domain_ltd · linkedin · twitter · facebook · crunchbase
Contactcompany.contact.email · contact.phone.raw · contact.phone.sanitized
Financialcompany.financial.revenue.annual · financial.funding.total_amount · num_funding_rounds · rounds[{type,amount,date}] — every round, not just the last
Locationcompany.location.headquarter{city,state,country,street,postal_code} · location.locations[] — every office
Tech & classificationcompany.technologies[{name,category}] — the full stack · company.naics[] · company.sic[]
Freshnesscompany.last_updated · _metadata.extracted_at

Example row

{
"input": "https://www.linkedin.com/company/stripe",
"status": "success",
"summary": {
"name": "Stripe",
"domain": "stripe.com",
"linkedin_url": "https://www.linkedin.com/company/stripe",
"industry": "Financial Services",
"type": "PRIVATELY_HELD",
"founded_year": 2010,
"staff_total": 8000,
"revenue_band": "1000000000-5000000000",
"funding_total": 8700000000,
"funding_rounds": 21,
"hq": { "city": "San Francisco", "state": "California", "country": "United States" },
"technologies_count": 71,
"last_updated": "2026-06-30"
},
"company": {
"summary": { "legal_name": "Stripe, Inc.", "staff": { "total": 8000, "range": { "start": 5001, "end": 10000 } } },
"link": { "website": "https://stripe.com", "crunchbase": "https://www.crunchbase.com/organization/stripe" },
"contact": { "email": "info@stripe.com", "phone": { "sanitized": "+14152985539" } },
"financial": {
"funding": { "total_amount": 8700000000, "num_funding_rounds": 21, "rounds": [{ "type": "series_h", "amount": 6500000000, "date": "2023-03-14" }] }
},
"location": { "headquarter": { "city": "San Francisco", "country": "United States" } },
"technologies": [{ "name": "React", "category": "frontend framework" }],
"naics": ["522320"],
"sic": ["6199"]
},
"_metadata": { "extracted_at": "2026-07-02T12:00:00.000Z" }
}

rounds, technologies and location.locations are trimmed above for readability — the live record for this company carries all 21 rounds, all 71 technologies and all 15 offices. not_found and error rows carry the same input plus, on errors, an error_kind and a reason, and no company object.

last_updated tells you when the upstream source refreshed that company, so you always know how stale a record is.


How much does it cost to scrape LinkedIn company data?

$0.0035 per company found ($3.50 per 1,000), or $0.0028 on Apify Gold and above. Pay-per-event: you are charged only when a company actually comes back.

Companies enrichedCost
100$0.35
1,000$3.50
5,000$17.50

Free: not_found rows, error rows, and Apify platform compute. There is no penalty for throwing a messy list at it.

Large batches checkpoint. Runs over 50 companies save progress as they go, so if the platform restarts the container mid-run the Actor resumes rather than starting over and charging you twice.

Free plan: 20 companies per calendar month, so you can check the output shape before paying. The cap resets on the 1st, and only successful lookups count against it. Overflow inside a batch returns status: "error" with error_kind: "free_tier_limit" and is not charged.


What do people use the LinkedIn Company Scraper for?

  • Account qualification: check headcount, revenue band and funding before a rep spends a day on an account.
  • ICP scoring: turn a raw account list into a scored one on size, industry, geography and tech stack.
  • CRM enrichment: fill the firmographic columns on accounts you already have, in bulk.
  • Territory and market sizing: count how many companies in a segment actually match your profile.
  • Tech-stack targeting: find the accounts already running the tools your product plugs into.
  • Investor and market research: pull every funding round with type, amount and date across a whole sector.
  • Data pipelines: feed structured company data into Airtable, HubSpot, Salesforce or your warehouse.
  • AI agent context: give an agent a company's real numbers before it drafts anything.

This LinkedIn Company ScraperCookie-based scrapersOfficial LinkedIn API
LinkedIn account / cookiesNot neededYour li_at session cookie requiredOAuth app + LinkedIn approval
Account / ban riskNone (no account used)High (your account can be restricted)None
SetupPaste slugs or URLsExtract and paste your session cookiePartner application + review
Data depthFirmographics, funding rounds, full tech stack, every officeUsually the public page onlyPages you administer
BulkUp to 5,000 per runRate-limited by your accountStrict quotas
PricingPay per company found ($0.0035)Subscription + your accountGated / partner pricing

🏆 Top LinkedIn Scrapers

Profile Scraper
Any profile URL to 72 structured fields, no cookies
Posts Scraper
Text, media and engagement from any profile or company
Reactions Scraper
Every person who reacted to a post, with their headline
Comments Scraper
Comments and nested replies, with reaction counts
Company Scraper  YOU ARE HERE 
Company Employees Scraper
Every employee of a company, filterable by seniority and department
---

FAQ

What is LinkedIn company scraping?

LinkedIn company scraping turns a company page URL into a structured firmographic record: size, industry, revenue band, funding, technologies, offices and classification codes. This Actor takes a list of company URLs or slugs and returns one clean JSON row per company, ready for a CRM, spreadsheet or scoring model.

How do I look up a company without an account or cookies?

Paste the slug (stripe) or the canonical URL into companies and run it. The Actor resolves each company through a cookieless data source, so you never connect a LinkedIn account, paste a session cookie, or risk a ban.

Can I use this from ChatGPT or Claude?

Yes, two ways. Paste the "Copy to your AI assistant" block above into any LLM and it will write the call for you. Or connect the LinkedIn MCP server config above, and every Atomus Actor becomes a native tool your assistant can call on its own, including chaining several in one request.

Can I look up a company by its slug instead of the full URL?

Yes. stripe and https://www.linkedin.com/company/stripe are equivalent, and you can mix both forms in the same list.

Why doesn't a bare domain like stripe.com work?

The data source resolves the canonical LinkedIn company slug, and a domain is not one. Numeric IDs (/company/1035) and URNs are the same story. All three return an error row and cost nothing.

How much does it cost?

$0.0035 per company found ($3.50 per 1,000), $0.0028 on Apify Gold and above. not_found and error rows are free. Free Apify plans include 20 companies per month.

How do I get the employees of these companies?

Use the LinkedIn Company Employees Scraper, which takes the same company URLs and returns the people, filterable by seniority and department.

Is there an official LinkedIn API for company data?

LinkedIn's Organization APIs are partner-gated and mostly limited to pages you administer. They do not expose arbitrary company firmographics, funding or tech stack for enrichment.

This Actor reads publicly available company information through a third-party data source. You are responsible for using the output in line with applicable laws (GDPR/CCPA), LinkedIn's terms, and your own compliance requirements. It is an independent tool, not affiliated with LinkedIn.

How fresh is the data?

Every row carries last_updated, the date the upstream source refreshed that company, plus _metadata.extracted_at for when you pulled it.

What happens if a company isn't found?

You get a row with status: "not_found" and no company object, and it is not charged. Invalid inputs return status: "error" with an error_kind and a plain-language reason, also free.

Can I enrich a CRM or spreadsheet in bulk?

Yes. Export the company URLs, paste them into companies (up to 5,000 per run) and run. Each row echoes your original input, so rejoining is a straight lookup.


All Atomus scrapers

2.4M+ RESULTS DELIVERED

LinkedInProfile · Posts · Reactions · Comments · Company · Employees
Lead genLeads Finder
Google MapsPlaces & local businesses
TikTokVideos · Comments
X (Twitter)Tweets & profiles
RedNote 小红书Notes, users & comments
Douyin 抖音Profiles, videos & comments
Weibo 微博Posts & profiles
Bilibili 哔哩哔哩Videos & creators
---

Support

Hey, I'm Chico, founder of Atomus. I built this Actor and I answer the messages about it. Something broke? A field you need isn't there? Not sure it fits what you're doing? Send me a message, most answers come the same day.

💬  DM me on LinkedIn    or hello@dendelabs.com
---

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedIn® is a registered trademark of LinkedIn Corporation. All trademarks are property of their respective owners.

Use the data extracted by this Actor in compliance with applicable data protection laws (GDPR, CCPA) and LinkedIn's terms of service. Do not use it for spam, harassment, or unlawful purposes.