Search Prospects (Legacy)
curl --request POST \
--url https://api.example.com/v1/prospects/search \
--header 'Content-Type: application/json' \
--data '
{
"titles": [
{}
],
"location": [
{}
],
"industry": [
{}
],
"headcount": [
{}
],
"page": 123,
"query": "<string>",
"jobTitles": [
{}
]
}
'import requests
url = "https://api.example.com/v1/prospects/search"
payload = {
"titles": [{}],
"location": [{}],
"industry": [{}],
"headcount": [{}],
"page": 123,
"query": "<string>",
"jobTitles": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
titles: [{}],
location: [{}],
industry: [{}],
headcount: [{}],
page: 123,
query: '<string>',
jobTitles: [{}]
})
};
fetch('https://api.example.com/v1/prospects/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/prospects/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'titles' => [
[
]
],
'location' => [
[
]
],
'industry' => [
[
]
],
'headcount' => [
[
]
],
'page' => 123,
'query' => '<string>',
'jobTitles' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/prospects/search"
payload := strings.NewReader("{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/prospects/search")
.header("Content-Type", "application/json")
.body("{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/prospects/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"results": [
{
"full_name": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"job_title": "<string>",
"linkedin_url": "<string>",
"location": "<string>",
"email_available": true,
"phone_available": true,
"company": "<string>",
"company_domain": "<string>",
"company_size": "<string>",
"company_industry": "<string>",
"member_id": "<string>",
"company_id": "<string>"
}
],
"pagination": {
"page": 123,
"per_page": 123,
"total": 123,
"total_pages": 123
}
}
}Prospects
Search Prospects (Legacy)
Search for prospects — legacy endpoint. Prefer /v1/prospector/search for full filter support.
POST
/
v1
/
prospects
/
search
Search Prospects (Legacy)
curl --request POST \
--url https://api.example.com/v1/prospects/search \
--header 'Content-Type: application/json' \
--data '
{
"titles": [
{}
],
"location": [
{}
],
"industry": [
{}
],
"headcount": [
{}
],
"page": 123,
"query": "<string>",
"jobTitles": [
{}
]
}
'import requests
url = "https://api.example.com/v1/prospects/search"
payload = {
"titles": [{}],
"location": [{}],
"industry": [{}],
"headcount": [{}],
"page": 123,
"query": "<string>",
"jobTitles": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
titles: [{}],
location: [{}],
industry: [{}],
headcount: [{}],
page: 123,
query: '<string>',
jobTitles: [{}]
})
};
fetch('https://api.example.com/v1/prospects/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/prospects/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'titles' => [
[
]
],
'location' => [
[
]
],
'industry' => [
[
]
],
'headcount' => [
[
]
],
'page' => 123,
'query' => '<string>',
'jobTitles' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/prospects/search"
payload := strings.NewReader("{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/prospects/search")
.header("Content-Type", "application/json")
.body("{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/prospects/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"titles\": [\n {}\n ],\n \"location\": [\n {}\n ],\n \"industry\": [\n {}\n ],\n \"headcount\": [\n {}\n ],\n \"page\": 123,\n \"query\": \"<string>\",\n \"jobTitles\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"results": [
{
"full_name": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"job_title": "<string>",
"linkedin_url": "<string>",
"location": "<string>",
"email_available": true,
"phone_available": true,
"company": "<string>",
"company_domain": "<string>",
"company_size": "<string>",
"company_industry": "<string>",
"member_id": "<string>",
"company_id": "<string>"
}
],
"pagination": {
"page": 123,
"per_page": 123,
"total": 123,
"total_pages": 123
}
}
}This is a legacy endpoint. It accepts the old
query format but internally forwards to /v1/prospector/search. We recommend using /v1/prospector/search directly for access to all 15+ filter types.Request
Headers
Authorization: Bearer wbk_your_api_key_here
Content-Type: application/json
Body Parameters
This endpoint accepts either the new format (recommended) or the legacy format.New Format (recommended)
Uses the same parameters as/v1/prospector/search:
array
Job titles to search for (e.g.,
["CEO", "General Counsel"])array
Person locations (e.g.,
["United States", "United Kingdom"])array
Industry filters (e.g.,
["Legal Services", "Technology"])array
Company size ranges (e.g.,
["51-200", "201-500"])integer
default:"1"
Page number for pagination
/v1/prospector/search for all available filters including seniority, departments, funding, revenue, company domains, and more.
Legacy Format (deprecated)
string
A search string — will be treated as a job title search.
array
Job titles — mapped to
titles internally.Response
Same response format as/v1/prospector/search.
object
Show properties
Show properties
array
Show Prospect object
Show Prospect object
string
Full name
string
First name
string
Last name
string
Job title
string
LinkedIn URL
string
Location
boolean
Whether email can be revealed
boolean
Whether phone can be revealed
string
Company name
string
Company domain
string
Company size range
string
Company industry
string
Member ID (use for reveal)
string
Company ID (use for reveal)
curl -X POST https://data.leadlex.com/functions/v1/api-gateway/v1/prospects/search \
-H "Authorization: Bearer wbk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"titles": ["CEO", "Chief Executive Officer"],
"industry": ["Legal Services"],
"location": ["United States"],
"headcount": ["11-50", "51-200"]
}'
curl -X POST https://data.leadlex.com/functions/v1/api-gateway/v1/prospects/search \
-H "Authorization: Bearer wbk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"jobTitles": ["CEO", "Chief Executive Officer"]
}'
import requests
API_KEY = "wbk_your_api_key_here"
BASE_URL = "https://data.leadlex.com/functions/v1/api-gateway"
response = requests.post(f"{BASE_URL}/v1/prospects/search",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"titles": ["CEO", "General Counsel"],
"industry": ["Legal Services"],
"location": ["United States"]
}
)
data = response.json()["data"]
print(f"Found {data['pagination']['total']} prospects")
const response = await fetch(
'https://data.leadlex.com/functions/v1/api-gateway/v1/prospects/search',
{
method: 'POST',
headers: {
'Authorization': 'Bearer wbk_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
titles: ['CEO', 'General Counsel'],
industry: ['Legal Services'],
location: ['United States']
})
}
);
const { data } = await response.json();
console.log(`Found ${data.pagination.total} prospects`);
Notes
We recommend migrating to
/v1/prospector/search for full filter support including seniority, departments, company domains, funding stage, and revenue filters.Errors
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | No search filters provided |
| 401 | invalid_key | Invalid API key |
| 403 | insufficient_permissions | Missing prospects:read permission |
| 503 | service_unavailable | Prospector service not configured |