curl --request POST \
--url https://api.agntdata.dev/v1/data/agnt/people/search \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"filters": {
"job_title": "founder",
"location": "San Francisco"
},
"page": 1
}
'import requests
url = "https://api.agntdata.dev/v1/data/agnt/people/search"
payload = {
"filters": {
"job_title": "founder",
"location": "San Francisco"
},
"page": 1
}
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({filters: {job_title: 'founder', location: 'San Francisco'}, page: 1})
};
fetch('https://api.agntdata.dev/v1/data/agnt/people/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.agntdata.dev/v1/data/agnt/people/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([
'filters' => [
'job_title' => 'founder',
'location' => 'San Francisco'
],
'page' => 1
]),
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.agntdata.dev/v1/data/agnt/people/search"
payload := strings.NewReader("{\n \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\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.agntdata.dev/v1/data/agnt/people/search")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agntdata.dev/v1/data/agnt/people/search")
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 \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"meta": {
"costCents": 123,
"purchasedBalanceCents": 123,
"subscriptionRemainingCents": 123,
"cached": true,
"latencyMs": 123,
"priceRange": {
"minCents": 123,
"maxCents": 123
},
"budgetCents": 123,
"budgetCentsPerRecord": 123,
"providersAttempted": 123,
"fieldsReturned": [
"<string>"
],
"fieldsMissing": [
"<string>"
],
"records": 123
}
}Search people
Search the people graph using structured filters (job title, company, location, seniority, department, …). Returns paginated profile summaries.
curl --request POST \
--url https://api.agntdata.dev/v1/data/agnt/people/search \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"filters": {
"job_title": "founder",
"location": "San Francisco"
},
"page": 1
}
'import requests
url = "https://api.agntdata.dev/v1/data/agnt/people/search"
payload = {
"filters": {
"job_title": "founder",
"location": "San Francisco"
},
"page": 1
}
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({filters: {job_title: 'founder', location: 'San Francisco'}, page: 1})
};
fetch('https://api.agntdata.dev/v1/data/agnt/people/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.agntdata.dev/v1/data/agnt/people/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([
'filters' => [
'job_title' => 'founder',
'location' => 'San Francisco'
],
'page' => 1
]),
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.agntdata.dev/v1/data/agnt/people/search"
payload := strings.NewReader("{\n \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\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.agntdata.dev/v1/data/agnt/people/search")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agntdata.dev/v1/data/agnt/people/search")
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 \"filters\": {\n \"job_title\": \"founder\",\n \"location\": \"San Francisco\"\n },\n \"page\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"meta": {
"costCents": 123,
"purchasedBalanceCents": 123,
"subscriptionRemainingCents": 123,
"cached": true,
"latencyMs": 123,
"priceRange": {
"minCents": 123,
"maxCents": 123
},
"budgetCents": 123,
"budgetCentsPerRecord": 123,
"providersAttempted": 123,
"fieldsReturned": [
"<string>"
],
"fieldsMissing": [
"<string>"
],
"records": 123
}
}Authorizations
Bearer token. Pass your agntdata API key as: Authorization: Bearer agnt_live_...
Body
Filter object. Each entry is keyed by filter name and takes either { include?: string[], exclude?: string[] } for categorical filters or { min?, max? } for ranges. Searches that contain ONLY exclude filters are rejected — always pair with at least one positive filter. Common keys: person_job_title ({ include/exclude } — free-text titles, e.g. ["VP of Sales"]); person_seniority ({ include/exclude } — allowed values: "Owner", "Founder/Owner", "C-Suite", "Partner", "VP", "Director", "Manager", "Senior", "Entry", "Training"); person_department ({ include/exclude } — allowed values: "Accounting", "Administrative", "Arts and Design", "Business Development", "Community and Social Services", "Consulting", "Education", "Engineering", "Entrepreneurship", "Finance", "Healthcare Services", "Human Resources", "Information Technology", "Legal", "Marketing", "Media and Communication", "Military and Protective Services", "Operations", "Product Management", "Program and Project Management", "Purchasing", "Quality Assurance", "Real Estate", "Research", "Sales", "Support"); person_year_of_experience ({ min, max } — numeric years range); company ({ names: { include?, exclude? }, websites: { include?, exclude? } } — pre-filter to a list of companies, max 500 entries each); company_industry ({ include/exclude } — e.g. ["Software Development"]); company_headcount_custom ({ min, max } — numeric employee count range); company_location_search ({ include/exclude } — country / location strings). Values are case-sensitive — pass them in the exact casing shown above (e.g. "C-Suite" not "c_suite", "Business Development" not "business_development"). For convenience, flat aliases are accepted and translated server-side: seniority → person_seniority.include, department → person_department.include, job_title/title → person_job_title.include, location/country → person_location_search.include, company_name/company_names → company.names.include, company_domain/company_website → company.websites.include, headcount_min/headcount_max → company_headcount_custom.{min,max}, years_of_experience_min/years_of_experience_max → person_year_of_experience.{min,max}. Top-level keys other than filters/page are ignored. Example: { "filters": { "company_name": "Zillow", "department": ["Sales", "Marketing"], "seniority": ["C-Suite", "VP", "Director"] }, "page": 1 }.
Show child attributes
Show child attributes
Page number (25 results per page; max page = 1000).
x > 0