openapi: 3.2.0 info: title: OpenAPI definition People API version: v0 description: People servers: - url: https://api.pitchbook.com tags: - name: People description: People paths: /people/search: get: tags: - People summary: People Search description: Retrieves people along with the companies associated with the person operationId: peopleSearch parameters: - name: firmNames in: query description: Accepts firm names, pbIds, websites, and tickers. Returns a list of persons from all entities that are an exact match. Use a comma to separate multiple values required: false style: form explode: true schema: type: string example: 11111-11, Name - name: personNames in: query description: Accepts person names, and pbIds. Returns a list of persons that are an exact match. Use a comma to separate multiple values required: false style: form explode: true schema: type: string example: 11111-11, Name - name: biography in: query description: Search for people by words and phrases in their biography text required: false style: form explode: true schema: type: string example: IT - name: university in: query description: Find people by their graduating institution required: false style: form explode: true schema: type: string example: MIT - name: firmType in: query description: Find people associated with a specific firm type code required: false style: form explode: true schema: type: string example: SP_AC - name: positionLevel in: query description: Find people by their position level code required: false style: form explode: true schema: type: string example: AC - name: positionTitle in: query description: Find people by the keywords related to their positions required: false style: form explode: true schema: type: string example: Chief Executive Officer - name: primaryPositionOnly in: query description: Search for people by additional parameter concerning their positions. Set this parameter as True and use in pair with positionTitle option required: false style: form explode: true schema: type: string example: 'TRUE' - name: department in: query description: Find people within an organization by the department they work in. Pass a position department code required: false style: form explode: true schema: type: string example: ACC - name: status in: query description: Find people by position status (active or former) required: false style: form explode: true schema: type: string example: active - name: gender in: query description: 'Find people by gender (male or female) ' required: false style: form explode: true schema: type: string example: male - name: industry in: query description: People can be found by industry code of the companies associated with them required: false style: form explode: true schema: type: string example: '10' - name: verticals in: query description: People can be found by vertical code of the companies associated with them required: false style: form explode: true schema: type: string example: 3D - name: industryAndVertical in: query description: When using both industry and vertical parameters, "OR" logic is used by default. To use "AND" logic, set this parameter to True. Set this parameter in pair with industry and vertical options required: false style: form explode: true schema: type: string example: 'TRUE' - name: city in: query description: Search for people by city of their entities required: false style: form explode: true schema: type: string example: Seattle - name: stateProvince in: query description: Search for people by state code or province code of their entities required: false style: form explode: true schema: type: string example: AL - name: country in: query description: Search for people by country code of their entities required: false style: form explode: true schema: type: string example: ABW - name: postCode in: query description: Search for people by postcodes of their entities required: false style: form explode: true schema: type: string example: '98765' - name: locationType in: query description: Search for people by additional parameter concerning the entities specifying HQ Only (HQ_ONLY), Non-HQ Only (NON_HQ_ONLY) or any office location (ANY) values. Set this parameter in pair with city, stateProvince, country, postCode options required: false style: form explode: true schema: type: string example: ANY - name: firstName in: query description: Find people by first name required: false style: form explode: true schema: type: string example: John - name: lastName in: query description: Find people by last name required: false style: form explode: true schema: type: string example: Johnson - name: email in: query description: Find people by email required: false style: form explode: true schema: type: string example: Johnson@pitchbook.com - name: domain in: query description: Find people by domain required: false style: form explode: true schema: type: string example: pitchbook.com - name: page in: query description: Results are returned so that they can be paged through. Set this parameter to increment the page required: false style: form explode: true schema: type: string example: '1' - name: perPage in: query description: How many returned results show on page required: false style: form explode: true schema: type: string example: '25' responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/AdvancedSearchPageDtoPersonAdvancedSearchResultDto_SearchView' security: - pbToken: [] /people/{pbId}/bio: get: tags: - People summary: People Bio description: Retrieves key data points about specific person operationId: getPerson parameters: - name: pbId in: path description: Person pbId required: true style: simple explode: false schema: type: string examples: 11436-22P: summary: 11436-22P value: 11436-22P 12260-62P: summary: 12260-62P value: 12260-62P 12330-19P: summary: 12330-19P value: 12330-19P 11429-47P: summary: 11429-47P value: 11429-47P 12369-25P: summary: 12369-25P value: 12369-25P responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/PersonBioDto' security: - pbToken: [] /people/bio: post: tags: - People summary: '[Bulk] People Bio' description: Retrieves key data points about specific person. This bulk call allows you to send multiple pbIds within a single API call. operationId: getBulkPersonBio requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkRequestDto' example: items: - id: 11425-78P - id: 12251-53P - id: 11396-89P required: true responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/BulkResultDtoPersonBioDto' security: - pbToken: [] /people/{pbId}/education-work: get: tags: - People summary: People Education/Work description: Retrieves company, deal, fund and advisory roles of the specific person operationId: getPersonEducationWork parameters: - name: pbId in: path description: Person pbId required: true style: simple explode: false schema: type: string examples: 11396-89P: summary: 11396-89P value: 11396-89P 11396-98P: summary: 11396-98P value: 11396-98P 11397-70P: summary: 11397-70P value: 11397-70P 12382-57P: summary: 12382-57P value: 12382-57P 12369-25P: summary: 12369-25P value: 12369-25P responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/PersonEducationWorkDto' security: - pbToken: [] /people/{pbId}/contact: get: tags: - People summary: People Contact description: Retrieves contact information of the specific person operationId: getPersonContactInfo parameters: - name: pbId in: path description: Person pbId required: true style: simple explode: false schema: type: string examples: 11406-88P: summary: 11406-88P value: 11406-88P 11428-93P: summary: 11428-93P value: 11428-93P 11461-96P: summary: 11461-96P value: 11461-96P 11429-47P: summary: 11429-47P value: 11429-47P 11441-53P: summary: 11441-53P value: 11441-53P responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/PersonContactDto' security: - pbToken: [] /people/{pbId}/updates: get: tags: - People summary: Person Profile Updates description: Retrieves changes for the specific person for up to the last 90 days operationId: getPersonUpdates parameters: - name: pbId in: path description: Person pbId. Required to specify time period using 'sinceDate' or 'trailingRange' parameter required: true style: simple explode: false schema: type: string examples: 12406-06P: summary: 12406-06P value: 12406-06P 11617-93P: summary: 11617-93P value: 11617-93P 12024-82P: summary: 12024-82P value: 12024-82P 12382-57P: summary: 12382-57P value: 12382-57P 12327-94P: summary: 12327-94P value: 12327-94P - name: sinceDate in: query description: 'Add this parameter to extract information about the entity updates after a certain date with the > operator, before a certain date with the < operator and between 2 dates with the ^ operator. Set this parameter in pair with pbId. Format: YYYY-MM-DD' required: false style: form explode: true schema: type: string example: <2026-09-16 - name: trailingRange in: query description: Add this parameter to extract information about the entity updates during last N days (up to 90). Set this parameter in pair with pbId required: false style: form explode: true schema: type: integer example: '20' responses: '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '503': description: Service Unavailable content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '504': description: Gateway Timeout content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '402': description: Payment Required content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '429': description: Too Many Requests content: '*/*': schema: $ref: '#/components/schemas/ErrorDto' '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/UpdateDto' security: - pbToken: [] components: schemas: PersonContactDto: type: object properties: personId: type: string example: 195066-01P fullName: type: string example: John Taylor phone: type: string example: +44 (0)20 7466 2430 fax: type: string example: +44 (0)20 7374 0888 email: type: string example: john.taylor@hsf.com RequestItemDto: type: object properties: id: type: string FailedItemDto: type: object properties: id: type: string example: 420962-68 reason: type: string example: 429 TOO_MANY_REQUESTS enum: - 400 BAD_REQUEST - 401 UNAUTHORIZED - 402 PAYMENT_REQUIRED - 403 FORBIDDEN - 404 NOT_FOUND - 405 METHOD_NOT_ALLOWED - 415 UNSUPPORTED_MEDIA_TYPE - 429 TOO_MANY_REQUESTS - 500 INTERNAL_SERVER_ERROR - 503 SERVICE_UNAVAILABLE message: type: string example: '{LIMIT_TYPE} rate limit exceeded. Please wait until rate limit period is renewed' BulkStatsDto: type: object properties: total: type: integer format: int32 matched: type: integer format: int32 noData: type: integer format: int32 unmatched: type: integer format: int32 duplicates: type: integer format: int32 NoDataItemDto: type: object properties: id: type: string BulkRequestDto: type: object properties: items: type: array items: $ref: '#/components/schemas/RequestItemDto' DuplicatedItemDto: type: object properties: id: type: string example: 420962-68 occurrence: type: integer format: int32 example: 1 PersonBioDto: type: object properties: personId: type: string example: 195066-01P personName: $ref: '#/components/schemas/PersonNameDto' yearOfBirth: type: integer format: int32 example: 1970 biography: type: string example: Mr. John Taylor serves as Partner at Herbert Smith Freehills. He helps clients achieve the best outcome on private equity investments, including private equity real estate, infrastructure and energy. He works with investors, corporates and management teams on significant and high-profile transactions, including UK and international buyouts, mergers, acquisitions, disposals, takeovers, joint ventures, equity financing and management equity incentives. The focus of John's work is acting for private equity funds on investments and disposals. John also brings his investor-side experience to bear in acting for management teams and investee companies in relation to private equity investments. linkedInProfileUrl: type: string example: http://www.linkedin.com/in/john-taylor-b99 gender: type: string example: Male primaryEntityId: type: string example: 10352-44 primaryEntityName: type: string example: Herbert Smith Freehills primaryEntityType: type: string example: Service Provider primaryEntityWebsite: type: string example: www.herbertsmithfreehills.com primaryPosition: type: string example: Partner primaryOffice: $ref: '#/components/schemas/EntityOfficeDto' BoardSeatDto: type: object properties: boardCompanyId: type: string example: 41161-24 boardCompanyName: type: string example: Nvidia boardRepresentingId: type: string example: 10067-86 boardRepresentingName: type: string example: Cooley positionStatus: type: string example: Current boardStart: type: string format: date example: '2009-01-01' boardFinish: type: string format: date PersonEducationInfoDto: type: object properties: institution: type: string example: University of Chicago Law School degree: type: string example: Graduate yearOfGraduation: type: integer format: int32 example: 2006 ErrorDto: type: object properties: reason: type: string enum: - 100 CONTINUE - 101 SWITCHING_PROTOCOLS - 102 PROCESSING - 103 EARLY_HINTS - 103 CHECKPOINT - 200 OK - 201 CREATED - 202 ACCEPTED - 203 NON_AUTHORITATIVE_INFORMATION - 204 NO_CONTENT - 205 RESET_CONTENT - 206 PARTIAL_CONTENT - 207 MULTI_STATUS - 208 ALREADY_REPORTED - 226 IM_USED - 300 MULTIPLE_CHOICES - 301 MOVED_PERMANENTLY - 302 FOUND - 302 MOVED_TEMPORARILY - 303 SEE_OTHER - 304 NOT_MODIFIED - 305 USE_PROXY - 307 TEMPORARY_REDIRECT - 308 PERMANENT_REDIRECT - 400 BAD_REQUEST - 401 UNAUTHORIZED - 402 PAYMENT_REQUIRED - 403 FORBIDDEN - 404 NOT_FOUND - 405 METHOD_NOT_ALLOWED - 406 NOT_ACCEPTABLE - 407 PROXY_AUTHENTICATION_REQUIRED - 408 REQUEST_TIMEOUT - 409 CONFLICT - 410 GONE - 411 LENGTH_REQUIRED - 412 PRECONDITION_FAILED - 413 PAYLOAD_TOO_LARGE - 413 REQUEST_ENTITY_TOO_LARGE - 414 URI_TOO_LONG - 414 REQUEST_URI_TOO_LONG - 415 UNSUPPORTED_MEDIA_TYPE - 416 REQUESTED_RANGE_NOT_SATISFIABLE - 417 EXPECTATION_FAILED - 418 I_AM_A_TEAPOT - 419 INSUFFICIENT_SPACE_ON_RESOURCE - 420 METHOD_FAILURE - 421 DESTINATION_LOCKED - 422 UNPROCESSABLE_ENTITY - 423 LOCKED - 424 FAILED_DEPENDENCY - 425 TOO_EARLY - 426 UPGRADE_REQUIRED - 428 PRECONDITION_REQUIRED - 429 TOO_MANY_REQUESTS - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - 451 UNAVAILABLE_FOR_LEGAL_REASONS - 500 INTERNAL_SERVER_ERROR - 501 NOT_IMPLEMENTED - 502 BAD_GATEWAY - 503 SERVICE_UNAVAILABLE - 504 GATEWAY_TIMEOUT - 505 HTTP_VERSION_NOT_SUPPORTED - 506 VARIANT_ALSO_NEGOTIATES - 507 INSUFFICIENT_STORAGE - 508 LOOP_DETECTED - 509 BANDWIDTH_LIMIT_EXCEEDED - 510 NOT_EXTENDED - 511 NETWORK_AUTHENTICATION_REQUIRED message: type: string BulkResultDtoPersonBioDto: type: object properties: stats: $ref: '#/components/schemas/BulkStatsDto' matched: type: array items: $ref: '#/components/schemas/PersonBioDto' noData: type: array items: $ref: '#/components/schemas/NoDataItemDto' unmatched: type: array items: $ref: '#/components/schemas/FailedItemDto' duplicates: type: array items: $ref: '#/components/schemas/DuplicatedItemDto' PersonEducationWorkDto: type: object properties: personId: type: string example: 195066-01P fullName: type: string example: John Taylor education: type: array items: $ref: '#/components/schemas/PersonEducationInfoDto' companyRoles: type: array items: $ref: '#/components/schemas/CompanyRoleDto' boardSeats: type: array items: $ref: '#/components/schemas/BoardSeatDto' currentAdvisoryRoles: type: array items: $ref: '#/components/schemas/CurrentAdvisoryRoleDto' dealRoles: type: array items: $ref: '#/components/schemas/DealRoleDto' fundRoles: type: array items: $ref: '#/components/schemas/FundRoleDto' EntityOfficeDto: type: object properties: location: type: string example: Chicago, IL addressLine1: type: string example: 69 West Monroe Street addressLine2: type: string example: Suite 190 city: type: string example: Chicago stateProvince: type: string example: IL postCode: type: string example: '60661' country: type: string example: United States phone: type: string example: +1 (312) 902-6655 fax: type: string example: +1 (312) 902-5655 email: type: string example: office.email@gmail.com globalRegion: type: string example: Americas globalSubRegion: type: string example: North America CompanyRoleDto: type: object properties: companyId: type: string example: 10352-44 companyName: type: string example: Herbert Smith Freehills position: type: string example: Partner positionType: type: string example: Employee positionStatus: type: string example: Current positionStart: type: string format: date example: '2011-05-01' positionFinish: type: string format: date example: '2015-05-01' FundRoleDto: type: object properties: fundId: type: string example: 15021-28F fundName: type: string example: Crossroads Capital II investorId: type: string example: 62181-28 investorName: type: string example: The We Company representingId: type: string example: 172739-35 representingName: type: string example: DocuTouch SearchPageStatsDto_SearchView: type: object properties: total: type: integer format: int32 example: 1 perPage: type: integer format: int32 example: 25 page: type: integer format: int32 example: 1 lastPage: type: integer format: int32 example: 1 PersonNameDto: type: object properties: full: type: string example: John Taylor first: type: string example: John last: type: string example: Taylor middle: type: string example: M. prefix: type: string example: Mr. suffix: type: string example: JD UpdateDto: type: object properties: updates: type: object additionalProperties: type: string example: '{"Endpoint name":"Update Status (true/false)"}' example: Endpoint name: Update Status (true/false) AdvancedSearchPageDtoPersonAdvancedSearchResultDto_SearchView: type: object properties: stats: $ref: '#/components/schemas/SearchPageStatsDto_SearchView' items: type: array items: $ref: '#/components/schemas/PersonAdvancedSearchResultDto_SearchView' PersonAdvancedSearchResultDto_SearchView: type: object properties: personId: type: string example: 11397-61P personName: type: string example: Stephen Neal firmId: type: string example: 164076-94 sandbox: type: boolean example: false DictionaryDto: type: object properties: code: type: string example: Dictionary code description: type: string example: Dictionary Code Description DealRoleDto: type: object properties: dealId: type: string example: 120048-04T dealDate: type: string format: date example: '2019-01-08' companyId: type: string example: 12774-34 companyName: type: string example: Synamedia representingId: type: string example: 10352-44 representingName: type: string example: Herbert Smith Freehills CurrentAdvisoryRoleDto: type: object properties: companyId: type: string example: 164076-94 companyName: type: string example: Spacemob companyType: $ref: '#/components/schemas/DictionaryDto' position: type: string example: Advisor positionStart: type: string format: date example: '2014-08-23' securitySchemes: pbToken: type: apiKey name: Authorization in: header scheme: bearer bearerFormat: JWT