HappierleadsDocs

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).

EndpointDoesCost
POST /admin/prospector/people/searchFinds people by title, seniority, industry, location and company sizeFree
POST /admin/prospector/people/revealShows the email and phone of one person1 credit
POST/admin/prospector/people/searchSearch people
POST/admin/prospector/people/revealReveal a person's email and phone
POST/v3/prospector/people/find-emailFind contact email
POST
Request body
Website IdThe website the search is for (GET /admin/websites)
QueryEvery filter is optional
Titles
CEOFounder
Seniorities
Departments
Industries
Computer Software
LocationsCompany headquarters
United States
Employees Min
Employees Max
Technologies
CountPer page (default 25)
PageNext page
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  }}'
Response
Press Send request to try it with sample data.

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.

Response
{
  "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" }'
Response
{
  "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.

On this page