curl --request POST \
--url https://api.tryhuntr.com/person-search \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"semantic_query": "VPs of Sales at cybersecurity companies",
"filters": {
"locality": {
"include": [
"US"
]
}
},
"has_email": true,
"pagination": {
"size": 10
}
}'{
"success": true,
"request_id": "req_1746123456_ps1x2y",
"result": {
"people": [
{
"name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"title": "Chief Executive Officer",
"linkedin_url": "https://linkedin.com/in/janedoe",
"has_email": true,
"has_phone": false,
"company_url": "https://example.com",
"company_name": "Example Corp",
"email_domain": "example.com",
"home_page_email": "info@example.com",
"city": "San Francisco",
"locality": "San Francisco Bay Area",
"country_code": "US"
}
]
},
"pagination": {
"size": 1,
"token": "opaque-next-page-token",
"has_more": true
},
"total": 842,
"price": 0.0003,
"credits_remaining": 4.9997
}People Search
Search contacts with structured filters, semantic_query, or email/phone availability flags. Returns one paginated page of people without email or phone values.
curl --request POST \
--url https://api.tryhuntr.com/person-search \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"semantic_query": "VPs of Sales at cybersecurity companies",
"filters": {
"locality": {
"include": [
"US"
]
}
},
"has_email": true,
"pagination": {
"size": 10
}
}'{
"success": true,
"request_id": "req_1746123456_ps1x2y",
"result": {
"people": [
{
"name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"title": "Chief Executive Officer",
"linkedin_url": "https://linkedin.com/in/janedoe",
"has_email": true,
"has_phone": false,
"company_url": "https://example.com",
"company_name": "Example Corp",
"email_domain": "example.com",
"home_page_email": "info@example.com",
"city": "San Francisco",
"locality": "San Francisco Bay Area",
"country_code": "US"
}
]
},
"pagination": {
"size": 1,
"token": "opaque-next-page-token",
"has_more": true
},
"total": 842,
"price": 0.0003,
"credits_remaining": 4.9997
}Authorizations
Your Huntr API key. Get one at tryhuntr.com. Pass as x-api-key header on all authenticated requests.
Body
Choose one people search input:
- Natural-language mode: send semantic_query. Add filters only with semantic_query when you need hard constraints.
- Structured-filter mode: send query when you already have exact filters, or when paginating with a resolved_query.
Optional: add has_email and/or has_phone to return only contacts with available email or phone data.
Do not send query and semantic_query together.
Natural-language description of the people to find. Mutually exclusive with query. The response includes resolved_query for deterministic pagination.
8000Hard filters for semantic_query. Same supported fields as query.
Show child attributes
Show child attributes
At least one supported filter required unless has_email or has_phone is true. Use non-empty include and/or exclude arrays.
Show child attributes
Show child attributes
Configurable page size. pagination.size min 1, default 100, max 200. Send pagination.size on the first request and with pagination.token on later pages. Keep the same query and has_email/has_phone flags between pages.
Show child attributes
Show child attributes
When true, only return contacts with email data available.
When true, only return contacts with phone data available.
Response
Person search results.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Total matching records for the submitted query. This can be larger than the number returned in this page.
Plan-specific amount multiplied by people returned.