How to export LinkedIn company pages to JSON
Extract structured data from LinkedIn company profiles — name, description, headcount, industry, specialties, and follower count — using the LinkedIn API and AI extraction for public pages.
LinkedIn company pages are one of the richest sources of B2B company data: company size, industry, specialties, headquarters, founding year, follower count, and recent posts. Extracting this into structured JSON lets you build prospect lists, enrich a CRM, or track competitor activity programmatically.
What's on a LinkedIn company page
- Company name and LinkedIn URL
- Industry and company type (public, private, non-profit, educational)
- Headcount — LinkedIn's employee count, which is typically inflated vs. actual
- Headquarters — city and country
- Founding year
- Specialties — self-reported keyword tags
- Tagline and 'About' description
- Follower count
- Website URL
- Recent posts and engagement (on public pages)
Method 1: LinkedIn's official API
LinkedIn's Marketing Developer Platform gives access to company profile data via the Organizations API. The official path requires applying for API access (which LinkedIn reviews and often rejects for non-marketing use cases), OAuth 2.0 authentication with a company page admin, and then GET /v2/organizations/{id}.
Practically speaking: LinkedIn's API program has extremely restricted access. Unless you're building a LinkedIn-approved marketing tool, the application will be rejected or left pending indefinitely. Most developers who need company page data don't use the official API.
Method 2: The unofficial API (for controlled use)
Several projects reverse-engineered LinkedIn's internal API. linkedin-api (Python, MIT license) wraps the unofficial endpoints and can fetch company data by LinkedIn URL or company ID. This violates LinkedIn's ToS and may result in account banning — use only on accounts you're willing to risk, and with significant rate limiting.
- pip install linkedin-api
- from linkedin_api import Linkedin
- api = Linkedin('your@email.com', 'password')
- company = api.get_company('openai') # slug from the URL
- print(company['name'], company['staffCount'], company['specialities'])
linkedin-api is a liability for production use — LinkedIn rate-limits aggressively and accounts used this way get restricted. Acceptable for research or one-time data pulls; not suitable for an automated pipeline.
Method 3: Scraping public pages
LinkedIn blocks unauthenticated requests with a login redirect after a few page loads. Tools like Playwright or Selenium with a logged-in session can access public company pages, but LinkedIn detects and blocks automation rapidly. Proxies, delays, and browser fingerprint spoofing are an arms race. Consider this path only if you have a strong need and the resources to maintain it.
Method 4: Paste the page text or PDF export
For a small number of company pages — a prospect list of 20-50 companies — the most practical approach is manual: save each page as PDF (browser Print → Save as PDF), or copy the visible text from the page, and run AI extraction to structure the fields. This sidesteps authentication and rate limits entirely.
What JSON fields to expect
A well-extracted LinkedIn company page produces:
- company_name, linkedin_url, website
- industry (e.g. 'Software Development'), company_type ('Privately Held')
- employee_count or headcount_range ('201-500 employees')
- headquarters (city, country)
- founded (year)
- specialties (array of string tags)
- about (the company description text)
- follower_count (if visible)
Enriching a prospect list
The common workflow: start with a list of company names or domains, find their LinkedIn URLs (by searching LinkedIn or using a prospecting tool), extract each company page into JSON, and merge the structured fields back into your CRM or outreach tool. AI extraction is the right tool for the extraction step — it handles the field variation across company types and sizes without per-company configuration.
Frequently asked questions
Can I export LinkedIn company pages to JSON without the API?+
Yes. Save the company page as PDF or copy the visible text, then use AI extraction to return structured fields (name, industry, headcount, specialties, headquarters) as JSON. For a small number of companies this is faster and more reliable than setting up API access.
Does LinkedIn allow scraping company pages?+
LinkedIn's ToS prohibits automated scraping. The September 2022 ruling (hiQ v LinkedIn) clarified that public data can be scraped, but LinkedIn still aggressively blocks automated access. For commercial use or any significant volume, use compliant data providers or the official API.
How is extracting a company page different from a personal LinkedIn profile?+
Company pages have different fields: headcount, founding year, specialties, follower count, company type. Personal profiles have work history, education, and skills. The LinkedIn extractor handles both — paste or upload the page and the model extracts the appropriate fields for each type.
How do I get LinkedIn company data for 1,000 companies?+
For large-scale enrichment, use a compliant B2B data provider (Clearbit, Apollo, ZoomInfo, People Data Labs) rather than scraping. For smaller lists or one-time pulls, save-as-PDF and AI extract is practical. The unofficial Python API is an option for non-production research use.