Search people by title, seniority, company or location
apollo.people.searchSearch Apollo's 200M+ contacts by title, seniority, company, location or tech (free)
- Price
- freeAu prix du fournisseur
- Success rate
- 100 %Last 30 days · 442 025 calls
- Latency p50
- 220 msp95 535 ms
- Last verified
- 29 août 2026Verified working
POSThttps://toolswitch.dev/v1/tools/apollo.people.search?bodyType=jsonPreview- Uses platform quota
- Synchronous response
- Reads public data
Paramètres
query-string params on a POST, with arrays in field[]=value form. RETURNS NO EMAILS OR PHONE NUMBERS AT ALL — that is why it is free. Pipe the person ids into apollo.people.enrich to get contact data, which is where the credits go. Result set is capped at 50,000 records
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| Paramètres de requête | ||||
page | entier | Facultatif | 1-based; max 500 pages | 1 |
per_page | entier | Facultatif | max 100 | 1 |
person_titles[] | array[string] | Facultatif | job titles, matched loosely (OR across the list) | ["head of marketing"] |
person_locations[] | array[string] | Facultatif | where the PERSON lives | ["California, US"] |
revenue_range[max] | entier | Facultatif | annual revenue ceiling | |
revenue_range[min] | entier | Facultatif | annual revenue floor, integer with no symbols | |
person_seniorities[] | array[string] | Facultatif | owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern | |
contact_email_status[] | array[string] | Facultatif | verified, unverified, likely to engage, unavailable | |
organization_locations[] | array[string] | Facultatif | where their COMPANY's HQ is | |
q_organization_domains_list[] | array[string] | Facultatif | restrict to employees of these company domains; max 1,000 | ["apollo.io"] |
organization_num_employees_ranges[] | array[string] | Facultatif | employee-count bands as 'min,max' strings | ["1,10"] |
currently_using_any_of_technology_uids[] | array[string] | Facultatif | tech-stack filter, e.g. salesforce | |
- Paramètres de requête
pageentierFacultatif1-based; max 500 pages
Exemple :
1per_pageentierFacultatifmax 100
Exemple :
1person_titles[]array[string]Facultatifjob titles, matched loosely (OR across the list)
Exemple :
["head of marketing"]person_locations[]array[string]Facultatifwhere the PERSON lives
Exemple :
["California, US"]revenue_range[max]entierFacultatifannual revenue ceiling
revenue_range[min]entierFacultatifannual revenue floor, integer with no symbols
person_seniorities[]array[string]Facultatifowner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern
contact_email_status[]array[string]Facultatifverified, unverified, likely to engage, unavailable
organization_locations[]array[string]Facultatifwhere their COMPANY's HQ is
q_organization_domains_list[]array[string]Facultatifrestrict to employees of these company domains; max 1,000
Exemple :
["apollo.io"]organization_num_employees_ranges[]array[string]Facultatifemployee-count bands as 'min,max' strings
Exemple :
["1,10"]currently_using_any_of_technology_uids[]array[string]Facultatiftech-stack filter, e.g. salesforce
Exemples de code
Remplacez $TOOLSWITCH_KEY par la clé créée dans la console.
curl -X POST 'https://toolswitch.dev/v1/tools/apollo.people.search?bodyType=json' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY" \
-H "Content-Type: application/json" \
--data-raw '{"per_page":3,"person_titles":["head of marketing"],"q_organization_domains_list":["stripe.com"]}'import os
import json
import requests
response = requests.request(
"POST",
"https://toolswitch.dev/v1/tools/apollo.people.search?bodyType=json",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
json=json.loads("{\"per_page\":3,\"person_titles\":[\"head of marketing\"],\"q_organization_domains_list\":[\"stripe.com\"]}"),
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/apollo.people.search?bodyType=json", {
method: "POST",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
"Content-Type": "application/json",
},
body: JSON.stringify(JSON.parse("{\"per_page\":3,\"person_titles\":[\"head of marketing\"],\"q_organization_domains_list\":[\"stripe.com\"]}")),
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());Cette API de passerelle est en préversion ; son URL et son authentification peuvent changer. Les paramètres de l’exemple sont des données fictives. Les appels sont facturés à free, frais de service inclus.