/v2/campaigns/lead-finder/searchSearches a licensed people database by job title, seniority, company, location, and more. Returns masked email/mobile — use Reveal a field to unmask one for a specific person.
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Optional | Company domain, e.g. "acme.com". |
| companyName | string | Optional | Company name (fuzzy-matched by the provider). |
| jobTitle | string | Optional | Current job title. |
| seniority | string[] | Optional | Up to 20 seniority values, e.g. ["director", "vp"]. |
| department | string[] | Optional | Up to 20 department values. |
| personLocation | string[] | Optional | Up to 20 location values (city/state/country). |
| industry | string[] | Optional | Up to 20 industry values. |
| headcountRange | string[] | Optional | Up to 20 company-size bucket values. |
| companyLocation | string[] | Optional | Up to 20 company HQ location values. |
| technology | string[] | Optional | Up to 20 technologies the company uses. |
| minYearsExperience / maxYearsExperience | number | Optional | 0–60. |
| page | number | Optional | 1–1000. Defaults to 1. |
| … | — | Optional | Plus minRevenue/maxRevenue, fundingStages, jobChangeRecent, hiringForTitles, minJobPostings/maxJobPostings, minTimeInRole/maxTimeInRole, minTimeInCompany/maxTimeInCompany — the same full filter set the Stynar app's Lead Finder page exposes. |
curl -X POST "https://api.stynar.com/v2/campaigns/lead-finder/search" \
-H "Authorization: Bearer esk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jobTitle":"VP Sales","personLocation":["United States"],"headcountRange":["51-200"],"page":1}'{
"results": [
{
"personId": "prs_a1b2c3",
"firstName": "Jane",
"lastName": "Doe",
"jobTitle": "VP Sales",
"seniority": "vp",
"linkedinUrl": "https://linkedin.com/in/janedoe",
"country": "United States",
"city": "Austin",
"company": "Acme Inc",
"companyInfo": {
"name": "Acme Inc",
"domain": "acme.com",
"website": "https://acme.com",
"logoUrl": null,
"industry": "Software",
"employeeCount": 120,
"employeeRange": "51-200",
"country": "United States",
"city": "Austin"
},
"emailMasked": "j***@acme.com",
"mobileMasked": "+1 512-4**-****"
}
],
"pagination": {
"currentPage": 1,
"totalPages": 8,
"totalCount": 152
}
}| Status | Code | Meaning |
|---|---|---|
| ✕ 402 | INSUFFICIENT_CREDITS | Not enough credits for this search (or your trial's lead-credit cap is reached). |
| ✕ 503 | SERVICE_UNAVAILABLE | Lead search isn't configured for this environment, or Stynar's own monthly provider budget for lead search is exhausted — try again next month or contact support. |
| ✕ 401 Unauthorized | UNAUTHORIZED | Missing, malformed, unknown, revoked, or expired key. |
| ✕ 403 Forbidden | API_ACCESS_DISABLED | API access is turned off for your account. |
| ✕ 403 Forbidden | INSUFFICIENT_SCOPE | The key doesn't have the scope this endpoint requires. |
| ✕ 404 Not Found | NOT_FOUND | Unknown route, or a resource that doesn't exist / isn't yours. |
| ✕ 409 Conflict | CONFLICT | The action can't be applied to the resource's current state. |
| ✕ 429 Too Many Requests | RATE_LIMIT_EXCEEDED | Per-minute or per-second limit hit. |
| ✕ 429 Too Many Requests | QUOTA_EXCEEDED | Monthly quota exhausted. |
| ✕ 500 Internal Server Error | INTERNAL_ERROR | Something broke on Stynar's end. |