---
title: "Search people (deprecated)"
method: POST
path: "/v2/search/people"
tags: ["Search"]
---

# Search people (deprecated)

`POST /v2/search/people`

Search people using filters and/or people Ids

## Query parameters

- `apiToken` string, nullable

## Headers

- `x-api-token` string, nullable

## Request body

- PublicSearchPeopleBody
  - `size` integer — Number of people to return. The maximum value is 10,000. To get more than 10,000 results, use `searchAfter`.
  - `from` integer — Return people from number X. Passing 1 will return all the results. Passing 10 will return results from the 10th. Note: `size + from` cannot be higher than 10,001
  - `searchAfter` string, nullable — Use `searchAfter` returned by the previous request to get the next page. Note: this cannot be used together with `onePersonPerDomain` enabled.
  - `peopleFilters` PeopleFilters
    - `includeIds` string[], nullable — Only return specified people. Note: this is not implemented yet.
    - `excludeIds` string[], nullable — Exclude specified people from the results. Note: this is not implemented yet.
    - `seniorities` Seniority[], nullable — Filter by seniorities. Available values are located at /v2/data-fields endpoint.<br>
    - `jobTitles` string[], nullable — Filter by job title
    - `excludeJobTitles` string[], nullable — Exclude people by job title
    - `departments` Department[], nullable — Filter by departments. Available values are located at /v2/data-fields endpoint.<br>
    - `countries` string[], nullable — Filter by countries (alpha-2 ISO 3166 country codes)
    - `states` State[], nullable — List of states/regions (ISO-3166-2 region codes) to search for people
      - `country` string, required — Alpha-2 ISO 3166 country code
      - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
    - `excludeStates` State[], nullable — List of states/regions (ISO-3166-2 region codes) to exclude when searching for people
      - `country` string, required — Alpha-2 ISO 3166 country code
      - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
    - `excludeCountries` string[], nullable — List of countries (alpha-2 ISO 3166 country codes) to exclude when searching for people
    - `names` string[], nullable — Filter by names
    - `emails` string[], nullable — Filter by email address
    - `keywords` string[], nullable — Filter people based on keywords from their summary
    - `fieldsExist` string[], nullable — Return records where specified fields exist
    - `fieldsNotExist` string[], nullable — Return records where specified fields do not exist
    - `changedPositionAfter` string, nullable — Return people who started a new job between the specified date (inclusive) and now
    - `changedPositionBefore` string, nullable — Return people who started a new currently active job before the specified date (inclusive)
  - `companiesFilters` CompaniesFiltersV1
    - `lookalikeDomains` string[], nullable — Find domains similar to the provided
    - `includeDomains` string[], nullable — Only return specified domains
    - `excludeDomains` string[], nullable — Exclude specified domains from the results
    - `companySizes` PublicCompanySize[], nullable — Filter by company size ranges
    - `ecommerce` boolean, nullable — true -> returns only e-commerce companies<br>false -> excludes e-commerce companies<br>none -> returns everything
    - `yearFounded` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `countriesCount` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `revenues` Revenue[], nullable — Filter by revenue ranges
    - `employeeCountOcean` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `mobileApps` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `mobileAppsFilter` MobileAppsFilter
      - `count` FromTo
        - `from` integer, nullable — Greater than or equal to
        - `to` integer, nullable — Less than or equal to
      - `downloads` FromTo
        - `from` integer, nullable — Greater than or equal to
        - `to` integer, nullable — Less than or equal to
      - `releaseYear` FromTo
        - `from` integer, nullable — Greater than or equal to
        - `to` integer, nullable — Less than or equal to
    - `locationsCount` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `departmentSizes` DepartmentSizeFilter[], nullable — Filter by the size of company departments. Valid range: 0-10,000,000
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
      - `department` 'Accounting and Finance' | 'Board' | 'Business Support' | 'Customer Relations' | 'Design' | 'Editorial Personnel' | 'Engineering' | 'Founder/Owner' | 'Healthcare' | 'HR' | 'Legal' | 'Management' | 'Manufacturing' | 'Marketing and Advertising' | 'Operations' | 'PR and Communications' | 'Procurement' | 'Product' | 'Quality Control' | 'R&D' | 'Sales' | 'Security' | 'Supply Chain' | 'Other' | 'Education', required
    - `employeeCountLinkedin` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `industries` IndustriesFilter
      - `industries` string[], required — Array of the industries to include
      - `mode` 'anyOf' | 'allOf' — [default] anyOf - match at least one of the industries<br>allOf - match all of the industries
    - `excludeIndustries` string[], nullable — Array of the industries to exclude
    - `industryCategories` IndustryCategoriesFilter
      - `industryCategories` string[], required — Array of the industry categories to include
      - `mode` 'anyOf' | 'allOf' — [default] anyOf - match at least one of the industry categories<br>allOf - match all of the industry categories
    - `excludeIndustryCategories` string[], nullable — Array of the industry categories to exclude
    - `linkedinIndustries` string[], nullable — Filter by Linkedin industries. This is OR filter. Available values are located at /v2/data-fields endpoint.<br>
    - `excludeLinkedinIndustries` string[], nullable — Array of Linkedin industries to exclude. Available values are located at /v2/data-fields endpoint.<br>
    - `fundingRound` FundingRoundFilter
      - `raised` FromTo
        - `from` integer, nullable — Greater than or equal to
        - `to` integer, nullable — Less than or equal to
      - `types` FundingRoundType[], nullable — List of funding round types
      - `date` FromToStringDate
        - `from` string, nullable — Date in YYYY-MM-DD format
        - `to` string, nullable — Date in YYYY-MM-DD format
    - `countries` string[], nullable — Filter by **all** countries where the company has presence.<br>Must be provided as alpha-2 ISO 3166 country codes.<br>`["es", "pt"]` means Spain (primary/not primary) **OR** Portugal (primary/not primary).<br>if additional filter `primaryCountries = ["de"]` is used then it means:<br>(Spain (not primary) **OR** Portugal (not primary)) **AND** Germany (primary)
    - `primaryCountries` string[], nullable — Filter only by **primary** countries where the company has presence.<br>Must be provided as alpha-2 ISO 3166 country codes.<br>`countries = ["de", "at"]` means Germany (primary) **OR** Austria (primary).<br>if additional filter `countries = ["es"]` is used then it means:<br>(Germany (primary) **OR** Austria (primary)) **AND** Spain (not primary)
    - `states` State[], nullable — Filter by country states (if applicable)
      - `country` string, required — Alpha-2 ISO 3166 country code
      - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
    - `primaryStates` State[], nullable — Filter only by **primary** states where the company has presence.<br>Behavior is the same as for primary countries
      - `country` string, required — Alpha-2 ISO 3166 country code
      - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
    - `cities` CompaniesCityFilter[], nullable — Filter by cities
      - `city` string, required — City name
      - `country` string, nullable — Alpha-2 ISO 3166 country code
      - `region` State
        - `country` string, required — Alpha-2 ISO 3166 country code
        - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
      - `postalCode` string, nullable — Filter by postal code
    - `primaryCities` CompaniesCityFilter[], nullable — Filter only by **primary** cities where the company has presence.<br>Behavior is the same as for primary countries
      - `city` string, required — City name
      - `country` string, nullable — Alpha-2 ISO 3166 country code
      - `region` State
        - `country` string, required — Alpha-2 ISO 3166 country code
        - `abbreviation` string, required — Valid state abbreviation. List available in the region section there: /v2/data-fields.
      - `postalCode` string, nullable — Filter by postal code
    - `headquarterGeolocation` GeolocationFilter
      - `latitude` number, required — Latitude of the location
      - `longitude` number, required — Longitude of the location
      - `radius` integer, required — Radius in meters
    - `geolocation` GeolocationFilter
      - `latitude` number, required — Latitude of the location
      - `longitude` number, required — Longitude of the location
      - `radius` integer, required — Radius in meters
    - `webTrafficVisits` FromTo
      - `from` integer, nullable — Greater than or equal to
      - `to` integer, nullable — Less than or equal to
    - `keywords` KeywordsFilterV1
      - `keywords` string[], required — Array of the keywords
      - `mode` 'anyOf' | 'allOf' | 'noneOf' — [default] anyOf - match at least one of the keywords<br>allOf - match all of the keywords<br>noneOf - match none of the keywords
    - `fieldsExist` string[], nullable — Return records where specified fields exist
    - `fieldsNotExist` string[], nullable — Return records where specified fields do not exist
    - `socialMedias` SocialMediasFilterV1
      - `medias` string[], required — Array of the social medias to include
      - `mode` 'anyOf' | 'allOf' — [default] anyOf - match at least one of the medias<br>allOf - match all of the medias
    - `technologies` TechnologiesFilterV1
      - `technologies` string[], required — Array of the technologies to include
      - `mode` 'anyOf' | 'allOf' — [default] anyOf - match at least one of the technologies<br>allOf - match all of the technologies
    - `minScore` number, nullable — Minimum score for companies to appear in the results.
  - `revealEmails` RevealEmails
    - `includeEmails` boolean — Include the emails for all the results. One email credit will be charged for each verified email.
    - `webhookUrl` string, nullable — Only relevant if `includeEmails` is True. Webhook url to get the reveal email results, if any email has to be processed in the background.
  - `revealPhones` RevealPhones
    - `includePhones` boolean — Include the phones for all the results. One phone credit will be charged for each verified phone.
    - `webhookUrl` string, nullable — Only relevant if `includePhones` is True. Webhook url to get the reveal phone results, if any phone has to be processed in the background.
  - `onePersonPerDomain` boolean — Only return one person per company
  - `peoplePerCompany` integer, nullable — Number of people to return per company. If you want to return all people from a company, don't set this value.

