Find work emails for the LinkedIn prospects you already picked
Turn LinkedIn profile URLs into email addresses as JSON, so a shortlist of prospects becomes a contact list you can load into your outreach tool.
You have a shortlist of the right people, with profile URLs and no way to reach them outside LinkedIn. Guessing addresses bounces and hurts your sending domain. Lovely Router looks up the email for each profile. Send profile URLs, get one JSON object per email, pay per email from a prepaid balance. Run it from a script or an AI agent between your prospecting step and your outreach tool.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Find work emails for the LinkedIn prospects you already picked. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
Start from a shortlist
Collect LinkedIn profile URLs of people you have a real reason to contact.
Run the tool with a cap
Send the URLs in
linkedinUrlstoPOST /v1/tools/linkedin-email-finder/runwithmax_results. The run holds its maximum cost from your balance.Verify before you send
Pass the addresses through a verification step, then load only the valid ones into your outreach tool.
Find emails from profile URLs with one request
Find email from a LinkedIn profile takes profile URLs in linkedinUrls. One address is one result, and one run reads up to 50 profiles:
curl https://lovelyrouter.com/v1/tools/linkedin-email-finder/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"linkedinUrls": [
"https://www.linkedin.com/in/jane-doe-example"
]
},
"max_results": 3
}'Only profiles where an address is found are returned. You are responsible for using people and contact data lawfully, including privacy and anti-spam rules in the countries of the people you contact. A run still going after 60 seconds returns 202; Run a tool shows how to poll.
What each email holds
| Field group | What you get |
|---|---|
| Contact | Email address for the profile |
| Source | The LinkedIn profile URL it belongs to |
The tool returns the email and nothing about the person. To add name, headline and position, run the same URLs through linkedin-profile.
Recipes
Take the 40 decision makers from an employee search, look up their emails in one run, and verify them before the first send.
When a signup gives you only a LinkedIn link, look up a work address to follow up by email.
Build a list of conference speakers or podcast guests from their profile URLs and find where to write.
Select contacts with a LinkedIn URL and no email, run them in batches of 50 and write the results back.
Keep a note of where each address came from, and send only to people for whom your message is relevant.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Read profiles.csv, look up the email for each LinkedIn URL with linkedin-email-finder, and give me a CSV of url and email. Set max_results to 30."
Pair it with the steps before and after
An email finder is the middle of a prospecting chain:
Work email address for LinkedIn profile URLs.
Search LinkedIn people by keyword, location, company and title. One call returns up to 25 short profiles.
Employees of LinkedIn companies, filterable by job title, location and keyword: name, headline, position, profile URL.
Check whether email addresses are deliverable: syntax, domain, MX records and mailbox status.
Public LinkedIn profile by URL: headline, experience, education, skills, location.
linkedin-people-searchfinds the people by title and location before you need their emails.linkedin-company-employeeslists people at a target company.email-verifychecks each address before you send.linkedin-profileadds the person's role and background to personalize the message.
For the full prospecting flow, see lead generation.
What you pay
You pay per email: starting a run holds its maximum cost, the per-call fee plus the per-email fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the emails it delivered, and a run refused at the start costs nothing.
Looking up 100 profiles is billed by the emails the run returns, up to 100. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
What do I need to provide?+
Only LinkedIn profile URLs, in linkedinUrls.
How many profiles can one run take?+
Up to 50 per run.
Is every profile guaranteed to return an email?+
No. A profile with no address found returns nothing, and you pay for the emails delivered.
Is it legal to email these people?+
That depends on where you and they are. You are responsible for using people and contact data lawfully, including privacy and anti-spam rules in the countries of the people you contact.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.
Putting together a prospecting flow? See lead generation, and the rest of the tool catalog. Run settings are in Run a tool.