Endpoint
POSTPeople Search
POST /people/search — search for people inside a company by position, seniority, and department.
Body parameters application/json
| Parameter | Type | Required | Description |
|---|---|---|---|
companyId | string | Yes | Firmable company identifier to search within |
selectedCountry | string | No | Country to search against (defaults to AU) |
position | string | No | Position title (e.g. Software Engineer) |
seniority | string | No | Seniority ID (1–7) |
department | string | No | Department ID (1–17) |
from | string | No | Pagination offset |
size | string | No | Number of results per page |
Provide
seniority and department as the numeric IDs from the reference tables — seniority runs 1–7 (Board Member / Director → No Data), departments run 1–17 (General Management, Sales, Engineering, HR, Marketing, Finance, and more). Supported countries: AU, NZ, SG, MY, ID, PH, HK, JP, VN, KR, TH, US, CA.Example request
curl -X POST "https://api.firmable.com/people/search" \
-H "Authorization: Bearer <FIRMABLE_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"companyId": "f000000117274",
"selectedCountry": "AU",
"seniority": "5",
"department": "2",
"from": "0",
"size": "20"
}'
Responses
A success returns an array of matches, each with person_id, position, company_name, linkedin, and boolean contact-availability flags.
200Array of matches
[
{
"person_id": "f000000117274",
"position": "Software Engineer",
"company_name": "Senior",
"linkedin": "person_slug",
"has_email": true,
"has_personal_email": true,
"has_phone": true,
"has_dnd_phone": true,
"has_mobile": true
}
]
400Error
{
"error": 123,
"message": "<string>"
}