LinkedIn Company Scraper - No Login, Bulk avatar

LinkedIn Company Scraper - No Login, Bulk

Pricing

from $2.80 / 1,000 company scrapeds

Go to Apify Store
LinkedIn Company Scraper - No Login, Bulk

LinkedIn Company Scraper - No Login, Bulk

Scrape public LinkedIn company & showcase pages without login or cookies. Firmographics, headcount, HQ, website, followers. HarvestAPI-compatible JSON. CSV/Sheet bulk. Pay per company from $2.80/1k (Gold).

Pricing

from $2.80 / 1,000 company scrapeds

Rating

0.0

(0)

Developer

Daniel Valev

Daniel Valev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

What does LinkedIn Company Scraper do?

LinkedIn Company Scraper is a LinkedIn company data API alternative for public LinkedIn company and showcase pages. Paste URLs or slugs — get structured firmographics from the same logged-out HTML a visitor sees: name, industry, size band, employees on LinkedIn, followers, HQ, website, logo, specialties, and more.

No LinkedIn login. No li_at cookie. No browser automation. Pure HTTP at 256 MB, with optional residential fallback when datacenter exits are blocked.

Output is compatible with harvestapi/linkedin-company so you can swap Actors without renaming CRM or warehouse columns. Extra provenance fields (input, redirectedFromSlug, websiteDomain, scrapedAt) are additive.

Try it free with the built-in sample (5 companies, no input required), or use the examples below.

Who is this LinkedIn company scraper for?

Sales, RevOps & ABM

  • Enrich account lists with industry, headcount band, HQ, and website
  • Build TAM lists from known /company/ URLs or slugs
  • Feed CRM, Clay, or outbound tools with consistent JSON

Market research & competitive intelligence

  • Snapshot competitor firmographics at a point in time
  • Compare size bands and follower counts across a sector
  • Export CSV/Excel for decks and dashboards

Data engineering & AI pipelines

  • HarvestAPI-shaped rows for warehouses and reverse ETL
  • Schedule weekly refreshes via Apify; read STATS for fill-rate QA
  • Call from Apify API, webhooks, Make/Zapier, or MCP

Why use this scraper?

  • Drop-in HarvestAPI shape — same core keys (universalName, employeeCountRange, specialities, …)
  • Bulk input — stringList plus CSV / Google Sheet via startUrls
  • Pay only for unique companies returned — failed, blocked, 404, and duplicate rows are free
  • Fast HTTP engine — no Playwright CU overhead for guest company pages
  • Honest scope — company/showcase pages only; no fake phone or employee roster data
  • Run telemetry — STATS and FAILED in the key-value store every run

How it compares

This ActorTypical Store LinkedIn company scrapers
LoginNot requiredSometimes cookies / accounts
OutputHarvestAPI-compatible coreOften custom schemas
TransportHTTP (256 MB)Often browser-heavy
BulkCSV / Sheet + slug listOften URL-only
PricingPPE from ~$2.80 / 1k (Gold)Harvest from $3.00 / 1k; others vary
Name → URL searchNot in MVP (URLs/slugs only)Some Actors include search

If you already use harvestapi/linkedin-company, point the same downstream mapper at this dataset — shared field names, fewer migration surprises.

How to scrape LinkedIn company pages

  1. Create a free Apify account (or open this Actor in Console).
  2. Open LinkedIn Company Scraper.
  3. Add Companies — slugs (stripe), full URLs, country subdomains (uk.linkedin.com/company/…), or showcase URLs.
  4. Optionally add Start URLs from a CSV or Google Sheet (one company URL per row).
  5. Set Max companies and leave Residential fallback on if you hit authwalls at scale.
  6. Click Start. Download JSON, CSV, or Excel from the dataset — or pull via API.
  7. Inspect STATS (bytes, fill rates) and FAILED (blocked / 404 inputs) in the run’s key-value store.

Tip: Run once with an empty input to verify health — the Actor scrapes five sample companies and states that in the status message.

What data can you extract?

CategoryFields
Identityid, universalName, linkedinUrl, name, tagline, logo
Firmographicsindustries, companyType, description, foundedOn, specialities
Size & socialemployeeCount, employeeCountRange, employeeCountRangeText, followerCount
Web & HQwebsite, websiteDomain, locations (HQ + listed offices when present)
Medialogos, backgroundCovers
Provenanceinput, redirectedFromSlug, scrapedAt
Guest-only gapsphone (always null logged-out), fundingData (only if on guest page)

Missing values are null (arrays empty). The Actor never invents employee rosters or phone numbers.

Output example

Cloud sample run 5ON0VYpTGxImbDxqJ (truncated):

{
"id": "2135371",
"universalName": "stripe",
"linkedinUrl": "https://www.linkedin.com/company/stripe",
"name": "Stripe",
"tagline": "Help increase the GDP of the internet.",
"website": "https://stripe.com",
"logo": "https://media.licdn.com/dms/image/…/stripe_logo",
"foundedOn": { "year": 2010 },
"employeeCount": 16622,
"employeeCountRange": { "start": 5001, "end": 10000 },
"followerCount": 1748499,
"description": "Stripe builds programmable financial services…",
"companyType": "Privately Held",
"locations": [
{
"country": "US",
"geographicArea": "California",
"city": "South San Francisco",
"line1": null,
"headquarter": true,
"description": "Headquarters"
}
],
"specialities": ["Payments", "Billing", "Connect"],
"industries": ["Technology, Information and Internet"],
"phone": null,
"input": "stripe",
"websiteDomain": "stripe.com",
"scrapedAt": "2026-10-05T16:45:02.000Z"
}

