Manual search
Filter the Happierleads contact database by job title, seniority, industry, location and company size, then add the people you want to your leads.
Two REST endpoints on https://rest-admin.happierleads.com, authenticated with ?privateKey=YOUR_KEY, like every other endpoint. Your keys are in Integrations → API (see Authentication).
| Endpoint | Does | Cost |
|---|---|---|
POST /admin/prospector/people/search | Finds people by title, seniority, industry, location and company size | Free |
POST /admin/prospector/people/reveal | Shows the email and phone of one person | 1 credit |
| POST | /admin/prospector/people/search | Search people |
| POST | /admin/prospector/people/reveal | Reveal a person's email and phone |
| POST | /v3/prospector/people/find-email | Find contact email |
curl -X POST "https://rest-admin.happierleads.com/admin/prospector/people/search?privateKey=YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9", "query": { "titles": [ "CEO", "Founder" ], "industries": [ "Computer Software" ], "locations": [ "United States" ], "employeesMin": 10, "employeesMax": 200, "count": 25 }}'Use case: find people
POST /admin/prospector/people/search with websiteId (from GET /admin/websites) and a query; every filter is optional (all filters). Searching never returns emails.
{
"httpStatus": 200,
"people": [
{
"profileId": "3cbd7f0d47879822dd5f722ab6dfac85",
"companyProfileId": "4a837e150440103296e07fd46e3f1ff1",
"name": "Ava Thompson",
"firstName": "Ava",
"lastName": "Thompson",
"position": "Founder",
"jobTitle": "Founder",
"jobTitles": ["Founder"],
"seniority": "Owner",
"department": "Executive",
"company": "Northwind Analytics",
"companyName": "Northwind Analytics",
"companyDomain": "northwind-analytics.example",
"companyLocation": { "city": "Austin", "country": "United States", "countryCode": "US" },
"companyInfo": {
"logo": null,
"industry": "Computer Software",
"sector": "Technology",
"employees": "42",
"revenue": "$1M - $10M",
"description": null,
"foundedYear": 2018,
"tags": []
},
"linkedin": "https://www.linkedin.com/in/sample-ava-thompson-00",
"emailStatus": null,
"hasEmail": false,
"hasPhone": true
}
],
"total": 6,
"note": "locations filters on the company headquarters. jobTitle is the position that matched your titles filter; jobTitles lists every position the person holds. companyLocation / companyDomain are null when we do not hold that employer yet."
}Next page: pass query.page.
Use case: get their email
POST /admin/prospector/people/reveal with websiteId and a profileId from the search. 1 credit when we hold an email or phone, nothing when we don’t.
curl -X POST "https://rest-admin.happierleads.com/admin/prospector/people/reveal?privateKey=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9", "profileId": "71e392938b6bfb2a8f112058d0afc3f1" }'{
"httpStatus": 200,
"profileId": "71e392938b6bfb2a8f112058d0afc3f1",
"businessEmail": "noah.ramirez@northwind-analytics.example",
"emailStatus": "valid",
"phone": null,
"creditsCharged": 1,
"status": "revealed",
"remainingCredits": 498
}When it fails
The HTTP status says why: 401 missing or wrong key, 402 no credits, 403 plan without Prospector, 429 more than one search per second or the plan’s search limit is used up.