LinkedIn Public Company Profiles Scraper (No Cookies)
Pricing
from $0.13 / 1,000 company profiles
LinkedIn Public Company Profiles Scraper (No Cookies)
Extract identity-safe public LinkedIn company profiles from exact URLs or slugs. Export firmographics, provenance, and complete success/error accounting.
Pricing
from $0.13 / 1,000 company profiles
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Turn exact LinkedIn company URLs or slugs into structured, export-ready firmographic records. The actor requires no LinkedIn account or cookies, never guesses from a company name, and charges only for successful identity-checked company profiles.
Use it for CRM enrichment, account research, recruiting analysis, investment research, and recurring competitor monitoring. Every submitted input ends as either a company record or an explicit failed/skipped outcome, so duplicates and entries above the cap never disappear silently.
Who is it for?
- B2B sales and RevOps teams enriching account records from known LinkedIn company URLs.
- Recruiting and labor-market analysts comparing public company size, industry, location, and hiring signals.
- Investors and market researchers collecting consistent public firmographics for analysis.
- Competitive-intelligence teams monitoring the same verified companies on a schedule.
Example input
{"companyUrls": ["https://www.linkedin.com/company/apify/","openai"],"maxCompanies": 10,"includeFieldProvenance": true,"includeJobOpeningCount": false}
Example output
{"inputIndex": 0,"requestedUrl": "https://www.linkedin.com/company/apify/","requestedSlug": "apify","canonicalUrl": "https://www.linkedin.com/company/apify/","resolvedSlug": "apify","linkedinCompanyId": "10608457","identityMatch": "exact","name": "Apify","tagline": null,"description": "Apify is the largest marketplace of tools for AI...","website": "https://apify.com/","websiteDomain": "apify.com","industryDisplayed": "Technology, Information and Internet","companyType": "Privately Held","foundedYear": 2016,"employeeRange": "201-500 employees","associatedMemberCount": 244,"followerCount": 27073,"headquarters": "Prague","locations": [{ "address": "Prague", "isHeadquarters": true }],"specialties": ["Web scraping", "Browser automation", "AI agents"],"logoUrls": [],"coverUrls": [],"missingFields": ["tagline", "industryId", "industryUrn"],"fetchedAt": "2026-07-10T12:55:25.574Z","schemaVersion": "1.0"}
Optional public fields remain null or empty and are listed in missingFields; they are never guessed.
What data it exports
- Exact requested, canonical, and resolved LinkedIn company identity
- LinkedIn company ID when publicly exposed
- Company name, tagline, description, website, and website domain
- Displayed industry plus taxonomy ID/URN when available
- Company type and founded year
- Employee range, associated member count, and follower count as separate values
- Headquarters, public locations, and specialties
- Public logo and cover image URLs
- Optional aggregate job-opening count when publicly displayed
- Per-field provenance, missing fields, fetch timestamp, and schema version
This actor is company-metadata only. It does not collect employee identities, personal profiles, work histories, email addresses, phone numbers, Sales Navigator data, or inferred contacts.
Output fields
| Field | Type | Description |
|---|---|---|
inputIndex | integer | Zero-based position in the submitted companyUrls list. |
requestedUrl, requestedSlug | string | Normalized identity requested by the input. |
canonicalUrl, resolvedSlug | string | Canonical public company URL and the slug returned for it. |
linkedinCompanyId | string or null | Public LinkedIn company identifier when exposed. |
identityMatch | string | exact or redirected; never a fuzzy name substitution. |
name, tagline, description | string or null | Public company name and profile text. |
website, websiteDomain | string or null | Public company website and normalized domain. |
industryDisplayed | string or null | Industry label displayed on the public profile. |
industryId, industryUrn | string or null | Public industry taxonomy identifiers when available. |
companyType, foundedYear | string/integer or null | Public ownership/type label and founding year. |
employeeRange | string or null | Displayed employee range; kept separate from member counts. |
associatedMemberCount, followerCount | integer or null | Public aggregate member and follower counts. |
headquarters, locations | string/array | Headquarters label and public location objects. |
specialties | string[] | Public company specialties. |
logoUrls, coverUrls | string[] | Public profile image URLs. |
jobOpeningCount | integer or null | Optional public aggregate job-opening count. |
fieldProvenance | object | Optional source notes for available fields. |
missingFields | string[] | Fields that were unavailable rather than guessed. |
fetchedAt, schemaVersion | string | UTC extraction timestamp and output contract version. |
Input settings
| Field | Type | Default | Description |
|---|---|---|---|
companyUrls | string[] | required | Exact linkedin.com/company/{slug}/ URLs or unambiguous slugs. Names, searches, websites, and personal-profile URLs are rejected. |
maxCompanies | integer | 100 | Maximum unique inputs processed, from 1 to 1,000. |
includeFieldProvenance | boolean | true | Adds the source used for each available field. |
includeJobOpeningCount | boolean | false | Includes the aggregate count only when the public profile exposes it. |
maxRuntimeSeconds | integer | 270 | Stops admitting new requests after 30–270 seconds while preserving completed rows and pending work. |
proxyConfiguration | object | Direct | Standard Apify proxy settings. Enable only a route available to your account and covered by your authorization. |
Inputs are normalized while preserving original indexes and order. Duplicate entries and valid entries above maxCompanies receive explicit uncharged outcomes.
Results and errors
Successful profiles are written to the default Company profiles dataset. Failed and skipped terminal outcomes are written separately to the Input errors dataset with the zero-based input index, original input, status, outcome code, HTTP status, retry count, message, and timestamp. RUN_SUMMARY reports requested, successful, failed, skipped, and pending totals, route information, and whether the run resumed. The legacy OUTPUT record contains the same summary. If the runtime limit is reached, RUN_CHECKPOINT preserves the next input and counters so the same run can be resurrected without reprocessing completed units.
Error/skipped rows are never charged as company results. Common codes are INVALID_INPUT, DUPLICATE_INPUT, MAX_COMPANIES_EXCEEDED, NOT_FOUND, BLOCKED, AUTH_REQUIRED, RATE_LIMITED, TIMEOUT, MALFORMED_RESPONSE, IDENTITY_MISMATCH, HTTP_ERROR, and PARSE_ERROR.
Pricing
Pay per event:
- Run start: $0.005 per run
- Successful company profile: $0.00025108 Free; $0.00021833 Starter / Bronze; $0.0001703 Scale / Silver; $0.000131 Business / Gold; $0.000087332 Platinum; $0.000061132 Diamond
- Failed or mismatched input: no result charge
Apify shows the exact charge estimate before a run. Final cost depends on successful profiles, not merely submitted inputs.
Input recipes
Enrich a CRM account list
Submit canonical company URLs exported from your CRM and keep includeFieldProvenance enabled for auditable enrichment.
Monitor competitors
Schedule the same slug list daily or weekly, then compare follower count, employee range, description, and headquarters over time.
Validate a mixed list safely
Submit URL and slug entries together. Invalid websites, names, and personal profiles appear in the errors dataset instead of being silently treated as searches.
Tips and limits
- Prefer canonical LinkedIn company URLs when you have them.
- A renamed company may resolve to a new slug and return
identityMatch: "redirected". - Public LinkedIn profiles vary; unavailable fields remain null/empty with explicit missing reasons.
- The actor does not bypass authentication or access account-only data.
- Upstream rate limits or challenge pages may produce a bounded
BLOCKEDfailure rather than partial data. - Direct cloud access is the verified default. Upstream routing can change; custom and residential routes can cost more, so select them only when available, authorized, and necessary.
- Large lists save and charge profiles progressively. When the active runtime limit is reached, completed rows remain available and pending work is checkpointed for resurrection.
- A run processes up to 1,000 unique inputs and uses bounded concurrency to protect reliability.
API usage
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/linkedin-company-profiles-scraper').call({companyUrls: ['apify', 'https://www.linkedin.com/company/openai/'],maxCompanies: 10,includeFieldProvenance: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/linkedin-company-profiles-scraper').call(run_input={'companyUrls': ['apify', 'openai'],'maxCompanies': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST \"https://api.apify.com/v2/acts/fetch_cat~linkedin-company-profiles-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"companyUrls":["apify","https://www.linkedin.com/company/openai/"],"maxCompanies":10}'
The response contains the run ID and dataset ID. Poll the run until it finishes, then download the default dataset items.
MCP and AI agents
Connect through Apify MCP so an AI agent can retrieve verified public-company context without LinkedIn credentials. Keep the strict URL/slug input rule in agent prompts to avoid fuzzy identity mistakes.
Add the actor to Claude Code:
claude mcp add --transport http apify-linkedin-company-profiles \"https://mcp.apify.com/?tools=fetch_cat/linkedin-company-profiles-scraper"
For Claude Desktop, Cursor, VS Code, or another MCP-compatible client, use this JSON configuration:
{"mcpServers": {"apify-linkedin-company-profiles": {"url": "https://mcp.apify.com/?tools=fetch_cat/linkedin-company-profiles-scraper"}}}
Example prompts:
- “Fetch the public company profiles for the exact LinkedIn slugs
apifyandopenai, and compare their displayed industries and employee ranges.” - “Retrieve this exact public LinkedIn company URL and report any missing fields without inferring values:
https://www.linkedin.com/company/apify/.”
Legality and responsible use
This actor collects company information visible on public LinkedIn company pages. Use the results only for lawful purposes and follow applicable privacy, database, copyright, employment, and marketing rules. Do not use the actor to identify employees, build personal profiles, evade access controls, or process personal data. You are responsible for your input list, retention policy, and downstream use of exported data.
FAQ
Does it need LinkedIn cookies or an account?
No. It processes publicly available company pages without user cookies or LinkedIn credentials.
Can I submit a company name or website?
No. Names, arbitrary websites, search queries, and non-company LinkedIn URLs are rejected. This prevents wrong-company substitutions.
Why are some fields null?
Companies choose which optional details to publish, and page layouts vary. Missing values are reported rather than inferred.
Are employee profiles included?
No. The product intentionally stays within a company-only privacy boundary.
Do failed inputs cost money?
They do not incur the per-company result charge. The one-time run-start event still applies.
Related actors
- LinkedIn Jobs Scraper for public job listings
- Google Ads Transparency Scraper for advertiser and campaign research
- Website Content Crawler Lite for separate public website content collection
Support
For questions or reproducible issues, use the Issues tab on the actor page. To help reproduce a problem, include:
- the Apify run ID or run URL;
- the sanitized exact input JSON, including relevant option values;
- the reproducible public LinkedIn company URL or slug;
- the expected output for that company;
- the actual output dataset row or observed error code;
- when the issue occurred and whether it happens consistently;
- the actor build number shown in the run details.
Remove unrelated company URLs if needed, but preserve the one public URL that demonstrates the issue. Do not share LinkedIn credentials, cookies, access tokens, or personal data.