Person Schema
Overview
This page details the Person Data that we provide through our Person APIs, such as Person Enrichment and Person Search.
Field Availability
Not all fields are available in all bundles.
Free plans, by default, do not have access to contact fields like emails, phone numbers, and street addresses and will instead appear as true if the value exists or false if it does not. To unlock the values, please upgrade to a Pro plan. Read more here: Plan types: Free vs Pro
- For more information about data formatting, see Data Types and Data Formatting
- For a full example record, see Example Person Record.
- For a simplified overview of our person fields, check out the Person Data Overview.
- For more details about our person fields, including fill rates and which fields are included in the base vs premium field bundles, check out our Person Stats pages.
- For a full data ingestion JSON schema, check out this page.
- If you'd like access to premium fields or have questions about which fields are included in your specific field bundle(s), please speak to one of our data consultants.
Identifiers
first_name
first_name
Description | The person's first name. |
---|---|
Data Type | String |
Field Details
The person's first name.
Example
"first_name": "sean"
full_name
full_name
Description | The person's full name. |
---|---|
Data Type | String |
Field Details
The first and the last name fields appended with a space.
Example
"full_name": "sean thorne"
id
id
Description | A unique persistent identifier for the person. |
---|---|
Data Type | String |
Field Details
The ID is a unique, persistent, and hashed value that represents a specific person.
As of v24, IDs have a max length of 64 characters, although in practice we expect IDs to be closer to 32 characters in length.
See https://docs.peopledatalabs.com/docs/persistent-ids for more information.
Example
"id": "qEnOZ5Oh0poWnQ1luFBfVw_0000"
last_initial
last_initial
Description | The first letter of the person's last name. |
---|---|
Data Type | String (1 character) |
Field Details
The first letter of the person's last name.
Example
"last_initial": "t"
last_name
last_name
Description | The person's last name. |
---|---|
Data Type | String |
Field Details
The person's last name.
Example
"last_name": "thorne"
middle_initial
middle_initial
Description | The first letter of the person's middle name. |
---|---|
Data Type | String (1 character) |
Field Details
The first letter of the person's middle name.
Example
"middle_initial": "f"
middle_name
middle_name
Description | The person's middle name. |
---|---|
Data Type | String |
Field Details
The person's middle name.
Example
"middle_name": "fong"
name_aliases
name_aliases
Description | Any other names the person goes by. |
---|---|
Data Type | Array [String] |
Field Details
Any associated names or aliases besides the primary one used in the full_name
field.
Sort Order
Name aliases are sorted with the primary alias first. The remaining aliases are sorted by
num_sources
,last_seen
,first_seen
,full_name
, all in reverse order (highest first, most recent, Z→A):
- Primary name first
num_sources
(highest first)last_seen
(most recent first)first_seen
(most recent first)full_name
(Z→A)
Example
"name_aliases": [
"andrew nichol",
"r andrew nichol",
"robert nichol"
]
Contact Information
emails
emails
Description | Email addresses associated with the person. |
---|---|
Data Type | Array [Object] |
Field Details
Each email associated with the person will be added to this list as its own object.
Field | Data Type | Description |
---|---|---|
address | String | The fully parsed email address |
first_seen | String (Date) | The date that this entity was first associated with the Person record. |
last_seen | String (Date) | The date that this entity was last associated with the Person record. |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this entity with the Person record. |
type | Enum (String) | The type of email address. Must be one of our Canonical Email Types |
Sort Order
Emails are sorted first by
last_seen
, then byfirst_seen
,
last_seen
(most recent first)first_seen
(most recent first)
Example
"emails": [
{
"address": "[email protected]",
"type": "current_professional",
"first_seen": "2017-06-02",
"last_seen": "2019-07-18",
"num_sources": 17
},
{
"address": "[email protected]",
"type": "personal",
"first_seen": "2017-06-02",
"last_seen": "2019-07-18",
"num_sources": 17
}
]
mobile_phone
mobile_phone
Description | The personal mobile phone associated with this individual. Mobile phones can only be associated with 1 person in the PDL data. |
---|---|
Data Type | String (Phone) |
Field Details
The mobile_phone
field is generated from a highly confident source of mobile phones. We've hand-validated a sample of these and seen over 90% accuracy.
Example
"mobile_phone": "+15558675309"
personal_emails
personal_emails
Description | All personal emails associated with the person. |
---|---|
Data Type | Array [String] |
Field Details
The list of all emails
tagged as type = personal
.
Sort Order
Personal emails are sorted with the recommended personal email first. The remaining emails are sorted in the same order as the
emails
array:last_seen
, then byfirst_seen
,
- Recommended personal email first
last_seen
(most recent first)first_seen
(most recent first)
Example
"personal_emails": [
"[email protected]"
]
phone_numbers
phone_numbers
Description | All phone numbers associated with the person. |
---|---|
Data Type | Array [String (Phone)] |
Field Details
For more detailed metadata on individual phone numbers, see the phones
field.
Sort Order
Phone numbers are sorted with any mobile phone numbers first. The rest of the array is sorted by
num_sources
,last_seen
,first_seen
, all in reverse order and using the E.164 format (highest first, most recent first):
- Mobile phone numbers first
num_sources
(highest first)last_seen
(most recent first)first_seen
(most recent first)
Example
"phone_numbers": [
"+15558675309"
]
phones
phones
Description | The list of phone numbers associated with this record with additional metadata. |
---|---|
Data Type | Array [Object] |
Field Details
Each phone number object in this list will contain the following information.
Field | Data Type | Description |
---|---|---|
first_seen | String (Date) | The date that this number was first associated with this record. |
last_seen | String (Date) | The date that this number was last associated with this record. |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this profile with this record. |
number | String (Phone) | The phone number. |
Sort Order
Phones are sorted with any mobile phone numbers first. The rest of the array is sorted by
num_sources
,last_seen
,first_seen
, all in reverse order and using the E.164 format (highest first, most recent first):
- Mobile phone numbers first
num_sources
(highest first)last_seen
(most recent first)first_seen
(most recent first)
Example
"phones": [
{
"number": "+15558675309",
"first_seen": "2017-06-02",
"last_seen": "2019-07-18",
"num_sources": 17
}
]
recommended_personal_email
recommended_personal_email
Description | The best available email to reach a person. |
---|---|
Data Type | String |
Field Details
This field is generated by analyzing the all of a person's emails in the personal_emails
list to identify the best available email.
Through testing, we’ve found that using the email identified in recommended_personal_email
versus selecting a random email address from personal_emails
resulted in ~37% higher deliverability.
Example
"recommended_personal_email": "[email protected]"
work_email
work_email
Description | The person's current work email. |
---|---|
Data Type | String |
Field Details
The value for this field must use valid email address formatting. It is common and expected that work email domains may differ from the company's website for a number of reasons:
- The company changed their website domain
- The company has opted for a shorter email domain
- The company has been merged into or was acquired by another company
Example
"work_email": "[email protected]"
Current Company
These fields describe the company the person currently works at. These fields will match the corresponding values in our Company Schema and will use the same formatting and parsing logic.
job_company_12mo_employee_growth_rate
job_company_12mo_employee_growth_rate
Description | The person’s current company’s percentage increase in total headcount over the past 12 months. Mapped from employee_growth_rate.12_month .Growth rate is calculated as (current_employee_count / previous_employee_count) - 1 . |
---|---|
Data Type | Float |
Example
"job_company_12mo_employee_growth_rate": -0.1379
job_company_facebook_url
job_company_facebook_url
Description | The person's current company's Facebook URL. |
---|---|
Data Type | String |
Example
"job_company_facebook_url": "facebook.com/peopledatalabs"
job_company_founded
job_company_founded
Description | The person's current company's founding year. |
---|---|
Data Type | Integer (> 0) |
Example
"job_company_founded": 2015
job_company_employee_count
job_company_employee_count
Description | The total number of PDL profiles associated with the person’s current company. Mapped from employee_count . |
---|---|
Data Type | Integer (>= 0) |
Example
"job_company_employee_count": 125
job_company_id
job_company_id
Description | The person's current company's PDL ID. |
---|---|
Data Type | String |
Example
"job_company_id": "tnHcNHbCv8MKeLh92946LAkX6PKg"
job_company_industry
job_company_industry
Description | The person's current company's industry. |
---|---|
Data Type | Enum (String) |
Example
"job_company_industry": "computer software"
job_company_inferred_revenue
job_company_inferred_revenue
Description | The estimated annual revenue range in USD of the person’s current company. |
---|---|
Data Type | Enum (String) |
Example
"job_company_inferred_revenue": "$25M-$50M"
job_company_linkedin_id
job_company_linkedin_id
Description | The person's current company's LinkedIn ID. |
---|---|
Data Type | String |
Example
"job_company_linkedin_id": "18170482"
job_company_linkedin_url
job_company_linkedin_url
Description | The person's current company's LinkedIn URL. |
---|---|
Data Type | String |
Example
"job_company_linkedin_url": "linkedin.com/company/peopledatalabs"
job_company_location_address_line_2
job_company_location_address_line_2
Description | The person's current company's headquarters' street address line 2. |
---|---|
Data Type | String |
Example
"job_company_location_address_line_2": "suite 1670"
job_company_location_continent
job_company_location_continent
Description | The person's current company's headquarters' continent. |
---|---|
Data Type | Enum (String) |
Example
"job_company_location_continent": "north america"
job_company_location_country
job_company_location_country
Description | The person's current company's headquarters' country. |
---|---|
Data Type | Enum (String) |
Example
"job_company_location_country": "united states"
job_company_location_geo
job_company_location_geo
Description | The person's current company's headquarters' city-center geographic coordinates. |
---|---|
Data Type | String |
Example
"job_company_location_geo": "37.77,-122.41"
job_company_location_locality
job_company_location_locality
Description | The person's current company's headquarters' locality. |
---|---|
Data Type | String |
Example
"job_company_location_locality": "san francisco"
job_company_location_metro
job_company_location_metro
Description | The person's current company's headquarters' metro area. |
---|---|
Data Type | Enum (String) |
Example
"job_company_location_metro": "san francisco, california"
job_company_location_name
job_company_location_name
Description | The person's current company's headquarters' location name. |
---|---|
Data Type | String |
Example
"job_company_location_name": "san francisco, california, united states"
job_company_location_postal_code
job_company_location_postal_code
Description | The person's current company's headquarters' postal code. |
---|---|
Data Type | String |
Example
"job_company_location_postal_code": "94105"
job_company_location_region
job_company_location_region
Description | The person's current company's headquarters' region. |
---|---|
Data Type | String |
Example
"job_company_location_region": "california"
job_company_location_street_address
job_company_location_street_address
Description | The person's current company's headquarters' street address. |
---|---|
Data Type | String |
Example
"job_company_location_street_address": "455 market st"
job_company_name
job_company_name
Description | The person's current company's name. |
---|---|
Data Type | String |
Example
"job_company_name": "people data labs"
job_company_size
job_company_size
Description | The person's current company's size range. |
---|---|
Data Type | Enum (String) |
Example
"job_company_size": "51-200"
job_company_ticker
job_company_ticker
Description | The person's current company's ticker. |
---|---|
Data Type | String |
Example
"job_company_ticker": "goog"
job_company_total_funding_raised
job_company_total_funding_raised
Description | The cumulative amount of money raised in USD by the person’s current company during all publicly disclosed funding rounds. |
---|---|
Data Type | Integer (> 0) |
Example
"job_company_total_funding_raised": 55250000.0
job_company_twitter_url
job_company_twitter_url
Description | The person's current company's Twitter URL. |
---|---|
Data Type | String |
Example
"job_company_twitter_url": "twitter.com/peopledatalabs"
job_company_type
job_company_type
Description | The person's current company's type. |
---|---|
Data Type | Enum (String) |
Example
"job_company_type": "public"
job_company_website
job_company_website
Description | The person's current company's website. |
---|---|
Data Type | String |
Example
"job_company_website": "peopledatalabs.com"
Current Job
These fields describe the person's most recent work experience.
inferred_salary
inferred_salary
Description | The inferred salary range (USD) for the person's current job. |
---|---|
Data Type | Enum (String) |
Field Details
Must be one of our Canonical Inferred Salary Ranges.
Example
"inferred_salary": "70,000-85,000"
job_last_changed
job_last_changed
Description | The timestamp that reflects when the top-level job information changed. |
---|---|
Data Type | String (Date) |
Field Details
An update is the time when the current employment information is modified in the record.
Limitations of Observed Data
This field reflects observed data. This means that this timestamp will reflect the date when updates were propagated into our data build from our data sources, and may contain some lag time compared to real-life events. For example, if User A changed their job on October 1, 2023, but did not update that publicly until December 1, 2023, our timestamp for job_last_changed will be December.
Example
"job_last_changed": "2023-12-01"
Description | The timestamp that reflects when the top level job information was last validated by a data source. |
---|---|
Data Type | String (Date) |
Field Details
An update is the time when the information in a record is validated through a data source. For more information how this timestamp is generated see: Experience & Location Updates
Example
"job_last_verified": "2024-01-05"
job_onet_broad_occupation
job_onet_broad_occupation
Description | The O*NET Broad Occupation associated with the person’s current job title. |
---|---|
Data Type | String |
Example
"job_onet_broad_occupation": "Chief Executives"
job_onet_code
job_onet_code
Description | The 8-digit O*NET code for the person’s current job title. |
---|---|
Data Type | String |
Field Details
The 8-digit O*NET code for the person’s current job title, following the 2018 SOC guidelines.
Example
"job_onet_code": "11-1011.00"
job_onet_major_group
job_onet_major_group
Description | The O*NET Major Group associated with the person’s current job title. |
---|---|
Data Type | String |
Example
"job_onet_major_group": "Management Occupations"
job_onet_minor_group
job_onet_minor_group
Description | The O*NET Minor Group associated with the person’s current job title. |
---|---|
Data Type | String |
Example
"job_onet_minor_group": "Top Executives"
job_onet_specific_occupation
job_onet_specific_occupation
Description | The O*NET Specific Occupation associated with the person’s current job title. |
---|---|
Data Type | String |
Example
"job_onet_specific_occupation": "Chief Executives"
job_onet_specific_occupation_detail
job_onet_specific_occupation_detail
Description | A more detailed job title classification than O*NET Specific Occupation. |
---|---|
Data Type | String |
Field Details
A more detailed job title for records where the specific occupation within O*NET's standard hierarchy isn't granular enough to accurately describe the job title.
For example, the highest level of granularity in O*NET for C-suite positions is Chief Executives. With this field, we can specify the type of executive role.
Example
"job_onet_specific_occupation_detail": "Chief Technology Officer"
job_start_date
job_start_date
Description | The date the person started their current job. |
---|---|
Data Type | String (Date) |
Example
"job_start_date": "2015-03"
job_summary
job_summary
Description | User-inputted summary of their current job. |
---|---|
Data Type | String |
Field Details
The summary is lowercased, but otherwise kept as-is from the raw source.
Example
"job_summary": "worked on the \"search analytics\" team to understand our users better"
job_title
job_title
Description | The person's current job title. |
---|---|
Data Type | String |
Field Details
The person's current job title.
Example
"job_title": "co-founder and chief executive officer"
job_title_class
job_title_class
Description | The expense line item category this employee would fall into. |
---|---|
Data Type | Enum (String) |
Field Details
Each class in the list will be one of our Canonical Job Title Classes.
Example
"job_title_class": "research_and_development"
job_title_levels
job_title_levels
Description | The derived level(s) of the person's current job title. |
---|---|
Data Type | Array [Enum (String)] |
Field Details
Each level in the list will be one of our Canonical Job Title Levels.
Job Title Levels Hierarchy from "least important" to "most important":
Note: The cxo
level is a catch-all for "Chief __ Officer" roles, so a CEO, CIO, CTO, etc. will all have job_title_levels: ["cxo"]
.
Example
"job_title_levels": ["cxo", "owner"]
job_title_role
job_title_role
Description | The derived role of the person's current job title. |
---|---|
Data Type | Enum (String) |
Field Details
The value will be one of our Canonical Job Roles.
Major Update as of v29.1 (February 29.1)
In v29.1 (February 2024) we made significant improvements to our role and sub_role categorizations and updated many of the canonical values associated with these fields.
Please see our February 2025 Release Notes (v29.1)for further information.
Example
"job_title_role": "operations"
job_title_sub_role
job_title_sub_role
Description | The derived subrole of the person's current job title. |
---|---|
Data Type | Enum (String) |
Field Details
The value will be one of our Canonical Job Sub Roles. Each subrole maps to a role. See https://docs.peopledatalabs.com/docs/title-subroles-to-roles for a complete mapping list.
Major Update as of v29.1 (February 29.1)
In v29.1 (February 2024) we made significant improvements to our role and sub_role categorizations and updated many of the canonical values associated with these fields.
Please see our February 2025 Release Notes (v29.1)for further information.
Example
"job_title_sub_role": "logistics"
Demographics
birth_date
birth_date
Description | The day the person was born. |
---|---|
Data Type | String (Date) |
Field Details
If this field exists, birth_year
will agree with it.
Example
"birth_date": "1990-12-02"
birth_year
birth_year
Description | The year the person was born. |
---|---|
Data Type | Integer |
Field Details
The approximated birth year associated with this person profile. If a profile has a birth_date
, the birth_year
field will match it.
Example
"birth_year": 1990
sex
sex
gender
was renamed tosex
in v26.0In v26.0 (April 2024) we renamed this field from
gender
tosex
, in accordance with legislative changes defining aspects of gender as sensitive personal data (which PDL does not process or output).Please see our April 2024 Release Announcement (v26.0) for further information.
Description | The person's sex. |
---|---|
Data Type | Enum (String) |
Field Details
The value will always be one of our Canonical Sex.
Example
"sex": "male"
languages
languages
Description | Languages the person knows. |
---|---|
Data Type | Array [Object] |
Field Details
The languages listed are based on user input, we do not verify them.
Field | Data Type | Description |
---|---|---|
name | Enum (String) | The language. Must be one of our Canonical Languages. |
proficiency | Integer (1-5) | Self-ranked language proficiency from 1 (limited) to 5 (fluent). |
Sort Order
Languages are sorted by
proficiency
first, followed byname
, all in reverse order (highest proficiency first, Z→A):
proficiency
(highest first)name
(Z→A)
Example
"languages": [
{
"name": "english",
"proficiency": 5
}
]
Education
education
education
Description | The person's education information. |
---|---|
Data Type | Array [Object] |
Field Details
The education objects associated with this person profile, which, when output in CSV format, have indexing based on recency and associativity.
Each education object in the list will include the following data:
Field | Data Type | Description |
---|---|---|
degrees | Array [Enum (String)] | The degrees the person earned at the school. All values will be Canonical Education Degrees |
end_date | String (Date) | The date the person left the school. If the person is still at the school, will be null . |
gpa | Float | The GPA the person earned at the school. |
majors | Array [Enum (String)] | All majors earned at the school. All values will be Canonical Education Majors. |
minors | Array [Enum (String)] | All minors earned at the school. All values will be Canonical Education Majors. |
raw | Array [String] | Raw education data that was parsed into the degrees , majors , and minors fields. |
school | Object | The school the person attended. |
start_date | String (Date) | The date the person started at the school. |
summary | String | User-inputted summary of their education. |
Sort Order
Education entries are sorted first by
start_date
, then byend_date
. If dates are identical, then sorting occurs byschool.name
, followed bymajors
,minors
anddegrees
, all in reverse order (most recent first, Z→A):
start_date
(most recent first)end_date
(most recent first)school.name
(Z→A)- countries
majors
(Z→A)minors
(Z→A)degrees
(Z→A)
education.school
education.school
To tap into our school matching logic, use our School Cleaner API to retrieve possible school values.
Field | Sub Field | Data Type | Description |
---|---|---|---|
domain | String | The primary website domain associated with the school. | |
facebook_url | String | The school's Facebook URL | |
id | String | The NON-PERSISTENT ID for the school in our records. | |
linkedin_id | String | The school's LinkedIn ID | |
linkedin_url | String | The school's LinkedIn URL | |
location | Object | The location of the school. See Common Location Fields for detailed field descriptions. | |
continent | Enum (String) | ||
country | Enum (String) | ||
locality | String | ||
name | String | ||
region | String | ||
name | String | The name of the school. | |
raw | Array [String] | Raw school name. | |
twitter_url | String | The school's Twitter URL | |
type | Enum (String) | The school type. Will be one of our Canonical School Types. | |
website | String | The website URL associated with the school, which could include subdomains. |
Example
"education": [
{
"school": {
"name": "university of oregon",
"type": "post-secondary institution",
"id": "64LkgfdwWYkCC2TjbldMDQ_0",
"location": {
"name": "eugene, oregon, united states",
"locality": "eugene",
"region": "oregon",
"country": "united states",
"continent": "north america"
},
"linkedin_url": "linkedin.com/school/university-of-oregon",
"linkedin_id": "19207",
"facebook_url": "facebook.com/universityoforegon",
"twitter_url": "twitter.com/uoregon",
"website": "uoregon.edu",
"domain": "uoregon.edu",
"raw": [
"university of oregon"
]
},
"end_date": "2014",
"start_date": "2010",
"gpa": null,
"degrees": [],
"majors": [
"entrepreneurship"
],
"minors": [],
"raw": [
"data analytics & entrepreneurship",
", entrepreneurship",
"entrepreneurship"
],
"summary": "when i was at oregon i volunteered at a local homeless shelter 3 days a week"
},
]
Location
For more information on our standard location fields, see https://docs.peopledatalabs.com/docs/data-types#locations.
countries
countries
Description | All countries associated with the person. |
---|---|
Data Type | Array [Enum (String)] |
Sort Order
Countries are sorted using location sort order, with any duplicate countries removed.
Location Sort Order
Locations are sorted by primary location first. The remaining locations are sorted by
first_seen
,last_seen
,location_name
,street_address
, thenaddress_line_2
in descending order (most recent first, Z→A):
- Primary location first
- Sort by
first_seen
(most recent first)- Sort by
last_seen
(most recent first)- Sort by
location_name
(Z→A)- Sort by
street_address
(Z→A)- Sort by
address_line_2
(Z→A)
Example
"countries": [
"united states"
]
location_address_line_2
location_address_line_2
Description | The person's current street address line 2. |
---|---|
Data Type | String |
Example
"location_address_line_2": "apartment 12"
location_continent
location_continent
Description | The continent of the person's current address. One of our Canonical Continents. |
---|---|
Data Type | Enum (String) |
Example
"location_continent": "north america"
location_country
location_country
Description | The country of the person's current address. One of our Canonical Countries. |
---|---|
Data Type | Enum (String) |
Example
"location_country": "united states"
location_geo
location_geo
Description | The geo code of the city center of the person's current address. |
---|---|
Data Type | String |
Example
"location_geo": "37.87,-122.27"
location_last_updated
location_last_updated
Description | The timestamp that a new data source contributed to the record for the person's current address. |
---|---|
Data Type | String (Date) |
Field Details
An update is the time when either new information is added to the record or existing information is validated.
Example
"location_last_updated": "2018-11-05"
location_locality
location_locality
Description | The locality of the person's current address. |
---|---|
Data Type | String |
Example
"location_locality": "berkeley"
location_metro
location_metro
Description | The metro of the person's current address. One of our Canonical Metros. |
---|---|
Data Type | Enum (String) |
Example
"location_metro": "san francisco, california"
location_name
location_name
Description | The location of the person's current address. |
---|---|
Data Type | String |
Example
"location_name": "berkeley, california, united states"
location_names
location_names
Description | All location names associated with the person. |
---|---|
Data Type | Array [String] |
Sort Order
Location names are sorted by location order with duplicate names removed
Location Sort Order
Locations are sorted by primary location first. The remaining locations are sorted by
first_seen
,last_seen
,location_name
,street_address
, thenaddress_line_2
in descending order (most recent first, Z→A):
- Primary location first
- Sort by
first_seen
(most recent first)- Sort by
last_seen
(most recent first)- Sort by
location_name
(Z→A)- Sort by
street_address
(Z→A)- Sort by
address_line_2
(Z→A)
Example
"location_names": [
"berkeley, california, united states",
"san francisco, california, united states"
]
location_postal_code
location_postal_code
Description | The postal code of the person's current address. |
---|---|
Data Type | String |
Example
"location_postal_code": "94704"
location_region
location_region
Description | The region of the person's current address. |
---|---|
Data Type | String |
Example
"location_region": "california"
location_street_address
location_street_address
Description | The person's current street address. |
---|---|
Data Type | String |
Example
"location_street_address": "455 fake st"
regions
regions
Description | All regions associated with the person. |
---|---|
Data Type | Array [String] |
Sort Order
Regions are sorted by location order, with any duplicate regions removed.
Location Sort Order
Locations are sorted by primary location first. The remaining locations are sorted by
first_seen
,last_seen
,location_name
,street_address
, thenaddress_line_2
in descending order (most recent first, Z→A):
- Primary location first
- Sort by
first_seen
(most recent first)- Sort by
last_seen
(most recent first)- Sort by
location_name
(Z→A)- Sort by
street_address
(Z→A)- Sort by
address_line_2
(Z→A)
Example
"regions": [
"california, united states"
]
street_addresses
street_addresses
Description | All street addresses associated with the person. |
---|---|
Data Type | Array [Object] |
Field Details
Each address associated with the person will be added to this list as its own object.
In addition to the Common Location Fields, street_addresses
will also include:
Field | Data Type | Description |
---|---|---|
first_seen | String (Date) | The date that this entity was first associated with the Person record. |
last_seen | String (Date) | The date that this entity was last associated with the Person record. |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this entity with the Person record. |
Sort Order
Street addresses are sorted by location order.
Location Sort Order
Locations are sorted by primary location first. The remaining locations are sorted by
first_seen
,last_seen
,location_name
,street_address
, thenaddress_line_2
in descending order (most recent first, Z→A):
- Primary location first
- Sort by
first_seen
(most recent first)- Sort by
last_seen
(most recent first)- Sort by
location_name
(Z→A)- Sort by
street_address
(Z→A)- Sort by
address_line_2
(Z→A)
Example
"street_addresses": [
{
"name": "berkeley, california, united states",
"locality": "berkeley",
"metro": "san francisco, california",
"region": "california",
"country": "united states",
"continent": "north america",
"street_address": "455 fake st",
"address_line_2": "apartment 12",
"postal_code": "94704",
"geo": "37.87,-122.27",
"first_seen": "2017-06-02",
"last_seen": "2019-07-18",
"num_sources": 17
}
]
Lower Confidence Data
PDL values high confidence data that is very likely to be associated with a person. The data in these fields have lower confidence than the data used in other fields.
possible_birth_dates
possible_birth_dates
Description | Birthdays associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [String (Date)] |
Field Details
The dates in this field use the same format as the birth_date
field.
Sort Order
Possible birth dates are sorted by
num_sources
,last_seen
,first_seen
,birth_date
, all in reverse order (highest first, most recent first):
num_sources
(highest first)last_seen
(most recent first)first_seen
(most recent first)birth_date
(most recent first)
Example
"possible_birth_dates": [
"1991-05-26",
"1992-05-26"
]
possible_emails
possible_emails
Description | Email addresses associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [Object] |
Field Details
This field uses the same format as the emails
field.
Sort Order
Possible emails are sorted by
last_seen
,first_seen
,
last_seen
(most recent first)first_seen
(most recent first)
Example
"possible_emails": [
{
"address": "[email protected]",
"type": null,
"first_seen": "2021-06-13",
"last_seen": "2021-06-13",
"num_sources": 2
}
]
possible_location_names
possible_location_names
Description | Locations associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [String] |
Field Details
This field uses the same format as the location_names
field.
Possible locations are inferred based on phone area codes, university location, and other associations.
Sort Order
Possible locations are sorted by
first_seen
,last_seen
,location.name
, all in reverse order (most recent first, Z→A):
first_seen
(most recent first)last_seen
(most recent first)location.name
(Z→A)
Example
"possible_location_names": [
"berkeley, california, united states",
"san francisco, california, united states"
]
possible_phones
possible_phones
Description | Phone numbers associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [Object] |
Field Details
This field uses the same format as the phones
field.
Sort Order
Possible phones are sorted by
num_sources
,last_seen
,first_seen
, all in reverse order and using the E.164 format (highest first, most recent first):
num_sources
(highest first)last_seen
(most recent first)first_seen
(most recent first)
Example
"possible_phones": [
{
"number": "+15558675309",
"first_seen": "2021-06-13",
"last_seen": "2021-06-13",
"num_sources": 2
}
]
possible_profiles
possible_profiles
Description | Social profiles associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [Object] |
Field Details
This field uses the same format as the profiles
field.
Sort Order
Possible profiles are sorted first by return status codes (200 > unknown > 404). The array is then sorted by number of profiles globally,
last_seen
,first_seen
,username
,id
, all in reverse order (highest first, most recent first, Z→A):
- Status Codes:
- Profiles with 200 return status codes are first
- Profiles with unknown return status codes come next
- Profiles with 404 return status codes are placed last
- Number of profiles globally (highest first)
last_seen
(most recent first)first_seen
(most recent first)username
(Z→A)id
(Z→A)
Example
"possible_profiles": [
{
"network": "linkedin",
"id": "145991517",
"url": "linkedin.com/in/seanthorne",
"username": "seanthorne",
"first_seen": "2021-06-13",
"last_seen": "2021-06-13",
"num_sources": 2
}
]
possible_street_addresses
possible_street_addresses
Description | Addresses associated with this person that have a lower level of confidence. |
---|---|
Data Type | Array [Object] |
Field Details
This field uses the same format as the street_addresses
field.
Sort Order
Possible street addresses are sorted by
first_seen
,last_seen
,location.name
,location.street_address
,location.address_line_2
, all in reverse order (most recent first, Z→A):
first_seen
(most recent first)last_seen
(most recent first)location.name
(Z→A)location.street_address
(Z→A)location.address_line_2
(Z→A)
Example
"possible_street_addresses": [
{
"name": "berkeley, california, united states",
"locality": "berkeley",
"metro": "san francisco, california",
"region": "california",
"country": "united states",
"continent": "north america",
"street_address": "455 fake st",
"address_line_2": "apartment 12",
"postal_code": "94704",
"geo": "37.87,-122.27",
"first_seen": "2021-06-13",
"last_seen": "2021-06-13",
"num_sources": 2
}
]
Social Presence
We currently cover person social profiles on our Canonical Profile Networks. All profiles we've found for a person will be added to the profiles
list.
Each social profile URL has one or more standard formats that we parse and turn into a standard PDL format for that social URL. We invalidate profiles that have non-valid person stubs (for example, linkedin.com/company
), and we also have a blacklist of usernames that we know are invalid.
We do not validate if a URL is valid (that is, whether you can access it) because doing this at scale is considered a Direct Denial of Service (DDoS) attack and/or a form of crawling. This is highly discouraged! We try to mitigate invalid URLs as much as possible by using Entity Resolution (Merging) to link URLs together and then tagging the primary URL at the top level for key networks.
facebook_friends
facebook_friends
Description | The number of Facebook friends the person has. |
---|---|
Data Type | Integer (>= 0) |
Example
"facebook_friends": 3912
facebook_id
facebook_id
Description | The person's Facebook profile ID based on source agreement. |
---|---|
Data Type | String |
Example
"facebook_id": "1089351304"
facebook_url
facebook_url
Description | The person's Facebook profile URL based on source agreement. |
---|---|
Data Type | String |
Example
"facebook_url": "facebook.com/deseanthorne"
facebook_username
facebook_username
Description | The person's Facebook profile username based on source agreement. |
---|---|
Data Type | String |
Example
"facebook_username": "deseanthorne"
github_url
github_url
Description | The person's GitHub profile URL based on source agreement. |
---|---|
Data Type | String |
Example
"github_url": "github.com/deseanathan_thornolotheu"
github_username
github_username
Description | The person's GitHub profile username based on source agreement. |
---|---|
Data Type | String |
Example
"github_username": "deseanathan_thornolotheu"
linkedin_connections
linkedin_connections
Description | The number of LinkedIn connections the person has. |
---|---|
Data Type | Integer (>= 0) |
Field Details
Typically between 0-500.
Example
"linkedin_connections": 432
linkedin_id
linkedin_id
Description | The person's LinkedIn profile ID. This is null when no values in the "profiles" array are active. |
---|---|
Data Type | String |
Example
"linkedin_id": "145991517"
linkedin_url
linkedin_url
Description | The person's current LinkedIn profile URL. This is null when no values in the "profiles" array are active. |
---|---|
Data Type | String |
Example
"linkedin_url": "linkedin.com/in/seanthorne"
linkedin_username
linkedin_username
Description | The person's LinkedIn profile username. This is null when no values in the "profiles" array are active. |
---|---|
Data Type | String |
Example
"linkedin_username": "seanthorne"
profiles
profiles
Description | Social profiles associated with the person. |
---|---|
Data Type | Array [Object] |
Field Details
Each profile associated with the person will be added to this list as its own object.
Field | Data Type | Description |
---|---|---|
id | String | The profile ID (format varies based on social network). |
first_seen | String (Date) | The date that this entity was first associated with the Person record. |
last_seen | String (Date) | The date that this entity was last associated with the Person record. |
network | Enum (String) | The social network the profile is on. Must be one of our Canonical Profile Networks. |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this entity with the Person record. |
url | String | The profile URL. |
username | String | The profile username. |
Sort Order
Profiles are sorted with the primary profiles listed first (facebook, linkedin, twitter, and github, in that order). The rest of the array is then sorted by status codes (200 > unknown > 404), number of profiles globally,
last_seen
,first_seen
,username
,id
, all in reverse order (highest first, most recent first, Z→A):
- Primary profiles first
- Github
- Status Codes:
- Profiles with 200 return status codes are first
- Profiles with unknown return status codes come next
- Profiles with 404 return status codes are placed last
- Number of profiles globally (highest first)
last_seen
(most recent first)first_seen
(most recent first)username
(Z→A)id
(Z→A)
Example
"profiles": [
{
"network": "linkedin",
"id": "145991517",
"url": "linkedin.com/in/seanthorne",
"username": "seanthorne",
"first_seen": "2017-06-02",
"last_seen": "2019-07-18",
"num_sources": 17
}
]
twitter_url
twitter_url
Description | The person's Twitter profile URL based on source agreement. |
---|---|
Data Type | String |
Example
"twitter_url": "twitter.com/seanthorne5"
twitter_username
twitter_username
Description | The person's Twitter profile username based on source agreement. |
---|---|
Data Type | String |
Example
"twitter_username": "seanthorne5"
Work History
certifications
certifications
Description | Any certifications the person has. |
---|---|
Data Type | Array [Object] |
Field Details
The certifications listed are based on user input, we do not verify them.
Field | Data Type | Description |
---|---|---|
end_date | String (Date) | The expiration date of the certification. |
name | String | Certification name |
organization | String | The organization awarding the certification. |
start_date | String (Date) | The date the certification was awarded. |
Sort Order
Certifications are sorted first by
start_date
, then byend_date
and finally byname
, all in reverse order (most recent first, Z→A):
start_date
(most recent first)end_date
(most recent first)name
(Z→A)
Example
"certifications": [
{
"name": "machine learning certification",
"organization": "coursera",
"start_date": "2022-03",
"end_date": "2023-04"
}
]
experience
experience
Description | The person's work experience. |
---|---|
Data Type | Array [Object] |
Field Details
The experience object that is tagged as experience.is_primary = True
is copied over to the flattened job_
fields (see Current Job and Current Company).
Each work experience object contains the following fields:
Field | Data Type | Description |
---|---|---|
company | Object | The company where the person worked. |
end_date | String (Date) | The date the person left the company. If the person is still working for the company, will be null . |
first_seen | String (Date) | The date that this entity was first associated with the Person record. |
last_seen | String (Date) | The date that this entity was last associated with the Person record. |
is_primary | Boolean | Whether this is the person's current job or not. If true , this experience will be used to populate the job_ fields. |
location_names | Array [String] | Locations where the person has worked while with this company (if different from the company HQ). |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this entity with the Person record. |
start_date | String (Date) | The date the person started at the company. |
summary | String | User-inputted summary of their work experience. |
title | Object | The person's job title while at the company. |
Sort Order
Experience entries are sorted with the primary experience first. The remaining entries are then sorted by
start_date
,end_date
,company.name
, andtitle.name
, all in reverse order (most recent first, Z→A):
- Primary Experience (
is_primary = True
)start_date
(most recent first)end_date
(most recent first)company.name
(Z→A)title.name
(Z→A)
experience.company
experience.company
The fields in experience.company
map to the corresponding fields in our Company Schema. The same parsing and formatting logic apply.
Field | Sub Field | Data Type | Description |
---|---|---|---|
facebook_url | String | The company's Facebook URL | |
founded | Integer (> 0) | The founding year of the company. | |
id | String | The company's PDL ID | |
industry | Enum (String) | The self-identified industry of the company. Must be one of the Canonical Industries. | |
linkedin_id | String | The company's LinkedIn ID | |
linkedin_url | String | The company's LinkedIn URL | |
location | Object | The location of the company's headquarters. See Common Location Fields for detailed field descriptions. | |
address_line_2 | String | ||
continent | Enum (String) | ||
country | Enum (String) | ||
geo | String | ||
locality | String | ||
metro | Enum (String) | ||
name | String | ||
postal_code | String | ||
region | String | ||
street_address | String | ||
name | String | The company name, cleaned and standardized. | |
raw | Array [String] | Raw company name. | |
size | Enum (String) | The self-reported company size range. Must be one of our Canonical Company Sizes. | |
ticker | String | The company ticker. This field will only have a value if the company's type is public . | |
twitter_url | String | The company's Twitter URL | |
type | Enum (String) | The company type. Must be one of our Canonical Company Types. | |
website | String | The company's primary website, cleaned and standardized. |
experience.title
experience.title
See the corresponding Current Job fields for more details on the information included and formatting of these fields.
Field | Data Type | Description |
---|---|---|
levels | Array [Enum (String)] | Canonical Job Title Levels. |
name | String | The cleaned job title. |
raw | Array [String] | Raw job title input. |
role | Enum (String) | One of the Canonical Job Roles. |
sub_role | Enum (String) | One of the Canonical Job Sub Roles. |
class | Enum (String) | One of the Canonical Job Classes . |
Sort Order (
experience.title.levels
)Title levels are sorted from most important to least important based on the following ranking:
cxo
(first)owner
vp
director
partner
senior
manager
entry
training
unpaid
(last)
Example
"experience": [
{
"company": {
"name": "people data labs",
"size": "11-50",
"id": "peopledatalabs",
"founded": 2015,
"industry": "computer software",
"location": {
"name": "san francisco, california, united states",
"locality": "san francisco",
"region": "california",
"metro": "san francisco, california",
"country": "united states",
"continent": "north america",
"street_address": "455 market street",
"address_line_2": "suite 1670",
"postal_code": "94105",
"geo": "37.77,-122.41"
},
"linkedin_url": "linkedin.com/company/peopledatalabs",
"linkedin_id": "18170482",
"facebook_url": "facebook.com/peopledatalabs",
"twitter_url": "twitter.com/peopledatalabs",
"website": "peopledatalabs.com",
"ticker": null,
"type": "private",
"raw": [
"people data labs"
],
},
"location_names": ["san francisco, california, united states"],
"end_date": null,
"start_date": "2015-03",
"title": {
"name": "chief executive officer and co-founder",
"raw": [
"co-founder & ceo",
"co-founder & ceo",
"co-founder and chief executive officer"
],
"role": "operations",
"sub_role": "executive",
"class": "general_and_administrative"
"levels": [
"cxo",
"owner"
],
},
"is_primary": true,
"summary": "worked on the \"search analytics\" team to understand our users better",
"first_seen": "2018-10-11",
"last_seen": "2022-11-15",
"num_sources": 17
},
]
headline
headline
Description | The brief headline associated with a person profile. |
---|---|
Data Type | String |
Field Details
The self-written headline tied to the person profile (often a LinkedIn headline).
The summary is lowercased, but otherwise kept as-is from the raw source.
Example
"headline": "senior data engineer at people data labs"
industry
industry
Description | The most relevant industry for this person based on their work history. |
---|---|
Data Type | Enum (String) |
Field Details
A person's industry is determined based on their tagged personal industries and the industries of the companies that they have worked for.
The value will be one of our Canonical Industries.
Example
"industry": "computer software"
inferred_years_experience
inferred_years_experience
Description | The person's inferred years of total work experience. |
---|---|
Data Type | Integer (0 - 100) |
Field Details
The value will be between 0 and 100.
Example
"inferred_years_experience": 7
interests
interests
Description | The person's self-reported interests. |
---|---|
Data Type | Array [String] |
Field Details
Each interest is cleaned (lowercased, stripped of whitespace, etc.). We don't have a canonical list of interests but we remove profanity and do some basic cleaning.
Sort Order
Interests are sorted alphabetically (from A→Z)
Example
"interests": [
"data",
"software"
]
job_history
job_history
Description | Additional professional positions that may have been removed or changed on resumes. |
---|---|
Data Type | Array [Object] |
Field Details
Any additional job history information PDL has that is not included in the experience
field.
Usually these are positions that have been removed or changed on resumes.
Field | Data Type | Description |
---|---|---|
company_id | String | PDL Company ID |
company_name | String | Company Name |
first_seen | String (Date) | The date that this experience was first associated with this record. |
last_seen | String (Date) | The date that this experience was last associated with this record. |
num_sources | Integer (> 0) | The number of sources that have contributed to the association of this profile with this record. |
title | String | Job Title at this company. |
Sort Order
Job history entries are sorted by
start_date
,end_date
,company.name
, andtitle.name
, all in reverse order (most recent first, Z→A):
start_date
(most recent first)end_date
(most recent first)company.name
(Z→A)title.name
(Z→A)
Example
"job_history": [
{
"company_id": "OMdETRug8CpuRDWGkhQ35wx8CvVk",
"company_name": "auntie annes",
"title": "food service supervisor",
"first_seen": "2016-05-17",
"last_seen": "2020-05-30",
"num_sources": 12
}
]
skills
skills
Description | The person's self-reported skills. |
---|---|
Data Type | Array [String] |
Field Details
Each skill is cleaned (lowercased, stripped of whitespace, etc.). We do not always strip punctuation because it can be relevant for some skills (ex: "c++"
vs "c"
).
We do not do any canonicalization, so "java"
and "java 8.0"
are considered separate skills. For this reason, we encourage our customers to use fuzzy text matching with the skills
field.
Sort Order
Skills are sorted alphabetically (from A→Z)
Example
"skills": [
"entrepreneurship"
]
summary
summary
Description | User-inputted personal summary. |
---|---|
Data Type | String |
Field Details
The self-written summary tied to the person profile (often a LinkedIn summary).
The summary is lowercased, but otherwise kept as-is from the raw source.
Example
"summary": "growth-hacker and digital nomad"
PDL Record Information & Metadata
dataset_version
dataset_version
Description | The major or minor release number. |
---|---|
Data Type | String |
Field Details
This field currently exists in Person Enrichment API responses.
Note: This number corresponds to the data release number, not the API release number.
Example
"dataset_version": "19.2"
first_seen
first_seen
Description | The date when this record was first created in our data. |
---|---|
Data Type | String (Date) |
Example
"first_seen": "2017-06-02"
num_records
num_records
Description | The number of unique raw records contributing to this specific PDL profile. |
---|---|
Data Type | Integer (> 0) |
Example
"num_records": 420
num_sources
num_sources
Description | The number of unique sources contributing to this specific PDL profile. |
---|---|
Data Type | Integer (> 0) |
Example
"num_sources": 72
operation_id
operation_id
Description | An identifier for an operation in a Data License delivery, used for troubleshooting. |
---|---|
Data Type | String |
Field Details
This field exists only in Data License deliveries, and allows PDL employees to identify the timestamp and operations performed on the internal data in order to return a record in a delivery.
Example
"operation_id": "acee3bde2e1a2cb7e75c57b80d5b7bc2d5de5b02e7ea51f91304c28df77251dc"
Updated 8 days ago