LinkedIn Company Details Scraper ✅ NO COOKIES
Pricing
from $2.80 / 1,000 company enricheds
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
Maintained by CommunityActor stats
11
Bookmarked
43
Total users
18
Monthly active users
11 hours ago
Last modified
Categories
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
companies | string[] | ✅ 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.
| Group | Fields |
|---|---|
| Curated summary | summary.name · domain · linkedin_url · industry · type · founded_year · staff_total · revenue_band · funding_total · funding_rounds · hq{city,state,country} · technologies_count · last_updated |
| Identity | company.summary.name · legal_name · description · overview · founded_year · type (PUBLIC_COMPANY, PRIVATELY_HELD, NON_PROFIT, …) · industry · industries[] |
| Size | company.summary.staff.total · staff.range{start,end} |
| Links | company.link.website · domain · domain_ltd · linkedin · twitter · facebook · crunchbase |
| Contact | company.contact.email · contact.phone.raw · contact.phone.sanitized |
| Financial | company.financial.revenue.annual · financial.funding.total_amount · num_funding_rounds · rounds[{type,amount,date}] — every round, not just the last |
| Location | company.location.headquarter{city,state,country,street,postal_code} · location.locations[] — every office |
| Tech & classification | company.technologies[{name,category}] — the full stack · company.naics[] · company.sic[] |
| Freshness | company.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 enriched | Cost |
|---|---|
| 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.
LinkedIn Company Scraper vs cookie-based tools vs the official LinkedIn API
| This LinkedIn Company Scraper | Cookie-based scrapers | Official LinkedIn API | |
|---|---|---|---|
| LinkedIn account / cookies | Not needed | Your li_at session cookie required | OAuth app + LinkedIn approval |
| Account / ban risk | None (no account used) | High (your account can be restricted) | None |
| Setup | Paste slugs or URLs | Extract and paste your session cookie | Partner application + review |
| Data depth | Firmographics, funding rounds, full tech stack, every office | Usually the public page only | Pages you administer |
| Bulk | Up to 5,000 per run | Rate-limited by your account | Strict quotas |
| Pricing | Pay per company found ($0.0035) | Subscription + your account | Gated / partner pricing |
🏆 Top LinkedIn Scrapers
|
Any profile URL to 72 structured fields, no cookies | |
|
Text, media and engagement from any profile or company | |
|
Every person who reacted to a post, with their headline | |
|
Comments and nested replies, with reaction counts | |
|
| |
|
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.
Is it legal to scrape LinkedIn company data?
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
| Profile · Posts · Reactions · Comments · Company · Employees | |
| Leads Finder | |
| Places & local businesses | |
| Videos · Comments | |
| Tweets & profiles | |
| Notes, users & comments | |
| Profiles, videos & comments | |
| Posts & profiles | |
| 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.