Download the full dataset as JSON, CSV, Excel, HTML, or XML from the run page.

Input

See the Input tab in Console for the full form. Main fields:

FieldDescription
companiesURLs or slugs (stripe, https://www.linkedin.com/company/shopify/, showcase URLs)
startUrlsBulk CSV / Google Sheet / pasted URLs (requestListSources)
maxItemsMax unique companies returned and charged (default 1000)
maxConcurrencyParallel requests, 1–10 (default 5)
proxyConfigurationApify DATACENTER by default
residentialFallbackOne RESIDENTIAL (US) retry after DC blocks, capped per run
includeFailedRowsOptional non-charged { input, error, reason } rows in the dataset

Example input

{
"companies": [
"stripe",
"https://www.linkedin.com/company/shopify/",
"https://uk.linkedin.com/company/revolut/"
],
"startUrls": [],
"maxItems": 100,
"maxConcurrency": 5,
"residentialFallback": true
}

How much does it cost to scrape LinkedIn companies?

Pay per event. You pay only for the company event — one charge per unique company row written to the dataset.

PlanPer 1,000 companiesvs HarvestAPI (~$3–4 / 1k)
Free / Bronze$3.75Slightly below $4 entry tier
Silver$3.25Below $3.50
Gold$2.80Below $3.00

Not charged: failed inputs, HTTP 404, blocked/authwall pages, duplicates, optional failed-row dataset entries.

No custom start fee in code. Keep Apify’s synthetic apify-actor-start at the default; disable apify-default-dataset-item in Console to avoid double-charging.

With usage included in PPE (recommended), users see one predictable price per company — similar to top Store LinkedIn company Actors.

Field fill rates (cloud baseline)

From health-check run 5ON0VYpTGxImbDxqJ — 5 sample companies, 256 MB, ~197 s, ~369 KB avg HTML per success (STATS.avgBytesPerSuccess):

FieldFill %
id, name, website, logo, employeeCount, employeeCountRange, followerCount, description, companyType, locations, industries100
tagline, foundedOn, specialities80

Sparse or non-English pages may leave optional fields empty — check STATS.fieldFillRates on your own target list.

Honest limits

  • Logged-out company/showcase pages only — not /company/…/about/ (guest redirect to login), not people, posts, jobs, or employee lists
  • phone is always null on guest pages
  • No company-name → URL resolver in MVP — provide URLs or slugs (CSV/Sheet friendly); resolver hook is planned without breaking the input pipeline
  • Website may be a tracking or jobs URL as listed on LinkedIn
  • LinkedIn may block (HTTP 999 / authwall) — session rotation + capped residential fallback; see FAILED for reasons
  • redirectedFromSlug flags when LinkedIn redirects to a different canonical slug

Migrate from harvestapi/linkedin-company

Core columns align: id, universalName, linkedinUrl, name, employeeCount, employeeCountRange, followerCount, locations, specialities, industries, etc.

Map the same ETL; read extra fields only if you need audit (input, scrapedAt) or redirects (redirectedFromSlug).

Not supported here (yet): bulk search by company name (searches on Harvest) — use URLs/slugs or pre-resolve names elsewhere.

API, CLI, and MCP

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('valev-lab/linkedin-company-scraper').call({
companies: ['stripe', 'https://www.linkedin.com/company/shopify/'],
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

CLI

apify call valev-lab/linkedin-company-scraper --input '{
"companies": ["stripe", "shopify"],
"maxItems": 2
}'

MCP — add this Actor to your Apify MCP tools, then run with the same JSON input. See the API tab in Console for OpenAPI and hosted MCP URL.

Each run also stores STATS and FAILED in the default key-value store (not billed).

FAQ

No. The Actor reads only public pages LinkedIn serves to logged-out visitors. Your account is never used.

Is this the same schema as HarvestAPI LinkedIn Company?

The core firmographic keys match harvestapi/linkedin-company. Extra provenance keys are documented above and do not replace Harvest fields.

Why is phone always null?

Guest company pages do not expose phone numbers in the HTML this Actor parses. We do not guess.

What happens when LinkedIn blocks the request?

The session rotates (datacenter, then optional residential). Persistent failures are listed in FAILED with reasons such as blocked or authwall. Those rows are not charged.

Can I scrape from a CSV?

Yes. Use Start URLs with a CSV or Google Sheet, or paste URLs into Companies.

Responsible use

This Actor reads public logged-out HTML only. It does not log in, solve CAPTCHAs, or bypass authwalls. LinkedIn’s User Agreement and robots.txt restrict automated access — you are responsible for lawful, compliant use in your jurisdiction.

Our Actors extract only what is published on public company pages. Results may include business contact URLs LinkedIn chooses to display; handle exports under GDPR and applicable privacy rules when required.

Disclaimer: This tool is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedIn® is a registered trademark of LinkedIn Corporation.

Support

Open an issue on the Actor’s Issues tab in Apify Console with the run ID and (if safe) a sample company URL that failed.

Changelog

1.0.0

  • MVP: URL/slug/showcase input, logged-out HTTP scrape, HarvestAPI-compatible output, PPE company event, STATS / FAILED telemetry
  • Verified cloud health check run 5ON0VYpTGxImbDxqJ