## Response `200`

Successful Response

- PublicSearchPeopleResult
  - `people` PublicPerson[], required
    - `id` string, required — Internal ocean id of the person
    - `domain` string, required — Domain of the company the person is working for
    - `name` string, nullable — Full name of the person
    - `firstName` string, nullable — First name of the person
    - `lastName` string, nullable — Last name of the person
    - `country` string, nullable — Country code of the person
    - `state` string, nullable — State code of the person
    - `location` string, nullable — Location of the person
    - `linkedinUrl` string, nullable — Link to the linkedin profile of the person
    - `seniorities` Seniority[], nullable — List of seniorities computed from the job title of the person
    - `departments` Department[], nullable — List of departments computed from the job title of the person
    - `subDepartments` SubDepartment[], nullable — Sub-departments computed from the job title of the person. A sub-department is a narrower version of a department, for example software development within engineering. The order does not pair up with `departments`, so use /v2/data-fields to see which department a sub-department belongs to.
    - `photo` string, nullable — Link to the person's profile picture on LinkedIn
    - `jobTitle` string, nullable — Job title of the person
    - `jobTitleEnglish` string, nullable — English translation of the person's job title
    - `currentJobDescription` string, nullable — Current job description of the person
    - `experiences` Experience[], nullable — List of experiences of the person
      - `domain` string, nullable — Domain of the company the person is working for
      - `jobTitle` string, nullable — Job title of the person
      - `dateFrom` string, nullable — Start date of the experience
      - `dateTo` string, nullable — End date of the experience
      - `description` string, nullable — Description of the experience
      - `linkedinCompanyHandle` string, nullable — Linkedin handle of the company the person is working for
    - `summary` string, nullable — Summary of the person
    - `skills` string[], nullable — Skills of the person
    - `phone` PublicApiModelsPersonPhone
      - `numbers` string[], nullable, required — Phone numbers
      - `status` 'verified' | 'notFound' | 'inProgress', required — Status of the phone numbers: verified or not found
    - `email` PublicApiModelsPersonEmail
      - `address` string, nullable, required — Email address
      - `status` 'verified' | 'guessed' | 'catchAll' | 'notFound', required — Status of the address: verified, catchAll or guessed
    - `inferredEmails` string[] — List of inferred email addresses for the person. This is only available for enterprise subscriptions.
    - `updatedAt` string, nullable — When has the person data been updated for the last time
    - `connectionsCount` integer, nullable — Number of LinkedIn connections of the person
    - `followersCount` integer, nullable — Number of LinkedIn followers of the person
    - `headline` string, nullable — Headline of the person
  - `searchAfter` string, nullable — Used for pagination. Use `searchAfter` returned by this request in the next request to get the next page of search results. If `searchAfter` is not present in the response then there is no next page.
  - `detail` string, required — Status text
  - `total` integer, nullable — Total number of results of the search, accessible with pagination.
  - `redirectMap` object, nullable — Mapping of original domains passed in filters to their redirected domains.
  - `creditsUsed` number, required — Number of credits charged for this request.

