Piloterr

Find a Professional Email

Look up a verified professional email address for any prospect using only their first name, last name, and company domain — with the Piloterr Email Finder API.

Overview

This playbook shows how to find and verify a professional email address for a prospect. Use it in outbound sales pipelines to auto-enrich contact records before sending a sequence.

Prerequisites

  • A Piloterr API key — get one at app.piloterr.com
  • Install dependencies for your language:
pip install requests

Steps

Find an email address

Call GET /v2/email/finder with first_name, last_name, and domain.

import requests

API_KEY  = "YOUR_API_KEY"
response = requests.get(
    "https://api.piloterr.com/v2/email/finder",
    headers={"x-api-key": API_KEY},
    params={"first_name": "Patrick", "last_name": "Collison", "domain": "stripe.com"},
)
result = response.json()
print(result)

Inspect the result

The response includes email, confidence (0–100), status (valid, risky, invalid), and the detected email pattern.

email      = result.get("email")
confidence = result.get("confidence")
status     = result.get("status")

if email and confidence >= 70:
    print(f"✓ Found: {email} (confidence: {confidence}%, status: {status})")
else:
    print(f"✗ Email not found or low confidence (status: {status})")

Enrich a list of prospects from a CSV

Load a CSV of prospects, find their emails, and write results back out.

import csv, time, requests

API_KEY = "YOUR_API_KEY"

def find_email(first: str, last: str, domain: str) -> dict:
    r = requests.get("https://api.piloterr.com/v2/email/finder",
        headers={"x-api-key": API_KEY},
        params={"first_name": first, "last_name": last, "domain": domain})
    return r.json()

prospects = [
    {"first_name": "Patrick", "last_name": "Collison",  "domain": "stripe.com"},
    {"first_name": "Sam",     "last_name": "Altman",    "domain": "openai.com"},
    {"first_name": "Tobi",    "last_name": "Lutke",     "domain": "shopify.com"},
]

with open("prospects_enriched.csv", "w", newline="") as f:
    fieldnames = ["first_name", "last_name", "domain", "email", "confidence", "status"]
    writer     = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()

    for p in prospects:
        result = find_email(p["first_name"], p["last_name"], p["domain"])
        writer.writerow({**p, "email": result.get("email", ""), "confidence": result.get("confidence", 0), "status": result.get("status", "")})
        time.sleep(0.5)

print("Done! Results saved to prospects_enriched.csv")

Only use emails with confidence >= 70 and status == "valid" in cold outreach. Lower-confidence addresses risk bounces that harm your domain reputation.

On this page