List Personas
curl --request GET \
--url https://api.lemlist.com/api/database/personas \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/database/personas"
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/database/personas', 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/database/personas")
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/database/personas",
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;
}{
"data": [
{
"_id": "pdp_ExAmPlE1234567890a",
"name": "SaaS founders",
"mode": "leads",
"filters": [
{
"filterId": "currentTitle",
"in": [
"Founder"
],
"out": []
},
{
"filterId": "country",
"in": [
"France"
],
"out": []
}
],
"createdAt": "2026-07-31T09:12:00.000Z",
"updatedAt": "2026-07-31T09:12:00.000Z"
}
]
}{
"error": "Parameter \"mode\" must be \"leads\" or \"companies\"; user personas currently accept \"leads\" only",
"code": "PEOPLE_DATABASE_PERSONA_API_INVALID_MODE"
}{
"error": "Route unauthorized",
"code": "ROUTE_UNAUTHORIZED"
}{
"error": "Beta is not enabled",
"code": "BETA_NOT_ENABLED"
}{
"error": "Internal error",
"code": "INTERNAL_ERROR"
}People database
List Personas
Retrieves the People Database personas saved by your team.
GET
/
database
/
personas
List Personas
curl --request GET \
--url https://api.lemlist.com/api/database/personas \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/database/personas"
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/database/personas', 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/database/personas")
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/database/personas",
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;
}{
"data": [
{
"_id": "pdp_ExAmPlE1234567890a",
"name": "SaaS founders",
"mode": "leads",
"filters": [
{
"filterId": "currentTitle",
"in": [
"Founder"
],
"out": []
},
{
"filterId": "country",
"in": [
"France"
],
"out": []
}
],
"createdAt": "2026-07-31T09:12:00.000Z",
"updatedAt": "2026-07-31T09:12:00.000Z"
}
]
}{
"error": "Parameter \"mode\" must be \"leads\" or \"companies\"; user personas currently accept \"leads\" only",
"code": "PEOPLE_DATABASE_PERSONA_API_INVALID_MODE"
}{
"error": "Route unauthorized",
"code": "ROUTE_UNAUTHORIZED"
}{
"error": "Beta is not enabled",
"code": "BETA_NOT_ENABLED"
}{
"error": "Internal error",
"code": "INTERNAL_ERROR"
}Personas are team-shared: every member sees the same list. Results are sorted by creation date, most recent first, and capped at 200. Use
mode to restrict the list to one search mode.The persona lemlist auto-generates from your AI business context is never returned — only the personas your team created are.This endpoint is in closed beta. It answers
403 with the code BETA_NOT_ENABLED unless the personas beta is enabled for your team.Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Query Parameters
Restrict the list to personas of one search mode. Omit to return every persona of the team.
Available options:
leads, companies Response
Success
The team's personas, most recently created first
Show child attributes
Show child attributes
Was this page helpful?