Find the email behind any LinkedIn profile
Three lookup methods โ by profile URL, by alias, or reverse-match from email to profile. Structured JSON response. No LinkedIn OAuth. No browser session.
1 credit per lookup. Starter plan: $49/month, 15,000 credits.
The Email Discovery Problem
You have a LinkedIn URL and need an email address. Or you have an email and need the LinkedIn profile behind it. These are the two most common data gaps in every sales and recruiting workflow.
Traditional email discovery tools use pattern guessing -- they construct firstname.lastname@company.com and hope for the best. Bounce rates run 15-30%. You waste credits on guesses, damage your sender reputation, and still don't have verified contact data.
LinkedIn stores actual email addresses that professionals have chosen to share publicly. The Anysite Email Finder API extracts these real emails directly, and provides a reverse lookup to find LinkedIn profiles from email addresses -- giving you two-way discovery in a single integration.
Three endpoints, three lookup methods
By profile URL, by alias, or reverse from email. Each lookup costs 1 credit.
User Email (alias, internal_id, or URL โ batch up to 10)
Find email(s) by LinkedIn internal_id, profile URL, or alias. Best when iterating through a search result set. Accepts up to 10 profiles per call.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user |
string | Yes | LinkedIn username or profile URL |
timeout |
integer | No | Request timeout in seconds (default: 30) |
Response
{ "urn": "urn:li:member:123456789", "email": "jdoe@company.com", "profile_url": "https://www.linkedin.com/in/johndoe" }
Find Email by Profile URL
Find email by LinkedIn profile URL. Returns email, status, name, company, and job title. Best for one-off lookups when you already have a clean profile URL.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | Full LinkedIn profile URL (e.g. https://www.linkedin.com/in/satyanadella) |
timeout |
integer | No | Request timeout in seconds (default: 30) |
Response
{ "email": "satya@microsoft.com", "email_status": "valid", "valid_email": true, "full_name": "Satya Nadella", "company_name": "Microsoft", "job_title": "Chairman and CEO" }
Email to Profile (reverse lookup)
Find the LinkedIn profile associated with an email address. Provide an email and get back the profile with name, headline, location, and URL.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | Email address to look up |
timeout |
integer | No | Request timeout in seconds (default: 30) |
Response
{ "urn": "urn:li:member:123456789", "first_name": "John", "last_name": "Doe", "headline": "VP of Engineering at TechCorp", "profile_url": "https://www.linkedin.com/in/johndoe", "location": "San Francisco Bay Area" }
How They Work Together
Combine both endpoints into pipelines that enrich, verify, and clean your contact data.
Pipeline 1: Search to Email Outreach
Pipeline 2: CRM Email Enrichment
Pipeline 3: Contact Data Hygiene
Code Examples
Ready-to-run examples for both endpoints and pipeline workflows.
import requests API_KEY = "your_api_key" BASE = "https://api.anysite.io" headers = {"Authorization": f"Bearer {API_KEY}"} # Step 1: Search for target profiles search = requests.get(f"{BASE}/api/linkedin/people/search", params={ "keywords": "VP Engineering", "company": "TechCorp" }, headers=headers) profiles = search.json() # Step 2: Extract emails from each profile for profile in profiles["results"]: email_resp = requests.get(f"{BASE}/api/linkedin/user/email", params={ "user": profile["username"] }, headers=headers) data = email_resp.json() if data.get("email"): print(f"{profile['name']}: {data['email']}")
import requests import csv API_KEY = "your_api_key" BASE = "https://api.anysite.io" headers = {"Authorization": f"Bearer {API_KEY}"} # Read emails from CRM export with open("crm_contacts.csv") as f: reader = csv.DictReader(f) for row in reader: # Reverse lookup: email to LinkedIn profile resp = requests.get(f"{BASE}/api/linkedin/email/user", params={ "email": row["email"] }, headers=headers) profile = resp.json() if profile.get("profile_url"): print(f"{row['email']} -> {profile['first_name']} {profile['last_name']}") print(f" Title: {profile['headline']}") print(f" LinkedIn: {profile['profile_url']}")
# Get email from a LinkedIn profile curl -X GET "https://api.anysite.io/api/linkedin/user/email?user=johndoe" \ -H "Authorization: Bearer YOUR_API_KEY"
# Find LinkedIn profile by email address curl -X GET "https://api.anysite.io/api/linkedin/email/user?email=jdoe@company.com" \ -H "Authorization: Bearer YOUR_API_KEY"
# Profile to email anysite linkedin email --user johndoe # Email to profile anysite linkedin email --email jdoe@company.com
# Batch lookup from CSV anysite linkedin email --batch profiles.csv --output emails.csv # Reverse batch: emails to profiles anysite linkedin email --reverse-batch emails.csv --output enriched.csv
# pipeline.yaml - Search + email discovery workflow pipeline: search-to-email steps: - name: find_targets endpoint: linkedin/people/search params: keywords: "VP Engineering" company: "TechCorp" - name: get_emails endpoint: linkedin/user/email input: find_targets.results[].username params: user: "" - name: export format: csv output: contacts.csv
Use Cases
Outbound Sales Email Campaigns
Identify target profiles by title, company, and industry using People Search, then extract verified email addresses for direct outreach. Build targeted prospect lists at a fraction of the cost of traditional data providers.
Workflow
Search by ICP criteria, extract profile URLs, run profile-to-email for each result, export to your email platform.
CRM Data Hygiene
Cross-reference LinkedIn profiles with email addresses already in your CRM. Detect job changes by checking if a contact's email still resolves to the same LinkedIn profile, and update records with current titles, companies, and locations.
Workflow
Export CRM emails, run email-to-profile lookups, compare profile data against CRM fields, flag stale records.
Recruiting Contact Discovery
Bypass InMail limits and response-rate issues by reaching candidates through direct email. Find email addresses for LinkedIn profiles you've already identified, enabling faster and more personal outreach.
Workflow
Identify candidates via LinkedIn search, extract emails with profile-to-email endpoint, personalize outreach with profile data.
Lead Scoring and Verification
Use the email-to-profile endpoint for instant lead qualification. When a new email enters your funnel, resolve it to a LinkedIn profile to get title, company, and seniority -- enabling real-time lead scoring without manual research.
Workflow
Capture inbound email, run email-to-profile lookup, score based on title/company match, route to appropriate sales rep.
Pricing
Both endpoints cost 1 credit per request. No successful result, no charge.
Volume Pricing
Credits scale with your plan. Use them across any endpoint.
| Lookups | Credits Used | Effective Cost |
|---|---|---|
| 100 | 100 | Included in free trial |
| 1,000 | 1,000 | Free trial covers this |
| 5,000 | 5,000 | From $0.01/lookup |
| 10,000 | 10,000 | From $0.008/lookup |
| 50,000 | 50,000 | From $0.005/lookup |
Full Contact Discovery Pipeline
Combine search, email extraction, and profile data for complete contact records.
| Step | Endpoint | Cost |
|---|---|---|
| Search prospects | People Search | 1 credit |
| Get profile data | Profile Data | 1 credit |
| Extract email | User Email | 1 credit |
| Verify via reverse | Email to User | 1 credit |
| Total per contact | 4 credits |
Frequently Asked Questions
Related Endpoints
Start finding emails from LinkedIn
7-day free trial, 1,000 credits. One API key works across every LinkedIn endpoint.