curl --request POST \
--url https://api.generect.com/api/v1/search/database/leads/count/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"job_titles": [
"CEO",
"Founder"
],
"seniorities": [
"c_suite"
],
"locations": [
"United States"
],
"company_industries": [
"Software Development"
],
"company_headcounts": [
"51-200"
],
"limit_by": 50
}
'import requests
url = "https://api.generect.com/api/v1/search/database/leads/count/"
payload = {
"job_titles": ["CEO", "Founder"],
"seniorities": ["c_suite"],
"locations": ["United States"],
"company_industries": ["Software Development"],
"company_headcounts": ["51-200"],
"limit_by": 50
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
job_titles: ['CEO', 'Founder'],
seniorities: ['c_suite'],
locations: ['United States'],
company_industries: ['Software Development'],
company_headcounts: ['51-200'],
limit_by: 50
})
};
fetch('https://api.generect.com/api/v1/search/database/leads/count/', 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.generect.com/api/v1/search/database/leads/count/",
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([
'job_titles' => [
'CEO',
'Founder'
],
'seniorities' => [
'c_suite'
],
'locations' => [
'United States'
],
'company_industries' => [
'Software Development'
],
'company_headcounts' => [
'51-200'
],
'limit_by' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.generect.com/api/v1/search/database/leads/count/"
payload := strings.NewReader("{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.generect.com/api/v1/search/database/leads/count/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.generect.com/api/v1/search/database/leads/count/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}"
response = http.request(request)
puts response.read_bodyCount database leads
Count cached leads matching filters. Always free.
curl --request POST \
--url https://api.generect.com/api/v1/search/database/leads/count/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"job_titles": [
"CEO",
"Founder"
],
"seniorities": [
"c_suite"
],
"locations": [
"United States"
],
"company_industries": [
"Software Development"
],
"company_headcounts": [
"51-200"
],
"limit_by": 50
}
'import requests
url = "https://api.generect.com/api/v1/search/database/leads/count/"
payload = {
"job_titles": ["CEO", "Founder"],
"seniorities": ["c_suite"],
"locations": ["United States"],
"company_industries": ["Software Development"],
"company_headcounts": ["51-200"],
"limit_by": 50
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
job_titles: ['CEO', 'Founder'],
seniorities: ['c_suite'],
locations: ['United States'],
company_industries: ['Software Development'],
company_headcounts: ['51-200'],
limit_by: 50
})
};
fetch('https://api.generect.com/api/v1/search/database/leads/count/', 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.generect.com/api/v1/search/database/leads/count/",
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([
'job_titles' => [
'CEO',
'Founder'
],
'seniorities' => [
'c_suite'
],
'locations' => [
'United States'
],
'company_industries' => [
'Software Development'
],
'company_headcounts' => [
'51-200'
],
'limit_by' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.generect.com/api/v1/search/database/leads/count/"
payload := strings.NewReader("{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.generect.com/api/v1/search/database/leads/count/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.generect.com/api/v1/search/database/leads/count/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"job_titles\": [\n \"CEO\",\n \"Founder\"\n ],\n \"seniorities\": [\n \"c_suite\"\n ],\n \"locations\": [\n \"United States\"\n ],\n \"company_industries\": [\n \"Software Development\"\n ],\n \"company_headcounts\": [\n \"51-200\"\n ],\n \"limit_by\": 50\n}"
response = http.request(request)
puts response.read_bodyUse Case:
Count matching cached leads before running a database lead search.Pricing
This endpoint is free — it does not incur any charges.Authorizations
Use the required Token prefix. Example: Authorization: Token xxxxxxxxx
Body
Job titles held by the people you want to find. A lead only needs to match one of the titles you provide — adding more expands your search. Results may also include similar titles (e.g. "marketing manager" can return "content marketing manager"). Combine with seniorities to target both function and level. Examples: "sales development representative", "marketing manager", "software engineer".
Job seniority levels at the lead's current employer (current position only, not previous roles). A lead needs to match at least one; adding more values expands your search. Allowed values: owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern. Combine with job_titles to narrow targeting.
Geographic locations where leads currently live — matches across cities, states/regions and countries. A lead needs to match at least one. To filter by the employer's HQ location, use company_locations. Examples: "San Francisco, California, United States", "Germany", "London".
Locations to exclude from results.
Headquarters location of the lead's current employer; a lead is included if their company's HQ matches at least one. Filters by where the company is based — distinct from locations, which is where the lead personally lives.
Company locations to exclude.
Industries of the lead's current employer; a lead is included if their company matches at least one. Values follow LinkedIn's industry taxonomy. Examples: "Software Development", "Financial Services", "Information Technology".
Company industries to exclude.
Size of the lead's current employer, as employee-count ranges; a lead is included if their company falls into at least one. Allowed values: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10 000+".
Company size ranges to exclude.
Company types: "Public Company", "Privately Held", "Non Profit", "Government Agency", "Educational", "Self Employed", "Partnership", "Self Owned".
Target company name (mutually exclusive with company_link and company_id).
LinkedIn company URL (mutually exclusive with company_name and company_id).
LinkedIn company numeric ID (mutually exclusive with company_name and company_link).
Skip leads by full name.
Skip leads by Sales Navigator ID.
Skip leads where these fields are empty. Options: job_started_on, profile_photo, started_at_position, company_website.
Maximum number of leads to return. For filter-only searches (no company_id/company_link/company_name) the maximum is 2400.
Number of leads to skip (for pagination). For filter-only searches the maximum is 2399.
Fields to apply strict matching on (e.g. "company_locations").
Drop leads whose first or last name is a single character or empty. LinkedIn abbreviates surnames for members who restrict their profile, so these rows carry a name that cannot be personalised. Applies to both database and realtime search.
Gender of the lead; a lead is included if it matches at least one value. Case-insensitive; any other value is rejected with 400. Gender is inferred from the lead's name, so it is an estimate, and a lead whose name does not point to one is unknown. To leave a gender out, list the others — e.g. ["female", "unknown"].
Database mode only. LinkedIn search has no gender facet, so realtime search rejects this field rather than accepting it and returning a wider result set than you asked for.
Coverage matters here: gender is known for roughly a third of leads, and the rest are unknown. Filtering by male or female therefore also drops leads whose gender simply is not known, not only those of the other gender.
male, female, unknown ["female"]
Was this page helpful?