Apollo People Search API Reference
Find net new people in the Apollo database for prospecting.
Endpoint: https://api.apollo.io/api/v1/mixed_people/api_search
Method: POST
Cost: FREE (no credits consumed)
Auth: Master API key required (header: x-api-key)
Important Notes
- No emails in search results - Use People Enrichment endpoint (1 credit) to get emails
- Display limit: 50,000 records max (100 records/page, 500 pages)
- Optimization: Add more filters to narrow results and access data in batches
- Designed for: Prospecting net new people
Common Parameters
Job Titles & Seniority
person_titles[] (array of strings)
Job titles to search. Returns fuzzy matches (e.g., "marketing manager" matches "content marketing manager").
Examples: "sales development representative", "marketing manager", "research analyst"
include_similar_titles (boolean, default: true)
Set to false for strict job title matching only.
person_seniorities[] (array of strings)
Job seniority levels. Only matches current job title.
Options:
ownerfounderc_suitepartnervpheaddirectormanagerseniorentryintern
Location Filters
person_locations[] (array of strings)
Where people live (cities, US states, countries).
Examples: "california", "ireland", "chicago"
organization_locations[] (array of strings)
Company headquarters location. Searches HQ only, not all office locations.
Examples: "texas", "tokyo", "spain"
Organization Filters
q_organization_domains_list[] (array of strings)
Company domains. Accepts up to 1,000 domains per request. Do not include www. or @.
Examples: "apollo.io", "microsoft.com"
organization_ids[] (array of strings)
Apollo organization IDs. Get IDs from Organization Search endpoint.
Example: "5e66b6381e05b4008c8331b8"
organization_num_employees_ranges[] (array of strings)
Employee headcount ranges. Format: "min,max" (comma-separated, no spaces).
Examples: "1,10", "250,500", "10000,20000"
revenue_range[min] (integer)
revenue_range[max] (integer)
Revenue range for company. No currency symbols, commas, or decimals.
Examples: 500000, 1500000
Technology Filters
currently_using_all_of_technology_uids[] (array of strings)
Company uses ALL of these technologies. Use underscores for spaces/periods.
Examples: "salesforce", "google_analytics", "wordpress_org"
currently_using_any_of_technology_uids[] (array of strings)
Company uses ANY of these technologies.
currently_not_using_any_of_technology_uids[] (array of strings)
Company does NOT use any of these technologies.
Technology list: Download supported technologies CSV
Job Posting Filters
q_organization_job_titles[] (array of strings)
Job titles in active postings at the company.
Examples: "sales manager", "research analyst"
organization_job_locations[] (array of strings)
Locations of jobs being recruited.
Examples: "atlanta", "japan"
organization_num_jobs_range[min] (integer)
organization_num_jobs_range[max] (integer)
Range of active job postings at company.
Examples: 50, 500
organization_job_posted_at_range[min] (date)
organization_job_posted_at_range[max] (date)
Date range for when jobs were posted. Format: YYYY-MM-DD
Example: "2025-07-25"
Other Filters
q_keywords (string)
Free-text keyword search across results.
contact_email_status[] (array of strings)
Email status for contacts.
Options:
verifiedunverifiedlikely to engageunavailable
Pagination
page (int32, default: 1)
Page number to retrieve.
per_page (int32, default: 10)
Results per page (max 100).
Response Structure
{
"total_entries": 232764882,
"people": [
{
"id": "67bdafd0c3a4c50001bbd7c2",
"first_name": "Andrew",
"last_name_obfuscated": "Hu***n",
"title": "Professor and Neuroscientist at Stanford & Host",
"last_refreshed_at": "2025-11-04T23:20:32.690+00:00",
"has_email": true,
"has_city": true,
"has_state": true,
"has_country": true,
"has_direct_phone": "Yes",
"organization": {
"name": "Scicomm Media",
"has_industry": true,
"has_phone": false,
"has_city": true,
"has_state": true,
"has_country": true,
"has_zip_code": false,
"has_revenue": false,
"has_employee_count": true
}
}
]
}
Response Fields
Person fields:
id- Apollo person IDfirst_name- First namelast_name_obfuscated- Last name (obfuscated, use enrichment for full)title- Job title (may be null)last_refreshed_at- When data was last updatedhas_email- Boolean flag (use enrichment to reveal)has_city,has_state,has_country- Location data availabilityhas_direct_phone- Phone availability
Organization fields:
name- Company namehas_*- Boolean flags for available data
Example Request (JavaScript)
const url = 'https://api.apollo.io/api/v1/mixed_people/api_search';
const options = {
method: 'POST',
headers: {
'accept': 'application/json',
'Cache-Control': 'no-cache',
'Content-Type': 'application/json',
'x-api-key': process.env.APOLLO_API_KEY
},
body: JSON.stringify({
person_titles: ["CEO", "Chief Executive Officer"],
person_seniorities: ["c_suite"],
organization_num_employees_ranges: ["50,500"],
per_page: 25,
page: 1
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));
Common Use Cases
Find CEOs at mid-size companies
{
"person_titles": ["CEO", "Chief Executive Officer"],
"person_seniorities": ["c_suite"],
"organization_num_employees_ranges": ["50,500"],
"per_page": 50
}
Find healthcare directors
{
"person_titles": ["Director"],
"person_seniorities": ["director"],
"q_keywords": "healthcare utilization management",
"per_page": 50
}
Find people at specific companies
{
"q_organization_domains_list": ["hopkinsmedicine.org", "mayoclinic.org"],
"person_seniorities": ["director", "vp", "c_suite"],
"per_page": 50
}
Find VPs using Salesforce
{
"person_seniorities": ["vp"],
"currently_using_all_of_technology_uids": ["salesforce"],
"per_page": 50
}
Response Codes
200- Success401- Unauthorized (API key invalid)403- Forbidden422- Validation error (invalid parameters)429- Rate limit exceeded
Last updated: 2025-01-09
Source: Apollo API Documentation