Find People
Search contact profiles and their current employer snapshots together using supported company and person-level filters.
POST
/v2/search/peopleRequest
curl -X POST "https://moltsetz.com/v2/search/people" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company": {
"domain": {
"include": [
"openai.com"
]
},
"country_code": [
"US"
]
},
"people": {
"job_title": {
"include": [
"CEO"
],
"exclude": [
"Assistant"
]
},
"job_level": [
"C-Team"
]
},
"max_results": 10
}'Body
| Field | Type | Required | Description and limits |
|---|---|---|---|
company | object | Optional | Current employer filters from the contact record.At least one supported company or people filter is required |
company.domain | string | string[] | { include?: string[]; exclude?: string[] } | Optional | Filter by current employer domain.Use bare hostnames such as openai.com; URL input is normalized |
company.name | string | string[] | { include?: string[]; exclude?: string[] } | Optional | Filter by current employer name. |
company.keywords | string | string[] | { include?: string[]; exclude?: string[] } | Optional | Alias-style employer name keyword filter. |
company.country_code | string | string[] | Optional | Filter by employer country code.Uppercase ISO 3166-1 alpha-2 codes such as US, GB, or IN |
company.continent | string | string[] | Optional | Filter by employer continent value.Use accepted values from Geography normalization |
company.type | string | string[] | Optional | Filter by employer entity type.Use accepted values from Company values |
people | object | Optional | Person-level filters applied to contact profiles.At least one supported company or people filter is required |
people.job_title | string | string[] | { include?: string[]; exclude?: string[] } | Optional | Filter by current role title. |
people.title | string | string[] | { include?: string[]; exclude?: string[] } | Optional | Alias for people.job_title. |
people.job_function | string | string[] | Optional | Filter by department or functional area.Use accepted values from Job levels & functions |
people.department | string | string[] | Optional | Alias for people.job_function. |
people.job_level | string | string[] | Optional | Filter by seniority level.Accepted values include Staff, Manager, Director, VP, C-Team, and Other |
people.seniority | string | string[] | Optional | Alias for people.job_level. |
people.country_code | string | string[] | Optional | Filter by person location country code.Uppercase ISO 3166-1 alpha-2 codes such as US, GB, or IN |
people.continent | string | string[] | Optional | Filter by person location continent.Use accepted values from Geography normalization |
people.sales_region | string | string[] | Optional | Filter by person location sales region.NORAM, LATAM, EMEA, or APAC |
people.min_connections_count | integer | Optional | Return people with at least this many LinkedIn connections.Positive integer |
max_results | integer | Optional | Maximum records returned.1–100; defaults to 10 |
cursor | string | Optional | Opaque cursor returned by the previous page.Base64url cursor; omit for the first page |
Pagination
Use the returned cursor unchanged in the next request. Omitting cursor starts at the first page. max_results is 1–100.
Credits
One request credit is recorded only when this endpoint returns a 2xx response. Authentication, validation, rate-limit, and not-found responses do not consume a credit.
Response
| Field | Type | Description |
|---|---|---|
results | array | The records returned for this page. |
results_length | integer | Number of records in results. |
cursor | string | null | Cursor for the next page, or null when no full next page is available. |
results[].first_name | string | null | Given name. |
results[].last_name | string | null | Family name when available. |
results[].full_name | string | null | Person display name. |
results[].headline | string | null | LinkedIn headline. |
results[].job_title | string | null | Current role title. |
results[].job_function | string | null | Department or functional area. |
results[].job_level | string | null | Seniority level. |
results[].linkedin_url | string | null | Canonical LinkedIn profile URL. |
results[].connections_count | integer | null | LinkedIn connection count when available. |
results[].profile_picture_url | string | null | Profile image URL when available. |
results[].location.city | string | null | Person city. |
results[].location.state_code | string | null | Person state or subdivision code. |
results[].location.country_code | string | null | Person country code. |
results[].location.continent | string | null | Person continent. |
results[].email | string | null | Work email when available. |
results[].phone | string | null | Mobile or direct phone when available. |
results[].company | object | null | Current employer snapshot from the contact record. |
results[].company.linkedin_url | string | null | Employer LinkedIn company URL. |
results[].company.name | string | null | Employer display name. |
results[].company.headline | string | null | Employer headline when available. |
results[].company.about | string | null | Employer description when available. |
results[].company.industry | string | null | Employer industry label returned from the contact index. |
results[].company.type | string | null | Employer entity type. |
results[].company.size | string | number | null | Employer size bucket when available. |
results[].company.employees_on_linkedin | integer | null | Employees represented on LinkedIn. |
results[].company.founded_year | integer | null | Year the employer was founded. |
results[].company.domain | string | null | Employer primary domain. |
results[].company.website | string | null | Employer website URL. |
results[].company.logo | string | null | Employer logo image URL when available. |
Example response
{
"results_length": 1,
"cursor": null,
"results": [
{
"first_name": "Alex",
"last_name": "Lee",
"full_name": "Alex Lee",
"headline": "CEO at OpenAI",
"job_title": "CEO",
"job_function": "General Business & Management",
"job_level": "C-Team",
"linkedin_url": "https://www.linkedin.com/in/example",
"connections_count": 500,
"profile_picture_url": null,
"location": {
"city": "San Francisco",
"state_code": "CA",
"country_code": "US",
"continent": "North America"
},
"email": null,
"phone": null,
"company": {
"linkedin_url": "https://www.linkedin.com/company/openai",
"name": "OpenAI",
"headline": null,
"about": "AI research and deployment company.",
"industry": "Software Development",
"type": "Privately Held",
"size": "1001 to 5000",
"employees_on_linkedin": 1000,
"founded_year": 2015,
"domain": "openai.com",
"website": "https://openai.com",
"logo": null
}
}
]
}Errors
| Status | Code | When |
|---|---|---|
422 | INVALID_INPUT | A required value is missing, malformed, or outside its documented limits. |
401 | UNAUTHORIZED | The x-api-key header is missing or invalid. |
402 | CREDITS_EXHAUSTED | A limited plan has no request credits remaining. |
405 | METHOD_NOT_ALLOWED | The endpoint is called with an unsupported HTTP method. |
429 | RATE_LIMIT_EXCEEDED | The API key exceeds its plan-wide requests-per-second limit. |
500 | DATA_SERVICE_ERROR | The data service cannot complete the request. |
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "A field-specific validation message"
}
}