curl --request POST \
--url https://api.goextrovert.com/client/v2/lead-finder/preview \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"schemaVersion": "people.v1",
"query": {
"filters": [
{
"field": "contact.titleLatest",
"op": "any.include",
"mode": "SMART",
"values": [
"head of sales",
"sales director"
]
},
{
"field": "contact.seniority",
"op": "any.include",
"values": [
"director",
"head",
"vp"
]
},
{
"field": "contact.location",
"op": "any.include",
"values": [
"Germany"
]
},
{
"field": "account.industries",
"op": "any.include",
"mode": "SMART",
"values": [
"software development"
]
},
{
"field": "account.employeeSize",
"op": "range",
"ranges": [
{
"start": 51,
"end": 500
}
]
}
]
}
}
'import requests
url = "https://api.goextrovert.com/client/v2/lead-finder/preview"
payload = {
"schemaVersion": "people.v1",
"query": { "filters": [
{
"field": "contact.titleLatest",
"op": "any.include",
"mode": "SMART",
"values": ["head of sales", "sales director"]
},
{
"field": "contact.seniority",
"op": "any.include",
"values": ["director", "head", "vp"]
},
{
"field": "contact.location",
"op": "any.include",
"values": ["Germany"]
},
{
"field": "account.industries",
"op": "any.include",
"mode": "SMART",
"values": ["software development"]
},
{
"field": "account.employeeSize",
"op": "range",
"ranges": [
{
"start": 51,
"end": 500
}
]
}
] }
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
schemaVersion: 'people.v1',
query: {
filters: [
{
field: 'contact.titleLatest',
op: 'any.include',
mode: 'SMART',
values: ['head of sales', 'sales director']
},
{
field: 'contact.seniority',
op: 'any.include',
values: ['director', 'head', 'vp']
},
{field: 'contact.location', op: 'any.include', values: ['Germany']},
{
field: 'account.industries',
op: 'any.include',
mode: 'SMART',
values: ['software development']
},
{field: 'account.employeeSize', op: 'range', ranges: [{start: 51, end: 500}]}
]
}
})
};
fetch('https://api.goextrovert.com/client/v2/lead-finder/preview', 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.goextrovert.com/client/v2/lead-finder/preview",
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([
'schemaVersion' => 'people.v1',
'query' => [
'filters' => [
[
'field' => 'contact.titleLatest',
'op' => 'any.include',
'mode' => 'SMART',
'values' => [
'head of sales',
'sales director'
]
],
[
'field' => 'contact.seniority',
'op' => 'any.include',
'values' => [
'director',
'head',
'vp'
]
],
[
'field' => 'contact.location',
'op' => 'any.include',
'values' => [
'Germany'
]
],
[
'field' => 'account.industries',
'op' => 'any.include',
'mode' => 'SMART',
'values' => [
'software development'
]
],
[
'field' => 'account.employeeSize',
'op' => 'range',
'ranges' => [
[
'start' => 51,
'end' => 500
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.goextrovert.com/client/v2/lead-finder/preview"
payload := strings.NewReader("{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.goextrovert.com/client/v2/lead-finder/preview")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/lead-finder/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"people": [
{
"providerId": "<string>",
"departments": [
"<string>"
],
"subDepartments": [
"<string>"
],
"functions": [
"<string>"
],
"positions": [
{
"companyName": "<string>",
"dateStart": "<string>",
"dateEnd": "<string>",
"employeesStart": 123,
"employeesEnd": 123,
"location": "<string>"
}
],
"maskedName": "<string>",
"title": "<string>",
"headline": "<string>",
"seniority": "<string>",
"location": "<string>",
"company": {
"offices": [
"<string>"
],
"name": "<string>",
"industry": "<string>",
"description": "<string>",
"staffTotal": 123,
"staffRangeStart": 123,
"staffRangeEnd": 123,
"foundedYear": 123,
"headquarters": "<string>",
"revenueStart": 123,
"revenueEnd": 123
},
"lastUpdated": "<string>"
}
],
"grossTotal": 123
},
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Preview People
Runs a people search and returns the first page of the people matched plus grossTotal, how many people match in total. There is no further page and no page, size or cursor parameter. Each row carries the person’s masked name, role, location, position history and current company, every value verbatim, and never a full name, LinkedIn URL, avatar or contact details. query is the flat list of conditions, {"filters":[{"field":…,"op":…,…}]}, written in the grammar Get Lead Finder Search Schema publishes for the version sent as schemaVersion; a query in any other shape is refused before the search, and a condition the grammar does not accept is refused naming it by its path (e.g. query.filters[3].values) and, where known, its field and op. Free: consumes no credits. Limit: 100 preview attempts per user, or per API key, in a sliding 24-hour window, regardless of filters or workspace; cached previews and refused attempts count too. Once the limit is reached no search is run and the answer is 429 with Retry-After, an approximate wait in seconds, not a guaranteed reset time.
curl --request POST \
--url https://api.goextrovert.com/client/v2/lead-finder/preview \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"schemaVersion": "people.v1",
"query": {
"filters": [
{
"field": "contact.titleLatest",
"op": "any.include",
"mode": "SMART",
"values": [
"head of sales",
"sales director"
]
},
{
"field": "contact.seniority",
"op": "any.include",
"values": [
"director",
"head",
"vp"
]
},
{
"field": "contact.location",
"op": "any.include",
"values": [
"Germany"
]
},
{
"field": "account.industries",
"op": "any.include",
"mode": "SMART",
"values": [
"software development"
]
},
{
"field": "account.employeeSize",
"op": "range",
"ranges": [
{
"start": 51,
"end": 500
}
]
}
]
}
}
'import requests
url = "https://api.goextrovert.com/client/v2/lead-finder/preview"
payload = {
"schemaVersion": "people.v1",
"query": { "filters": [
{
"field": "contact.titleLatest",
"op": "any.include",
"mode": "SMART",
"values": ["head of sales", "sales director"]
},
{
"field": "contact.seniority",
"op": "any.include",
"values": ["director", "head", "vp"]
},
{
"field": "contact.location",
"op": "any.include",
"values": ["Germany"]
},
{
"field": "account.industries",
"op": "any.include",
"mode": "SMART",
"values": ["software development"]
},
{
"field": "account.employeeSize",
"op": "range",
"ranges": [
{
"start": 51,
"end": 500
}
]
}
] }
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
schemaVersion: 'people.v1',
query: {
filters: [
{
field: 'contact.titleLatest',
op: 'any.include',
mode: 'SMART',
values: ['head of sales', 'sales director']
},
{
field: 'contact.seniority',
op: 'any.include',
values: ['director', 'head', 'vp']
},
{field: 'contact.location', op: 'any.include', values: ['Germany']},
{
field: 'account.industries',
op: 'any.include',
mode: 'SMART',
values: ['software development']
},
{field: 'account.employeeSize', op: 'range', ranges: [{start: 51, end: 500}]}
]
}
})
};
fetch('https://api.goextrovert.com/client/v2/lead-finder/preview', 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.goextrovert.com/client/v2/lead-finder/preview",
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([
'schemaVersion' => 'people.v1',
'query' => [
'filters' => [
[
'field' => 'contact.titleLatest',
'op' => 'any.include',
'mode' => 'SMART',
'values' => [
'head of sales',
'sales director'
]
],
[
'field' => 'contact.seniority',
'op' => 'any.include',
'values' => [
'director',
'head',
'vp'
]
],
[
'field' => 'contact.location',
'op' => 'any.include',
'values' => [
'Germany'
]
],
[
'field' => 'account.industries',
'op' => 'any.include',
'mode' => 'SMART',
'values' => [
'software development'
]
],
[
'field' => 'account.employeeSize',
'op' => 'range',
'ranges' => [
[
'start' => 51,
'end' => 500
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.goextrovert.com/client/v2/lead-finder/preview"
payload := strings.NewReader("{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.goextrovert.com/client/v2/lead-finder/preview")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/lead-finder/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schemaVersion\": \"people.v1\",\n \"query\": {\n \"filters\": [\n {\n \"field\": \"contact.titleLatest\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"head of sales\",\n \"sales director\"\n ]\n },\n {\n \"field\": \"contact.seniority\",\n \"op\": \"any.include\",\n \"values\": [\n \"director\",\n \"head\",\n \"vp\"\n ]\n },\n {\n \"field\": \"contact.location\",\n \"op\": \"any.include\",\n \"values\": [\n \"Germany\"\n ]\n },\n {\n \"field\": \"account.industries\",\n \"op\": \"any.include\",\n \"mode\": \"SMART\",\n \"values\": [\n \"software development\"\n ]\n },\n {\n \"field\": \"account.employeeSize\",\n \"op\": \"range\",\n \"ranges\": [\n {\n \"start\": 51,\n \"end\": 500\n }\n ]\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"people": [
{
"providerId": "<string>",
"departments": [
"<string>"
],
"subDepartments": [
"<string>"
],
"functions": [
"<string>"
],
"positions": [
{
"companyName": "<string>",
"dateStart": "<string>",
"dateEnd": "<string>",
"employeesStart": 123,
"employeesEnd": 123,
"location": "<string>"
}
],
"maskedName": "<string>",
"title": "<string>",
"headline": "<string>",
"seniority": "<string>",
"location": "<string>",
"company": {
"offices": [
"<string>"
],
"name": "<string>",
"industry": "<string>",
"description": "<string>",
"staffTotal": 123,
"staffRangeStart": 123,
"staffRangeEnd": 123,
"foundedYear": 123,
"headquarters": "<string>",
"revenueStart": 123,
"revenueEnd": 123
},
"lastUpdated": "<string>"
}
],
"grossTotal": 123
},
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Authorizations
API Key for authentication
Body
The version the search schema currently reports, e.g. people.v1. Any other value is refused.
1"people.v1"
The people-search query: the flat list of conditions {"filters":[…]} in the grammar Get Lead Finder Search Schema publishes. A key the grammar does not accept is refused, naming it; no key is dropped silently.
Show child attributes
Show child attributes
{ "filters": [ { "field": "contact.titleLatest", "op": "any.include", "mode": "SMART", "values": ["head of sales", "sales director"] }, { "field": "contact.seniority", "op": "any.include", "values": ["director", "head", "vp"] }, { "field": "contact.location", "op": "any.include", "values": ["Germany"] }, { "field": "account.industries", "op": "any.include", "mode": "SMART", "values": ["software development"] }, { "field": "account.employeeSize", "op": "range", "ranges": [{ "start": 51, "end": 500 }] } ] }