Use case: enrich leads
Add the right people, and their confirmed work emails.
Start from a company or a job title. Prospect search finds the people; the email finder works out each one's work email and confirms it with the company's mail server.
- Status
- Early access; MagpieCRM does it today
- You send
- Filters, then a name and a domain
- You get
- People, then confirmed work emails
- Charged for
- People returned, and emails found


Pick people, then save them to a list. Their work emails are found and checked as they're saved.
Finding an email
Guesses checked, only a confirmed one kept.
The finder tries likely formats, the company's learned one first, and stops at the first one the mail server confirms.
northwind.example, a company with no learned format yet. Each guess is checked with the company's mail server, and the search stops at the first one it confirms.- Find the company's mail server
- Test it for catch-all, once per company
- Check guesses in order, the learned format first
- first.lastGuess
jane.smith@northwind.exampleMail server550rejected - flastGuess
jsmith@northwind.exampleMail server550rejected - firstGuess
jane@northwind.exampleMail server250confirmed, stops here - firstlastGuess
janesmith@northwind.exampleMail servernot needed - first_lastGuess
jane_smith@northwind.exampleMail servernot needed - f.lastGuess
j.smith@northwind.exampleMail servernot needed
- Up to 6 checks per person. The usual formats come first; rarer shapes follow for other spellings of a name.
- Only the format is stored. Northwind learns
{first}@northwind.example, never Jane's name, and the next person there is checked against it first. - Hosted copies share company data only. On Magpie Cloud, format counts (for companies of 10 or more people, backed by 3 addresses from 2 workspaces) and catch-all verdicts are shared, so one workspace's checks save the next one's.
Read the code:emailFinder.ts,patterns.ts,sharedFormats.ts,sharedCatchAll.ts
In MagpieCRM today
Save people, and their emails are found.
In MagpieCRM on Magpie Cloud, tick the people you want in Prospect Search and save them to a list. Each work email is found and checked with the company's mail server as they're saved.
- Only confirmed emails are saved as verified
- Catch-all and not-found results are flagged, not saved
- 1 credit for each verified email found


Companies first
Or start from the companies that fit.
Search companies by industry, headcount and country, then find the people at the ones you want. Companies you save are kept in the CRM with their contacts and deals.

Preview
Two calls: the people, then their emails.
This is how the API is planned to work. Names and fields may change before launch.
1. Search people
curl https://api.magpie-cloud.com/v1/people/searches \
-H "Authorization: Bearer $MAGPIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"titles": ["Head of Operations"],
"seniorities": ["head", "director"],
"industries": ["Truck Transportation"],
"countries": ["GB"],
"limit": 25
}'const res = await fetch("https://api.magpie-cloud.com/v1/people/searches", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MAGPIE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
titles: ["Head of Operations"],
seniorities: ["head", "director"],
industries: ["Truck Transportation"],
countries: ["GB"],
limit: 25,
}),
});
const data = await res.json();import os
import requests
res = requests.post(
"https://api.magpie-cloud.com/v1/people/searches",
json={
"titles": ["Head of Operations"],
"seniorities": ["head", "director"],
"industries": ["Truck Transportation"],
"countries": ["GB"],
"limit": 25,
},
headers={"Authorization": f"Bearer {os.environ['MAGPIE_API_KEY']}"},
timeout=90,
)
data = res.json(){
"id": "ps_0baf089fe94eedd45f",
"status": "running",
"limit": 25,
"poll_after_ms": 5000
}Full reference: POST /people/searches
2. Find each email
curl https://api.magpie-cloud.com/v1/find \
-H "Authorization: Bearer $MAGPIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Alex",
"last_name": "Sample",
"domain": "examplefreight.example"
}'const res = await fetch("https://api.magpie-cloud.com/v1/find", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MAGPIE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
first_name: "Alex",
last_name: "Sample",
domain: "examplefreight.example",
}),
});
const data = await res.json();import os
import requests
res = requests.post(
"https://api.magpie-cloud.com/v1/find",
json={
"first_name": "Alex",
"last_name": "Sample",
"domain": "examplefreight.example",
},
headers={"Authorization": f"Bearer {os.environ['MAGPIE_API_KEY']}"},
timeout=90,
)
data = res.json(){
"email": "alex.sample@examplefreight.example",
"status": "verified",
"pattern": "first.last"
}Early access
Get a key when it's ready.
The APIs aren't live yet. Tell us what you need, and we'll write when keys are ready.
Not yet
What it doesn't do yet.
The APIs are in early access. So you know before you sign up:
- The prospect search API isn't live yet: early-access members get keys first. The same goes for the email finder.
- Finding emails for a whole list in one call is planned but not built.
- Before prospect search opens as an API, we're finishing our data protection review of offering it.
FAQ
Questions, answered.
Does prospect search return email addresses?
No. It returns people: name, title, seniority, company, domain, country and profile link. Send the ones you want to the email finder for a confirmed work email.
What if the company's domain is catch-all?
The finder answers catch_all, with no email, because nothing can be confirmed there. Only a verified find is planned to be charged.
How many checks does finding one email take?
Up to 6, starting with the company's known format when there is one. It stops at the first address the mail server confirms.
Is anything stored?
Search results aren't kept unless you save them. Finding an email stores only the company's format, never the person's name.
What will it cost?
Planned prices: 1 credit (£0.004) for each person returned, and 1 credit (£0.004) for each email found. Nothing when no email is found. They may change before launch.Planned prices: 1 credit ($0.006) for each person returned, and 1 credit ($0.006) for each email found. Nothing when no email is found. They may change before launch.
Keep exploring
Related
Build on the engine behind MagpieCRM.
The APIs are in early access. Tell us what you'd use them for, and we'll write when your key is ready.
