Overview
SpiderPublicLinkedin extracts LinkedIn company and people profile data using the Voyager API (linkedin-api library). It requires authenticated LinkedIn accounts managed via the admin API, with built-in account rotation, warmup support, and rate limiting.
LinkedIn Accounts Required Unlike SpiderPublicInstagram, this worker requires authenticated LinkedIn accounts to function. Add accounts via the admin API before submitting jobs.
Best For
Extracting company information (size, industry, specialties, headquarters)
Getting people profiles (experience, education, skills)
Finding companies by keywords and industry
Finding people by keywords, location, company, or title
Building B2B lead databases with verified LinkedIn data
Operation Modes
SpiderPublicLinkedin supports four operation modes:
Mode Description get_companyFetch a single company profile get_profileFetch a single person profile search_companiesSearch for companies by keywords search_peopleSearch for people with filters
Request Body
Job configuration payload Operation mode: get_company, get_profile, search_companies, or search_people.
LinkedIn public ID (URL slug). Examples:
Company: microsoft, google, amazon
Person: satyanadella, billgates
Note: Required for get_company and get_profile modes unless linkedin_url is provided.Full LinkedIn profile or company URL. Supported Formats:
https://linkedin.com/company/microsoft
https://www.linkedin.com/in/satyanadella/
Note: Alternative to public_id.Search keywords for search_companies or search_people modes. Example: AI startup, CTO tech, software engineer
Maximum results to return for search modes. Range: 1-100
Location filter for search_people mode. Example: San Francisco, New York, United States
Company filter for search_people mode. Example: Microsoft, Google
Title filter for search_people mode. Example: CTO, CEO, Software Engineer
Industry filter for search_companies mode. Example: Software Development, Financial Services
Upload company logo or profile photo to SpiderMedia (per-client storage). Returns a permanent hosted URL instead of LinkedIn’s CDN URL.
Include recent company posts (for get_company mode). Note: Not fully implemented in current version.
Route to test queue (local workers only). Use for development and testing.
Job priority (0-10, higher = processed first).
Response
Unique job identifier (UUID format).
Always spiderPublicLinkedin.
Job creation timestamp (ISO 8601).
Example Requests
cURL - Get Company
cURL - Get Profile
cURL - Search Companies
cURL - Search People
Python
JavaScript
curl -X POST https://spideriq.ai/api/v1/jobs/spiderPublicLinkedin/submit \
-H "Authorization: Bearer <your_token>" \
-H "Content-Type: application/json" \
-d '{
"payload": {
"mode": "get_company",
"public_id": "microsoft"
}
}'
Example Response
{
"job_id" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
"type" : "spiderPublicLinkedin" ,
"status" : "queued" ,
"created_at" : "2026-01-18T14:30:00.000000" ,
"message" : "Job submitted successfully"
}
Results Structure
Company Results (get_company)
Always company for company results.
LinkedIn company public ID.
Company description/about text.
Primary industry (e.g., “Software Development”).
Type (e.g., “Public Company”, “Privately Held”).
List of company specialties.
HQ location with city and country.
LinkedIn followers count.
Approximate employee count.
Employee range (e.g., “10001+”, “201-500”).
Original LinkedIn CDN logo URL.
SpiderMedia hosted logo URL (permanent).
Full LinkedIn company URL.
Profile Results (get_profile)
Always profile for person results.
LinkedIn profile public ID.
Profile summary/about text.
Location (e.g., “Greater Seattle Area”).
Connection count (500+ shown as 500).
Work experience history with company, title, dates.
Education history with school, degree, field of study.
Original LinkedIn CDN photo URL.
SpiderMedia hosted photo URL (permanent).
Full LinkedIn profile URL.
Complete Results Examples
Company Result
{
"success" : true ,
"job_id" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
"type" : "spiderPublicLinkedin" ,
"status" : "completed" ,
"processing_time_seconds" : 6.52 ,
"data" : {
"type" : "company" ,
"public_id" : "microsoft" ,
"name" : "Microsoft" ,
"description" : "Every company has a mission. What's ours? To empower every person and every organization on the planet to achieve more." ,
"website" : "https://microsoft.com" ,
"industry" : "Software Development" ,
"company_type" : "Public Company" ,
"founded_year" : 1975 ,
"specialties" : [ "Business Software" , "Developer Tools" , "Cloud Computing" , "AI" ],
"headquarters" : {
"city" : "Redmond" ,
"country" : "United States"
},
"follower_count" : 22000000 ,
"employee_count" : 221000 ,
"employee_range" : "10001+" ,
"logo_url" : "https://media.licdn.com/dms/image/..." ,
"logo_url_hosted" : "https://media.spideriq.ai/client-cli_abc123/linkedin_company_microsoft.jpg" ,
"linkedin_url" : "https://www.linkedin.com/company/microsoft" ,
"metadata" : {
"universal_name" : "microsoft" ,
"source" : "linkedin_voyager_api" ,
"has_hosted_logo" : true
}
}
}
Profile Result
{
"success" : true ,
"job_id" : "b2c3d4e5-f6g7-8901-bcde-fg2345678901" ,
"type" : "spiderPublicLinkedin" ,
"status" : "completed" ,
"processing_time_seconds" : 5.23 ,
"data" : {
"type" : "profile" ,
"public_id" : "satyanadella" ,
"first_name" : "Satya" ,
"last_name" : "Nadella" ,
"full_name" : "Satya Nadella" ,
"headline" : "Chairman and CEO at Microsoft" ,
"summary" : "As Chairman and CEO of Microsoft, I lead a team focused on..." ,
"location" : "Greater Seattle Area" ,
"industry" : "Computer Software" ,
"connections" : 500 ,
"current_company" : "Microsoft" ,
"current_position" : "Chairman and CEO" ,
"experience" : [
{
"title" : "Chairman and CEO" ,
"company" : "Microsoft" ,
"location" : "Redmond, Washington" ,
"start_date" : { "year" : 2014 , "month" : 2 },
"end_date" : null ,
"description" : null
},
{
"title" : "Executive Vice President, Cloud and Enterprise" ,
"company" : "Microsoft" ,
"start_date" : { "year" : 2011 },
"end_date" : { "year" : 2014 }
}
],
"education" : [
{
"school" : "University of Chicago Booth School of Business" ,
"degree" : "Master of Business Administration" ,
"field_of_study" : null
},
{
"school" : "University of Wisconsin-Milwaukee" ,
"degree" : "Master of Science" ,
"field_of_study" : "Computer Science"
}
],
"skills" : [ "Leadership" , "Strategy" , "Technology" , "Cloud Computing" ],
"profile_pic_url" : "https://media.licdn.com/dms/image/..." ,
"profile_pic_url_hosted" : "https://media.spideriq.ai/client-cli_abc123/linkedin_profile_satyanadella.jpg" ,
"linkedin_url" : "https://www.linkedin.com/in/satyanadella" ,
"metadata" : {
"source" : "linkedin_voyager_api" ,
"has_hosted_photo" : true
}
}
}
Search Results
{
"success" : true ,
"job_id" : "c3d4e5f6-g7h8-9012-cdef-gh3456789012" ,
"type" : "spiderPublicLinkedin" ,
"status" : "completed" ,
"processing_time_seconds" : 8.15 ,
"data" : {
"type" : "company_search" ,
"keywords" : "AI startup San Francisco" ,
"filters" : {
"industry" : null
},
"total_results" : 10 ,
"results" : [
{
"name" : "OpenAI" ,
"universal_name" : "openai" ,
"description" : "OpenAI is an AI research and deployment company..." ,
"industry" : "Artificial Intelligence" ,
"staff_count" : 1500 ,
"headquarters" : { "city" : "San Francisco" , "country" : "United States" },
"logo_url" : "https://media.licdn.com/..."
}
],
"metadata" : {
"source" : "linkedin_voyager_api"
}
}
}
Processing Time
Configuration Typical Time Get company 5-8 seconds Get profile 5-8 seconds Search (10 results) 8-12 seconds With logo/photo upload Add 2-4 seconds With mobile proxy Add 2-5 seconds
Rate Limiting
LinkedIn has strict rate limits:
Limit Type Threshold Safe requests per account per day 30-50 Built-in delay between requests 5-10 seconds Session break every 20-30 requests
Account Pool Scaling Each LinkedIn account provides ~50 requests/day. Add more accounts via the admin API to scale capacity. Accounts Daily Capacity 1 30-50 profiles 5 150-250 profiles 10 300-500 profiles
Error Cases
No Accounts Available
{
"success" : false ,
"status" : "failed" ,
"error" : "No available LinkedIn accounts. All accounts may be rate limited or exhausted."
}
Profile Not Found
{
"success" : false ,
"status" : "failed" ,
"error" : "LinkedIn profile/company not found: invalidcompany123"
}
Rate Limited
{
"success" : false ,
"status" : "failed" ,
"error" : "LinkedIn rate limit exceeded. Account user@example.com marked as rate limited."
}
Authentication Failed
{
"success" : false ,
"status" : "failed" ,
"error" : "LinkedIn authentication failed. Account may need verification."
}
IP Blocked
{
"success" : false ,
"status" : "failed" ,
"error" : "LinkedIn blocked the request. Mobile proxy required."
}
Admin Account Management
Before using SpiderPublicLinkedin, add LinkedIn accounts via the admin API:
# Add a new account
curl -X POST "https://spideriq.ai/api/v1/admin/linkedin/accounts" \
-H "X-Admin-Key: $ADMIN_KEY " \
-H "Content-Type: application/json" \
-d '{
"account_email": "your-linkedin@example.com",
"password": "your-password",
"daily_request_limit": 50,
"is_new_account": true
}'
# List all accounts
curl "https://spideriq.ai/api/v1/admin/linkedin/accounts" \
-H "X-Admin-Key: $ADMIN_KEY "
# Check account stats
curl "https://spideriq.ai/api/v1/admin/linkedin/accounts/stats" \
-H "X-Admin-Key: $ADMIN_KEY "
Account Warmup New accounts should use is_new_account: true to enable the warmup schedule (7-day ramp from 5 to 50 requests/day). This prevents triggering LinkedIn’s anti-bot detection.
Next Steps