LeadMagic — Email enrichment
Auth: X-API-Key: $LEADMAGIC_API_KEY → https://api.leadmagic.io. Never echo the key.
Which endpoint?
| Goal | Endpoint | Credits | Rate/min |
|---|---|---|---|
| Validate an email | POST /v1/people/email-validation |
0.25 (conclusive only) | 5,000 |
| Work email from name + company | POST /v1/people/email-finder |
1 (free on miss) | 5,000 |
| Personal email from profile URL | POST /v1/people/personal-email-finder |
2 (free on miss) | 5,000 |
| B2B Profile URL → work email | POST /v1/people/b2b-profile-email |
5 (free on miss) | 1,500 |
| Email → full B2B Profile | POST /v1/people/b2b-profile |
10 | 1,500 |
Cheapest-first ladder: find (1) → personal (2) → profile→email (5) → email→profile (10). Validation (0.25) is a separate lane for emails the user brought from elsewhere. Email Finder returns a validation result with the address; inspect that result rather than immediately buying a duplicate validation. Delivery can still change over time. If you already hold a profile URL and only need profile fields, use profile-search (1) — not b2b-profile (10).
Field contract (forgiving on purpose)
- email-finder needs the person (
first_name+last_name,full_name, or a personprofile_url) AND the company (domain/company_domain/website/urlorcompany_name). CamelCase and common CRM aliases are accepted;nullvalues are treated as omitted. - Profile-URL endpoints take
profile_url(common CRM synonym keys are accepted); full URL or bare slug —/in/{username}forms are normalized. Company pages (/company/…) are rejected here; use Company Search for those. - b2b-profile accepts
work_email,personal_email, or plainemail(maps to work_email). - Names are sanitized (credentials, emojis, trailing digits stripped) but multi-person strings, bios, and company names in name fields are rejected with a 400 explaining the fix.
Examples
# Find
curl -sS -X POST "https://api.leadmagic.io/v1/people/email-finder" \
-H "X-API-Key: $LEADMAGIC_API_KEY" -H "Content-Type: application/json" \
-d '{"first_name":"Jane","last_name":"Doe","domain":"acme.com"}'
# Validate
curl -sS -X POST "https://api.leadmagic.io/v1/people/email-validation" \
-H "X-API-Key: $LEADMAGIC_API_KEY" -H "Content-Type: application/json" \
-d '{"email":"person@example.com"}'
# Profile URL → email
curl -sS -X POST "https://api.leadmagic.io/v1/people/b2b-profile-email" \
-H "X-API-Key: $LEADMAGIC_API_KEY" -H "Content-Type: application/json" \
-d '{"profile_url":"in/janedoe"}'
Rules
- Validate emails sourced OUTSIDE LeadMagic before every send (recipe:
outbound-recipesskill, "List hygiene"). Send onlyvalid(+catch_allat your own risk). Finder-returned emails are already validated — skip re-validation. - A miss is free but final for that input — don't resubmit the identical request hoping for a different answer.
- Lists ≥ 50 rows → bulk (
bulk-jobsskill) withproduct: "email_finder"/"email_validation"; billed per successful row. - MCP equivalents:
find_work_email,validate_work_email,find_personal_email,b2b_profile_to_work_email,email_to_b2b_profile.