Get Lead by Email
curl --request GET \
--url https://api.lemlist.com/api/leads/{email} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/leads/{email}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lemlist.com/api/leads/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/leads/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/leads/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}[
{
"_id": "lea_fiDpiGV585wy3Oii2",
"updatedAt": "2025-10-28T00:40:39.230Z",
"isPaused": false,
"state": "scanned",
"status": "review",
"personalized": false,
"source": "api",
"variables": {
"firstName": "John",
"lastName": "Doe",
"companyName": "lemlist",
"jobTitle": "GTM Engineer",
"companyDomain": "example.com",
"email": "support@lemlist.com"
},
"contactId": "ctc_xW8Ou6C03Csv8vatp",
"enrichment": {
"emailStatus": "deliverable"
},
"campaign": {
"id": "cam_bSn8EORHQxbWPjHvu",
"name": "NEW TO DELETE",
"status": "draft"
},
"sendingUser": {}
}
]"Bad team""Lead not found"Popular Resources
Get Lead by Email
Retrieves a specific lead by their email address.
GET
/
leads
/
{email}
Get Lead by Email
curl --request GET \
--url https://api.lemlist.com/api/leads/{email} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/leads/{email}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lemlist.com/api/leads/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/leads/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/leads/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}[
{
"_id": "lea_fiDpiGV585wy3Oii2",
"updatedAt": "2025-10-28T00:40:39.230Z",
"isPaused": false,
"state": "scanned",
"status": "review",
"personalized": false,
"source": "api",
"variables": {
"firstName": "John",
"lastName": "Doe",
"companyName": "lemlist",
"jobTitle": "GTM Engineer",
"companyDomain": "example.com",
"email": "support@lemlist.com"
},
"contactId": "ctc_xW8Ou6C03Csv8vatp",
"enrichment": {
"emailStatus": "deliverable"
},
"campaign": {
"id": "cam_bSn8EORHQxbWPjHvu",
"name": "NEW TO DELETE",
"status": "draft"
},
"sendingUser": {}
}
]"Bad team""Lead not found"This endpoint uses the Lead object. Make sure to also check the Contact object to understand the distinction between the two.
You must set the mandatory query parameter version to
version=v2.Lead Status
Lead status can be:notInterestedinterestedunsubscribedreview- to launch in the appscanning- enriching in the apprunning- in progress in the apppauseddone- completed in the app
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
The email address of the lead
Query Parameters
API version. v2 is the only option
Available options:
v2 Response
Success
Unique lead identifier
Last update timestamp
Whether the lead is paused
Current state of the lead (e.g., scanned, contacted)
Current status (e.g., review, done)
Whether the lead has personalized content
Source of the lead (e.g., api, csv)
Custom variables associated with the lead
Associated contact ID
Enrichment data
Show child attributes
Show child attributes
Campaign information
Show child attributes
Show child attributes
Sending user information
Was this page helpful?