Documentation
55 filters for people search and 35 for company search, with their types and allowed values. This page is read from the running API, so it cannot drift from what the endpoint accepts.
Filters join with AND; several values inside one filter join with OR. So seniority=vp,c_suite&country=US means a VP or C-level person, in the United States.
Array filters are comma-separated in a query string and JSON arrays in a POST body. Keyword filters match on substrings — wrap a value in [brackets] for an exact match. Every exclude… filter removes matches from the filter it names.
Enum filters accept only the values in the catalogue; anything else is a 400 naming the field. GET /v1/filters is public and returns this whole structure as JSON, which is what to generate queries from rather than hard-coding a list.
Accepted by GET /v1/people/search.
| Filter | Type | Group | Values and notes |
|---|---|---|---|
| q | string | Person | free text over the person: name, title, headline, profile summary, skills, job descriptions, and their company name |
| profileKeywords | string[] | Person | the same as keywords — the person’s own profile text; kept under this name for clients that adopted it |
| excludeProfileKeywords | string[] | Person | profile keywords to exclude |
| title | string[] | Person | job title keywords; wrap a value in [brackets] for an exact match |
| excludeTitle | string[] | Person | job titles to exclude |
| seniority | enum[] | Person | owner · founder · c_suite · partner · vp · head · director · manager · senior · entry · intern · unknown LeadOcean seniority band (mapped onto job_level upstream) — LeadOcean seniority band, normalised across sources. |
| jobLevel | enum[] | Person | C-Team · Director · Manager · Other · Staff · VP seniority band as the data source defines it — Seniority band of the person's current role. |
| jobFunction | enum[] | Person | Advertising & Marketing · Art, Culture and Creative Professionals · Construction · Customer/Client Service · Education · Engineering · Finance & Accounting · General Business & Management · Healthcare & Human Services · Human Resources · Information Technology · Legal · Manufacturing & Production · Operations · Other · Public Administration & Safety · Purchasing · Research & Development · Sales & Business Development · Science · Supply Chain & Logistics · Writing/Editing department or function of the current role — Department or function of the person's current role. |
| country | enum[] | Person location | 254 values · country where the person is located — ISO 3166-1 alpha-2 country code, plus XK for Kosovo. Labels give the English country name. |
| continent | enum[] | Person location | Africa · Antarctica · Asia · Europe · North America · Oceania · South America continent the person is in — Continent of the person or the company headquarters. |
| salesRegion | enum[] | Person location | NORAM · LATAM · EMEA · APAC commercial region the person is in — Commercial region of the person or the company headquarters. |
| city | string[] | Person location | city keywords for the person |
| excludeCity | string[] | Person location | cities to exclude |
| education | string[] | Person | school, degree or year phrases |
| minConnections | int | Person | minimum LinkedIn connections, 0–500 — 0 means no minimum; any value of 1 or more matches only records whose figure we hold |
| domain | string[] | Company | company domain the person works at |
| companyName | string[] | Company | company name keywords |
| excludeCompanyName | string[] | Company | company name keywords to exclude |
| companyLinkedin | string[] | Company | company LinkedIn URLs |
| industry | enum[] | Company | 534 values · industry company industry — Company industry. One of 534 normalised values. |
| excludeIndustry | enum[] | Company | 534 values · industry industries to exclude — Company industry. One of 534 normalised values. |
| companyType | enum[] | Company | Educational · Educational Institution · Government Agency · Nonprofit · Partnership · Privately Held · Public Company · Self-Employed · Self-Owned · Sole Proprietorship legal type of the company — Legal/organisational type of the company. |
| employeeRange | enum[] | Size and revenue | 1-10 · 11-50 · 51-200 · 201-500 · 501-1000 · 1001-5000 · 5001-10000 · 10001+ headcount bracket; coarser and faster than minEmployees/maxEmployees — Company headcount bracket. |
| minEmployees | int | Size and revenue | company headcount, lower bound — only records whose value we hold; one with no figure on file is never returned |
| maxEmployees | int | Size and revenue | company headcount, upper bound — only records whose value we hold; one with no figure on file is never returned |
| minRevenue | int | Size and revenue | annual revenue in USD — only records whose value we hold; one with no figure on file is never returned |
| maxRevenue | int | Size and revenue | annual revenue ceiling in USD — only records whose value we hold; one with no figure on file is never returned |
| minFounded | int | Size and revenue | year the company was founded — only records whose value we hold; one with no figure on file is never returned |
| maxFounded | int | Size and revenue | latest year the company was founded — only records whose value we hold; one with no figure on file is never returned |
| minFollowers | int | Size and revenue | minimum company LinkedIn followers — 0 means no minimum; any value of 1 or more matches only records whose figure we hold |
| fundingType | enum[] | Funding | Series unknown · Pre seed · Seed · Series A · Series B · Series C · Series D · Series E-J · Grant · Angel · Private equity · Debt financing · Non equity assistance · Post IPO equity · Undisclosed · Post IPO debt · Product crowdfunding · Equity crowdfunding · Corporate round · Convertible note · Secondary market · Initial coin offering · Post IPO secondary type of the last funding round — Type of the most recent funding round. |
| minFunding | int | Funding | total funding raised, USD — only records whose value we hold; one with no figure on file is never returned |
| maxFunding | int | Funding | total funding raised, USD ceiling — only records whose value we hold; one with no figure on file is never returned |
| minLastFundingYear | int | Funding | funded no earlier than this year — only records whose value we hold; one with no figure on file is never returned |
| maxLastFundingYear | int | Funding | funded no later than this year — only records whose value we hold; one with no figure on file is never returned |
| investors | string[] | Funding | lead investor keywords |
| naics | string[] | Company | NAICS codes |
| sic | string[] | Company | SIC codes |
| keywords | string[] | Person | keywords in the person’s own profile: headline, summary, skills and job descriptions — the PERSON’s text, not the employer’s (for the company’s text search companies, or filter people by industry / companyName). Each value is a phrase whose words must all appear; several values OR together |
| excludeKeywords | string[] | Person | profile keywords to exclude |
| hqCountry | enum[] | Headquarters | 254 values · country company headquarters country — ISO 3166-1 alpha-2 country code, plus XK for Kosovo. Labels give the English country name. |
| hqCity | string[] | Headquarters | company headquarters city keywords |
| hqState | string[] | Headquarters | company headquarters state or region |
| hqContinent | enum[] | Headquarters | Africa · Antarctica · Asia · Europe · North America · Oceania · South America continent of the company headquarters — Continent of the person or the company headquarters. |
| hqSalesRegion | enum[] | Headquarters | NORAM · LATAM · EMEA · APAC commercial region of the company headquarters — Commercial region of the person or the company headquarters. |
| technologies | string[] | Company | technologies detected on the company website (own data only) |
| technologyCategories | enum[] | Company | 105 values · tech_category what the detected technology is for, e.g. Analytics or CDN, rather than its name (own data only; covers the ~7.8M crawled companies) — What a detected technology is FOR, rather than its name: ask for Analytics instead of naming Google Analytics, Matomo and Plausible one by one. Detected from the company's own website, so it covers the 7,843,598 companies we have crawled - about an eighth of the corpus - and a category filter searches that eighth rather than all 63,569,167. Counts are from the 2026-09-07 crawl; web enrichment has not run since, and sites change stacks, so treat this as a recent snapshot. |
| emailStatus | enum[] | Contact | verified · catch_all_valid · catch_all · risky · unknown · untested · invalid · role · disposable · spam_trap · abuse · derived · none email deliverability (own data only) — Deliverability of the person's best email, from verification rather than a guess. On a BUSINESS address (`work`, `work_other`, `other`), `verified` means OUR OWN verifier sent to the address and it accepted — nothing else earns the word, and a data supplier asserting that an address is good is not a check, whichever supplier it is: those are published as `untested`. PERSONAL ADDRESSES ARE THE EXCEPTION and the difference is worth knowing: we do not verify consumer domains at all, so on a personal address `verified` still means a supplier asserted it and you should treat it as a lead to verify rather than a confirmed one. The dedicated personal-email endpoint publishes no status for that reason. `catch_all` means WE probed the domain, on the same rule and with the same personal-address exception. In practice that changes nothing for catch_all — a catch-all verdict can only come from probing the domain, which no supplier does — so the whole of the current catch_all population already qualifies. This narrowed on 2026-09-20 and again on 2026-09-22, so a `verified` count taken before either date is not comparable with one taken after — the population is smaller each time and every address in it has been tested by us. ONE INCONSISTENCY WHILE THIS ROLLS OUT: enrichment (/v1/people/enrich, the v2 contact endpoints, MCP) applies the narrow rule per address; people search does not, because the search index carries no per-address verification provenance. A person can come back `verified` in a search row and `untested` when enriched, and the enriched answer is the correct one. Treat a search count of `verified` as an upper bound and confirm per address on enrichment. Safe to send: verified, and catch_all_valid — a mailbox on a catch-all domain whose EXISTENCE we confirmed through the provider's identity check (Microsoft 365 managed tenants and Google Workspace only; the domain would accept any address, this one is known to be real). It ranks between verified and catch_all and is earned only by that check, never by a supplier and never by re-reading an older catch_all verdict. As a FILTER, `catch_all` matches both catch_all and catch_all_valid (a confirmed mailbox is still on a catch-all domain), so an existing verified+catch_all filter keeps the promoted people; filter on `catch_all_valid` alone for the narrow set. Cannot be confirmed either way, because the domain accepts everything: catch_all. Do not send: invalid, spam_trap, abuse, disposable. Use with care: risky, role (a shared mailbox like info@) and derived (built from the company's address pattern and never tested). untested means nobody has checked this address yet — it may well be fine, and it is the largest group; unknown means it WAS checked and the result was inconclusive, which is a weaker signal than untested, not a stronger one. none means the person has no email. |
| emailType | enum[] | Contact | work · work_other · work_any · personal · other · unknown · none work or personal email (own data only) — Kind of the person's best email address. work is at their CURRENT employer's domain. work_other is a business address at a different company — usually a former employer, so it is the one most likely to bounce or to reach whoever inherited the mailbox; ask for it deliberately, not by accident. work_any is the union of the two. personal is webmail and similar; other is a business address where we do not know the employer; unknown means the address exists but we cannot classify it, which is the most common answer; none means the person has no email. Pair it with emailStatus to ask for a deliverable address at the company they actually work for. |
| hasEmail | boolean | Contact | only people with, or without, a known email (own data only) |
| hasPhone | boolean | Contact | only people with, or without, a known phone number (own data only) |
| reachable | enum | Contact | any · strict holding an email OR a phone — `strict` additionally requires the email to be verified, catch_all_valid or catch_all — How a person can be reached at all. any = we hold an email or a phone. strict = we hold a phone, or an email that is verified or on a catch-all domain — i.e. excluding addresses we know are bad and addresses nobody has checked yet. |
| cursor | string | Options | opaque, from meta.nextCursor |
| limit | int ≤ 100 · default 25 | Options | records per page, 1–100 |
| facets | boolean | Options | also return counts by seniority, country, industry and company size |
Accepted by GET /v1/companies/search.
| Filter | Type | Group | Values and notes |
|---|---|---|---|
| q | string | Company | free text over company name and description |
| name | string[] | Company | company name keywords |
| excludeName | string[] | Company | company name keywords to exclude |
| domain | string[] | Company | company website domains |
| string[] | Company | company LinkedIn URLs — resolved through the people we hold at the company (most real companies); a URL nobody works at is a 404 pointing at GET /v1/companies/enrich?linkedin_url=…, which always works | |
| industry | enum[] | Company | 534 values · industry company industry — Company industry. One of 534 normalised values. |
| excludeIndustry | enum[] | Company | 534 values · industry industries to exclude — Company industry. One of 534 normalised values. |
| companyType | enum[] | Company | Educational · Educational Institution · Government Agency · Nonprofit · Partnership · Privately Held · Public Company · Self-Employed · Self-Owned · Sole Proprietorship legal type of the company — Legal/organisational type of the company. |
| employeeRange | enum[] | Size and revenue | 1-10 · 11-50 · 51-200 · 201-500 · 501-1000 · 1001-5000 · 5001-10000 · 10001+ headcount bracket — broader and cheaper than min/maxEmployees — Company headcount bracket. |
| minEmployees | int | Size and revenue | company headcount, lower bound — only records whose value we hold; one with no figure on file is never returned |
| maxEmployees | int | Size and revenue | company headcount, upper bound — only records whose value we hold; one with no figure on file is never returned |
| minRevenue | int | Size and revenue | annual revenue floor in USD — only records whose value we hold; one with no figure on file is never returned |
| maxRevenue | int | Size and revenue | annual revenue ceiling in USD — only records whose value we hold; one with no figure on file is never returned |
| minFollowers | int | Size and revenue | minimum company LinkedIn followers — 0 means no minimum; any value of 1 or more matches only records whose figure we hold |
| minFounded | int | Size and revenue | earliest year the company was founded — only records whose value we hold; one with no figure on file is never returned |
| maxFounded | int | Size and revenue | latest year the company was founded — only records whose value we hold; one with no figure on file is never returned |
| fundingType | enum[] | Funding | Series unknown · Pre seed · Seed · Series A · Series B · Series C · Series D · Series E-J · Grant · Angel · Private equity · Debt financing · Non equity assistance · Post IPO equity · Undisclosed · Post IPO debt · Product crowdfunding · Equity crowdfunding · Corporate round · Convertible note · Secondary market · Initial coin offering · Post IPO secondary type of the most recent funding round — Type of the most recent funding round. |
| minFunding | int | Funding | total funding raised, USD floor — only records whose value we hold; one with no figure on file is never returned |
| maxFunding | int | Funding | total funding raised, USD ceiling — only records whose value we hold; one with no figure on file is never returned |
| minLastFundingYear | int | Funding | funded no earlier than this year — only records whose value we hold; one with no figure on file is never returned |
| maxLastFundingYear | int | Funding | funded no later than this year — only records whose value we hold; one with no figure on file is never returned |
| investors | string[] | Funding | lead investor name keywords |
| naics | string[] | Company | NAICS industry codes |
| sic | string[] | Company | SIC industry codes |
| keywords | string[] | Company | keywords across company description, specialties and categories |
| excludeKeywords | string[] | Company | company keywords to exclude |
| hqCountry | enum[] | Headquarters | 254 values · country company headquarters country — ISO 3166-1 alpha-2 country code, plus XK for Kosovo. Labels give the English country name. |
| hqCity | string[] | Headquarters | company headquarters city keywords |
| hqState | string[] | Headquarters | company headquarters state or region |
| hqContinent | enum[] | Headquarters | Africa · Antarctica · Asia · Europe · North America · Oceania · South America continent of the company headquarters — Continent of the person or the company headquarters. |
| hqSalesRegion | enum[] | Headquarters | NORAM · LATAM · EMEA · APAC commercial region of the company headquarters — Commercial region of the person or the company headquarters. |
| technologies | string[] | Company | detected technologies (own data only) |
| technologyCategories | enum[] | Company | 105 values · tech_category what the detected technology is for, e.g. Analytics or CDN, rather than its name (own data only; covers the ~7.8M crawled companies) — What a detected technology is FOR, rather than its name: ask for Analytics instead of naming Google Analytics, Matomo and Plausible one by one. Detected from the company's own website, so it covers the 7,843,598 companies we have crawled - about an eighth of the corpus - and a category filter searches that eighth rather than all 63,569,167. Counts are from the 2026-09-07 crawl; web enrichment has not run since, and sites change stacks, so treat this as a recent snapshot. |
| cursor | string | Options | opaque, from meta.nextCursor |
| limit | int ≤ 100 · default 25 | Options | records per page, 1–100 |
Sets small enough to read are printed in the tables above. The large ones live behind their own endpoint, which is public and searchable: GET /v1/enums/<name>?q= returns matching values, so you can offer a type-ahead rather than shipping 534 industries in your bundle.
| Enum | Values | Used by |
|---|---|---|
| industry | 534 · fetch | industry, excludeIndustry |
| company_type | 10 · listed above | companyType |
| employee_range | 8 · listed above | employeeRange |
| funding_type | 23 · listed above | fundingType |
| job_function | 22 · listed above | jobFunction |
| job_level | 6 · listed above | jobLevel |
| continent | 7 · listed above | continent, hqContinent |
| sales_region | 4 · listed above | salesRegion, hqSalesRegion |
| country | 254 · fetch | country, hqCountry |
| seniority | 12 · listed above | seniority |
| email_type | 7 · listed above | emailType |
| reachable | 2 · listed above | reachable |
| email_status | 13 · listed above | emailStatus |
| tech_category | 105 · fetch |
Every value at once is also in openapi.json and llms-full.txt.