ContactOut · Schema
PeopleSearchRequest
CompanyContact DataEmail FinderData EnrichmentPeople SearchCompany SearchEmail VerificationSales IntelligenceRecruitingB2B Data
Properties
| Name | Type | Description |
|---|---|---|
| name | string | Name of the profile (text) |
| job_title | array | Accepts an array of job titles. (array, max:50) |
| past_job_title | array | Returns profiles that held these job titles in past (non-current) roles. Cannot be combined with current_titles_only: false. Cannot be combined with match_experience when both job_title and company ar |
| job_function | array | Accepts an array of job functions to filter profiles by their functional area (e.g., Engineering, Marketing, Sales, Finance). Accepted values list (array, max:50) |
| seniority | array | Accepts an array of seniority levels to filter profiles by their career level. Accepted values list (array, max:50) |
| current_titles_only | boolean | Returns profiles matching the current job title. If specified false, the response will return profiles matching the current or past job title. (boolean, default: true) |
| include_related_job_titles | boolean | Returns profiles with related job titles (boolean, default: false) |
| match_experience | string | Ensures job_title and company match in the same experience. current – Returns profiles that match the current experience.past – Returns profiles that match any past experience.both – Returns profiles |
| skills | array | Accepts an array of skills (array, max:50) |
| languages | array | Accepts an array of language objects. Each object must have a language field (required string) and optionally a proficiency field (array of strings). If proficiency is not provided, any proficiency le |
| education | array | Accepts an array of schools/degrees (array, max:50) |
| educations | array | Accepts an array of education objects. Each object can have optional fields: school_name (string), field_of_study (string), and location (string). At least one field must be provided. (array, max:50) |
| location | array | Accepts an array of locations (array, max:50) |
| location_radius | integer | Search radius in miles (1-500). Only works when location is provided and the location is a city / area. Filters profiles within the specified radius of the location. (integer) |
| current_work_location | array | Accepts an array of location strings (cities or countries). Filters profiles who currently work in any of the specified locations. (array, max:50) |
| past_work_location | array | Accepts an array of location strings (cities or countries). Filters profiles who previously worked in any of the specified locations. (array, max:50) |
| company | array | Accepts an array of company names (array, max:50) |
| past_company | array | Returns profiles that worked at these companies in past (non-current) roles. Cannot be combined with company_filter set to past, past_only, or both. Cannot be combined with match_experience when both |
| company_filter | string | current – Returns profiles matching the current company name past – Returns profiles matching any past company name past_only – Returns profiles where the company appears in past experience and is not |
| current_company_only | boolean | Returns profiles matching the current company name (boolean, default: true) |
| domain | array | Accepts an array of domains (array, max:50) |
| industry | array | Accepts an array of industries. Prefix an industry with NOT to exclude it (e.g. "NOT Computer Software"). Accepted values list (array, max:50) |
| keyword | string | Returns profiles that contain the mentioned keyword anywhere in their profile (text) |
| company_size | array | Accepts an array of company size ranges. Accepted values list (array) |
| years_of_experience | array | Accepts an array of ranges in the format X_Y where X and Y are integers representing the minimum and maximum years of experience. e.g. ["2_5", "6_10"] means 2-5 years OR 6-10 years. (array) |
| years_in_current_role | array | Accepts an array of ranges in the format X_Y where X and Y are integers representing the minimum and maximum years in current role. e.g. ["1_3", "4_6"] means 1-3 years OR 4-6 years in current role. Ca |
| recently_changed_jobs | boolean | If set to true, returns profiles whose current job started within the last 3 calendar months. Cannot be used with years_in_current_role. (boolean, default: false) |
| is_currently_working | boolean | If true, returns only profiles with an active current role. If false, returns only profiles with no active current role. Omit to return both. (boolean) |
| page | integer | Provides results for the given page (integer) |
| page_size | integer | Maximum number of profiles to return per page. Valid range is 1-25. When not provided, 25 profiles are returned. Search credits are charged only for the number of profiles returned. (integer, default: |
| data_types | array | Returns profiles containing atleast one of the specified data types. It accepts an array of one more values from this list [personal_email, work_email, phone] (array) |
| reveal_info | boolean | If set to true, contact_info will contain the emails and phone numbers of the profile and credits will be charged (boolean, default: false) |
| detailed_experience | boolean | If set to true, the experience field returns detailed data like title, company_name, summary, start_date_year, start_date_month, end_date_year, end_date_month, is_current, linkedin_url, logo_url. If f |
| detailed_education | boolean | If set to true, the education field returns detailed data like school_name, degree, field_of_study, description, start_date_year, end_date_year, url. If false, returns simple text strings. (boolean, d |
| exclude_job_titles | array | Accepts an array of job titles to exclude from results. (array) |
| exclude_companies | array | Accepts an array of company names to exclude from results. (array) |
| exclude_companies_filter | string | Applies when exclude_companies is non-empty. current – Exclude if the company appears as the profile's current employer only.past – Exclude if it appears in past roles only.both – Exclude if it appear |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/contactout/main/json-schema/contactout-people-search-request-schema.json",
"title": "PeopleSearchRequest",
"x-generated": "2026-10-07",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_ae-authored/contactout-openapi-generated.yml#/components/schemas/PeopleSearchRequest",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the profile (text)"
},
"job_title": {
"type": "array",
"items": {},
"description": "Accepts an array of job titles. (array, max:50)"
},
"past_job_title": {
"type": "array",
"items": {},
"description": "Returns profiles that held these job titles in past (non-current) roles. Cannot be combined with current_titles_only: false. Cannot be combined with match_experience when both job_title and company are set. (array, max:50)"
},
"job_function": {
"type": "array",
"items": {},
"description": "Accepts an array of job functions to filter profiles by their functional area (e.g., Engineering, Marketing, Sales, Finance). Accepted values list (array, max:50)"
},
"seniority": {
"type": "array",
"items": {},
"description": "Accepts an array of seniority levels to filter profiles by their career level. Accepted values list (array, max:50)"
},
"current_titles_only": {
"type": "boolean",
"default": "true",
"description": "Returns profiles matching the current job title. If specified false, the response will return profiles matching the current or past job title. (boolean, default: true)"
},
"include_related_job_titles": {
"type": "boolean",
"default": "false",
"description": "Returns profiles with related job titles (boolean, default: false)"
},
"match_experience": {
"type": "string",
"default": "current",
"description": "Ensures job_title and company match in the same experience. current – Returns profiles that match the current experience.past – Returns profiles that match any past experience.both – Returns profiles matching either current or past experience.If set, current_titles_only and company_filter should not be used; otherwise, an error is returned. (string, default: current)"
},
"skills": {
"type": "array",
"items": {},
"description": "Accepts an array of skills (array, max:50)"
},
"languages": {
"type": "array",
"items": {},
"description": "Accepts an array of language objects. Each object must have a language field (required string) and optionally a proficiency field (array of strings). If proficiency is not provided, any proficiency level is accepted. Accepted values list for proficiency. (array, max:50)"
},
"education": {
"type": "array",
"items": {},
"description": "Accepts an array of schools/degrees (array, max:50)"
},
"educations": {
"type": "array",
"items": {},
"description": "Accepts an array of education objects. Each object can have optional fields: school_name (string), field_of_study (string), and location (string). At least one field must be provided. (array, max:50)"
},
"location": {
"type": "array",
"items": {},
"description": "Accepts an array of locations (array, max:50)"
},
"location_radius": {
"type": "integer",
"description": "Search radius in miles (1-500). Only works when location is provided and the location is a city / area. Filters profiles within the specified radius of the location. (integer)"
},
"current_work_location": {
"type": "array",
"items": {},
"description": "Accepts an array of location strings (cities or countries). Filters profiles who currently work in any of the specified locations. (array, max:50)"
},
"past_work_location": {
"type": "array",
"items": {},
"description": "Accepts an array of location strings (cities or countries). Filters profiles who previously worked in any of the specified locations. (array, max:50)"
},
"company": {
"type": "array",
"items": {},
"description": "Accepts an array of company names (array, max:50)"
},
"past_company": {
"type": "array",
"items": {},
"description": "Returns profiles that worked at these companies in past (non-current) roles. Cannot be combined with company_filter set to past, past_only, or both. Cannot be combined with match_experience when both job_title and company are set. (array, max:50)"
},
"company_filter": {
"type": "string",
"default": "current",
"description": "current – Returns profiles matching the current company name past – Returns profiles matching any past company name past_only – Returns profiles where the company appears in past experience and is not their current employer. both – Returns profiles matching either current or past experience (string, default: current)"
},
"current_company_only": {
"type": "boolean",
"default": "true",
"description": "Returns profiles matching the current company name (boolean, default: true)"
},
"domain": {
"type": "array",
"items": {},
"description": "Accepts an array of domains (array, max:50)"
},
"industry": {
"type": "array",
"items": {},
"description": "Accepts an array of industries. Prefix an industry with NOT to exclude it (e.g. \"NOT Computer Software\"). Accepted values list (array, max:50)"
},
"keyword": {
"type": "string",
"description": "Returns profiles that contain the mentioned keyword anywhere in their profile (text)"
},
"company_size": {
"type": "array",
"items": {},
"description": "Accepts an array of company size ranges. Accepted values list (array)"
},
"years_of_experience": {
"type": "array",
"items": {},
"description": "Accepts an array of ranges in the format X_Y where X and Y are integers representing the minimum and maximum years of experience. e.g. [\"2_5\", \"6_10\"] means 2-5 years OR 6-10 years. (array)"
},
"years_in_current_role": {
"type": "array",
"items": {},
"description": "Accepts an array of ranges in the format X_Y where X and Y are integers representing the minimum and maximum years in current role. e.g. [\"1_3\", \"4_6\"] means 1-3 years OR 4-6 years in current role. Cannot be used with recently_changed_jobs. (array)"
},
"recently_changed_jobs": {
"type": "boolean",
"default": "false",
"description": "If set to true, returns profiles whose current job started within the last 3 calendar months. Cannot be used with years_in_current_role. (boolean, default: false)"
},
"is_currently_working": {
"type": "boolean",
"description": "If true, returns only profiles with an active current role. If false, returns only profiles with no active current role. Omit to return both. (boolean)"
},
"page": {
"type": "integer",
"description": "Provides results for the given page (integer)"
},
"page_size": {
"type": "integer",
"default": "25",
"description": "Maximum number of profiles to return per page. Valid range is 1-25. When not provided, 25 profiles are returned. Search credits are charged only for the number of profiles returned. (integer, default: 25)"
},
"data_types": {
"type": "array",
"items": {},
"description": "Returns profiles containing atleast one of the specified data types. It accepts an array of one more values from this list [personal_email, work_email, phone] (array)"
},
"reveal_info": {
"type": "boolean",
"default": "false",
"description": "If set to true, contact_info will contain the emails and phone numbers of the profile and credits will be charged (boolean, default: false)"
},
"detailed_experience": {
"type": "boolean",
"default": "false",
"description": "If set to true, the experience field returns detailed data like title, company_name, summary, start_date_year, start_date_month, end_date_year, end_date_month, is_current, linkedin_url, logo_url. If false, returns simple text strings. (boolean, default: false)"
},
"detailed_education": {
"type": "boolean",
"default": "false",
"description": "If set to true, the education field returns detailed data like school_name, degree, field_of_study, description, start_date_year, end_date_year, url. If false, returns simple text strings. (boolean, default: false)"
},
"exclude_job_titles": {
"type": "array",
"items": {},
"description": "Accepts an array of job titles to exclude from results. (array)"
},
"exclude_companies": {
"type": "array",
"items": {},
"description": "Accepts an array of company names to exclude from results. (array)"
},
"exclude_companies_filter": {
"type": "string",
"default": "both",
"description": "Applies when exclude_companies is non-empty. current – Exclude if the company appears as the profile's current employer only.past – Exclude if it appears in past roles only.both – Exclude if it appears in either current or past experience. (string, default: both)"
}
},
"required": [
"education",
"job_title",
"keyword",
"past_job_title",
"skills"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/contactout-people-search-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.