## Other responses

- `400` — Bad Request
- `402` — Payment Required
- `403` — Forbidden
- `404` — Not found
- `422` — Validation Error

## Changes

- **2026-09-01** `a5d5c0530873` — 1 info
  - added the optional property `people/items/subDepartments` to the response with the `200` status
- **2026-08-24** `7be4c13a1cf6` — 5 warning, 6 info
  - added the new `Education` enum value to the `people/items/departments/items/` response property for the response status `200`
  - added the new `Entry` enum value to the `people/items/seniorities/items/` response property for the response status `200`
  - added the new `Intern` enum value to the `people/items/seniorities/items/` response property for the response status `200`
  - added the new `Professional` enum value to the `people/items/seniorities/items/` response property for the response status `200`
  - …7 more
- **2026-07-26** `0f900a1e318f` — 2 info
  - the `companiesFilters/geolocation/radius` request property's max was increased from `500000.00` to `1000000.00`
  - the `companiesFilters/headquarterGeolocation/radius` request property's max was increased from `500000.00` to `1000000.00`

[Change history](https://skmtc.dev/ocean/apis/ocean-io-api-documentation/changes/v2/search/people/post.md)

---

[API](https://skmtc.dev/ocean/apis/ocean-io-api-documentation.md) · [All operations](https://skmtc.dev/ocean/apis/ocean-io-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ocean/ocean-io-api-documentation/revisions/a5d5c0530873/schema)
