# People Data Labs (/integrations/peopledatalabs)





{/* MANUAL-CONTENT-START:intro */}

[People Data Labs](https://www.peopledatalabs.com/) provides person and company data. The Sim block exposes the core REST endpoints so agents can enrich a single contact, look up a company, or run dataset-wide search queries.

Use this block to:

* **Person Enrich** — resolve a single person by email, phone, LinkedIn URL, or name + company/location, and pull back their work history, contact info, and skills.
* **Person Search** — run SQL or Elasticsearch DSL queries against the person dataset to build prospect lists or audience segments.
* **Company Enrich** — resolve a single company by name, website, ticker, LinkedIn URL, or PDL ID, and pull back firmographics.
* **Company Search** — query the company dataset with SQL or Elasticsearch DSL.
* **Autocomplete** — get suggested values for fields like `title`, `skill`, `industry`, or `location` to build well-formed search queries.

Authentication uses an API key passed as the `X-Api-Key` header. Get a key from the [PDL dashboard](https://dashboard.peopledatalabs.com/).

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Enrich a single person or company with People Data Labs, or search the global person and company datasets with SQL or Elasticsearch DSL. Useful for sales enrichment, contact lookup, and CRM hygiene.

## Actions [#actions]

### PDL Person Enrich [#pdl-person-enrich]

Enrich a single person profile using People Data Labs. Match by email, phone, LinkedIn URL, or name + company/location. Returns work history, contact details, location, and skills.

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `email` | string | No | Email address to match |
  | `phone` | string | No | Phone number (E.164 format preferred) |
  | `profile` | string | No | LinkedIn profile URL |
  | `lid` | string | No | LinkedIn numeric ID |
  | `name` | string | No | Full name (use as an alternative to first\_name + last\_name) |
  | `first_name` | string | No | First name (use with last\_name + company or location) |
  | `last_name` | string | No | Last name |
  | `company` | string | No | Company name or website |
  | `school` | string | No | School name |
  | `location` | string | No | Location name (city, region, or country) |
  | `min_likelihood` | number | No | Minimum match likelihood (1-10) |
  | `required` | string | No | Required-fields expression (e.g., "emails AND job\_title") |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `matched` | boolean | Whether a person record was matched |
  | `likelihood` | number | Match likelihood score (1-10), null if no match |
  | `person` | object | Matched person record |
  | ↳ `id` | string | PDL person ID |
  | ↳ `full_name` | string | Full name |
  | ↳ `first_name` | string | First name |
  | ↳ `last_name` | string | Last name |
  | ↳ `gender` | string | Gender |
  | ↳ `birth_year` | number | Birth year |
  | ↳ `linkedin_url` | string | LinkedIn profile URL |
  | ↳ `linkedin_username` | string | LinkedIn username |
  | ↳ `twitter_url` | string | Twitter profile URL |
  | ↳ `github_url` | string | GitHub profile URL |
  | ↳ `facebook_url` | string | Facebook profile URL |
  | ↳ `work_email` | string | Primary work email |
  | ↳ `personal_emails` | array | Personal email addresses |
  | ↳ `emails` | array | All known email addresses |
  | ↳ `phone_numbers` | array | Known phone numbers |
  | ↳ `mobile_phone` | string | Mobile phone number |
  | ↳ `job_title` | string | Current job title |
  | ↳ `job_title_role` | string | Normalized job role |
  | ↳ `job_title_sub_role` | string | Normalized job sub-role |
  | ↳ `job_title_levels` | array | Seniority levels (e.g., manager, director) |
  | ↳ `job_company_name` | string | Current employer name |
  | ↳ `job_company_website` | string | Current employer website |
  | ↳ `job_company_industry` | string | Current employer industry |
  | ↳ `job_company_size` | string | Current employer size band |
  | ↳ `job_company_linkedin_url` | string | Current employer's LinkedIn URL |
  | ↳ `job_start_date` | string | Start date at current employer (YYYY-MM) |
  | ↳ `location_name` | string | Full location name |
  | ↳ `location_locality` | string | City |
  | ↳ `location_region` | string | State/region |
  | ↳ `location_country` | string | Country |
  | ↳ `location_continent` | string | Continent |
  | ↳ `industry` | string | Industry |
  | ↳ `skills` | array | Skills |
  | ↳ `interests` | array | Interests |
  | ↳ `experience` | array | Work history entries |
  | ↳ `education` | array | Education history |
</ReferenceDetails>

### PDL Person Identify [#pdl-person-identify]

Return up to 20 candidate person matches with confidence scores. Useful when you want to see all plausible matches rather than the single best one. Reference: [https://docs.peopledatalabs.com/docs/identify-api-quickstart](https://docs.peopledatalabs.com/docs/identify-api-quickstart)

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `email` | string | No | Email |
  | `phone` | string | No | Phone number |
  | `profile` | string | No | LinkedIn profile URL |
  | `email_hash` | string | No | SHA-256 email hash |
  | `lid` | string | No | LinkedIn numeric ID |
  | `name` | string | No | Full name |
  | `first_name` | string | No | First name |
  | `middle_name` | string | No | Middle name |
  | `last_name` | string | No | Last name |
  | `company` | string | No | Company name or website |
  | `school` | string | No | School |
  | `location` | string | No | Location |
  | `street_address` | string | No | Street address |
  | `locality` | string | No | City |
  | `region` | string | No | State/region |
  | `country` | string | No | Country |
  | `postal_code` | string | No | Postal code |
  | `birth_date` | string | No | Birth date (YYYY-MM-DD) |
  | `data_include` | string | No | Comma-separated fields to include in each match |
  | `include_if_matched` | boolean | No | Include `matched_on` for each match |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `matches` | array | Up to 20 candidate matches, ordered by score |
</ReferenceDetails>

### PDL Person Search [#pdl-person-search]

Search the People Data Labs person dataset using SQL or Elasticsearch DSL. Returns up to 100 matching records per call.

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `sql` | string | No | PDL SQL query (e.g., "SELECT \* FROM person WHERE job\_title='engineer' AND location\_country='united states'") |
  | `query` | string | No | Elasticsearch DSL query as JSON string. Use either sql or query, not both. |
  | `size` | number | No | Number of results to return (1-100, default 1) |
  | `scroll_token` | string | No | Pagination token returned from a prior response |
  | `dataset` | string | No | Dataset filter: all, resume, email, phone, mobile\_phone, street\_address, consumer\_social, developer (combinable with commas, exclude with `-` prefix) |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `total` | number | Total matching records in dataset |
  | `scroll_token` | string | Pagination token to fetch the next page; null if no more results |
  | `results` | array | Person records matching the query |
  | ↳ `id` | string | PDL person ID |
  | ↳ `full_name` | string | Full name |
  | ↳ `first_name` | string | First name |
  | ↳ `last_name` | string | Last name |
  | ↳ `gender` | string | Gender |
  | ↳ `birth_year` | number | Birth year |
  | ↳ `linkedin_url` | string | LinkedIn profile URL |
  | ↳ `linkedin_username` | string | LinkedIn username |
  | ↳ `twitter_url` | string | Twitter profile URL |
  | ↳ `github_url` | string | GitHub profile URL |
  | ↳ `facebook_url` | string | Facebook profile URL |
  | ↳ `work_email` | string | Primary work email |
  | ↳ `personal_emails` | array | Personal email addresses |
  | ↳ `emails` | array | All known email addresses |
  | ↳ `phone_numbers` | array | Known phone numbers |
  | ↳ `mobile_phone` | string | Mobile phone number |
  | ↳ `job_title` | string | Current job title |
  | ↳ `job_title_role` | string | Normalized job role |
  | ↳ `job_title_sub_role` | string | Normalized job sub-role |
  | ↳ `job_title_levels` | array | Seniority levels (e.g., manager, director) |
  | ↳ `job_company_name` | string | Current employer name |
  | ↳ `job_company_website` | string | Current employer website |
  | ↳ `job_company_industry` | string | Current employer industry |
  | ↳ `job_company_size` | string | Current employer size band |
  | ↳ `job_company_linkedin_url` | string | Current employer's LinkedIn URL |
  | ↳ `job_start_date` | string | Start date at current employer (YYYY-MM) |
  | ↳ `location_name` | string | Full location name |
  | ↳ `location_locality` | string | City |
  | ↳ `location_region` | string | State/region |
  | ↳ `location_country` | string | Country |
  | ↳ `location_continent` | string | Continent |
  | ↳ `industry` | string | Industry |
  | ↳ `skills` | array | Skills |
  | ↳ `interests` | array | Interests |
  | ↳ `experience` | array | Work history entries |
  | ↳ `education` | array | Education history |
</ReferenceDetails>

### PDL Bulk Person Enrich [#pdl-bulk-person-enrich]

Enrich up to 100 person records in a single call. Provide a JSON array of request objects, each with a `params` object (and optional `metadata` echoed back). Reference: [https://docs.peopledatalabs.com/docs/bulk-person-enrichment-api](https://docs.peopledatalabs.com/docs/bulk-person-enrichment-api)

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `requests` | string | Yes | JSON array of request objects, max 100. Each item: \{ "params": \{ email \| profile \| first\_name+last\_name+company \| ... }, "metadata": \{...optional...} } |
  | `required` | string | No | Required-fields expression applied globally to every request |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `results` | array | Per-record results in the same order as the input requests |
</ReferenceDetails>

### PDL Company Enrich [#pdl-company-enrich]

Enrich a single company using People Data Labs. Match by name, website, LinkedIn URL, ticker, or PDL ID.

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `name` | string | No | Company name |
  | `website` | string | No | Company website domain |
  | `profile` | string | No | LinkedIn company URL |
  | `ticker` | string | No | Stock ticker |
  | `pdl_id` | string | No | PDL company ID |
  | `location` | string | No | Company location (helps disambiguate) |
  | `locality` | string | No | City |
  | `region` | string | No | State/region |
  | `country` | string | No | Country |
  | `min_likelihood` | number | No | Minimum match likelihood (1-10) |
  | `required` | string | No | Required-fields expression |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `matched` | boolean | Whether a company record was matched |
  | `likelihood` | number | Match likelihood score (1-10), null if no match |
  | `company` | object | Matched company record |
  | ↳ `id` | string | PDL company ID |
  | ↳ `name` | string | Company name |
  | ↳ `display_name` | string | Display name |
  | ↳ `website` | string | Website domain |
  | ↳ `ticker` | string | Stock ticker |
  | ↳ `type` | string | Company type (public, private, etc.) |
  | ↳ `industry` | string | Industry |
  | ↳ `size` | string | Employee size band |
  | ↳ `employee_count` | number | Estimated employee count |
  | ↳ `founded` | number | Year founded |
  | ↳ `headline` | string | Company headline/tagline |
  | ↳ `summary` | string | Company description |
  | ↳ `linkedin_url` | string | LinkedIn URL |
  | ↳ `linkedin_id` | string | LinkedIn ID |
  | ↳ `twitter_url` | string | Twitter URL |
  | ↳ `facebook_url` | string | Facebook URL |
  | ↳ `location_name` | string | HQ location name |
  | ↳ `location_locality` | string | HQ city |
  | ↳ `location_region` | string | HQ state/region |
  | ↳ `location_country` | string | HQ country |
  | ↳ `tags` | array | Company tags |
  | ↳ `tickers` | array | All stock tickers |
</ReferenceDetails>

### PDL Company Search [#pdl-company-search]

Search the People Data Labs company dataset using SQL or Elasticsearch DSL. Returns up to 100 matching companies per call.

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `sql` | string | No | PDL SQL query (e.g., "SELECT \* FROM company WHERE industry='computer software' AND size='51-200'") |
  | `query` | string | No | Elasticsearch DSL query as JSON string |
  | `size` | number | No | Number of results to return (1-100, default 1) |
  | `scroll_token` | string | No | Pagination token returned from a prior response |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `total` | number | Total matching companies in dataset |
  | `scroll_token` | string | Pagination token to fetch the next page; null if no more results |
  | `results` | array | Company records matching the query |
  | ↳ `id` | string | PDL company ID |
  | ↳ `name` | string | Company name |
  | ↳ `display_name` | string | Display name |
  | ↳ `website` | string | Website domain |
  | ↳ `ticker` | string | Stock ticker |
  | ↳ `type` | string | Company type (public, private, etc.) |
  | ↳ `industry` | string | Industry |
  | ↳ `size` | string | Employee size band |
  | ↳ `employee_count` | number | Estimated employee count |
  | ↳ `founded` | number | Year founded |
  | ↳ `headline` | string | Company headline/tagline |
  | ↳ `summary` | string | Company description |
  | ↳ `linkedin_url` | string | LinkedIn URL |
  | ↳ `linkedin_id` | string | LinkedIn ID |
  | ↳ `twitter_url` | string | Twitter URL |
  | ↳ `facebook_url` | string | Facebook URL |
  | ↳ `location_name` | string | HQ location name |
  | ↳ `location_locality` | string | HQ city |
  | ↳ `location_region` | string | HQ state/region |
  | ↳ `location_country` | string | HQ country |
  | ↳ `tags` | array | Company tags |
  | ↳ `tickers` | array | All stock tickers |
</ReferenceDetails>

### PDL Bulk Company Enrich [#pdl-bulk-company-enrich]

Enrich up to 100 companies in a single call. Provide a JSON array of request objects, each with a `params` object. Reference: [https://docs.peopledatalabs.com/docs/bulk-company-enrichment-api](https://docs.peopledatalabs.com/docs/bulk-company-enrichment-api)

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `requests` | string | Yes | JSON array of request objects, max 100. Each item: \{ "params": \{ name \| website \| profile \| ticker \| pdl\_id }, "metadata": \{...optional...} } |
  | `required` | string | No | Required-fields expression applied globally to every request |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `results` | array | Per-record results in the same order as the input requests |
</ReferenceDetails>

### PDL Company Cleaner [#pdl-company-cleaner]

Normalize a company string into a canonical company record. Provide at least one of name, website, or profile (LinkedIn URL).

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `name` | string | No | Raw company name to normalize |
  | `website` | string | No | Company website |
  | `profile` | string | No | LinkedIn company URL |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `matched` | boolean | Whether the input was matched to a known company |
  | `company` | object | Canonical company record |
  | ↳ `id` | string | PDL company ID |
  | ↳ `name` | string | Company name |
  | ↳ `display_name` | string | Display name |
  | ↳ `website` | string | Website domain |
  | ↳ `ticker` | string | Stock ticker |
  | ↳ `type` | string | Company type (public, private, etc.) |
  | ↳ `industry` | string | Industry |
  | ↳ `size` | string | Employee size band |
  | ↳ `employee_count` | number | Estimated employee count |
  | ↳ `founded` | number | Year founded |
  | ↳ `headline` | string | Company headline/tagline |
  | ↳ `summary` | string | Company description |
  | ↳ `linkedin_url` | string | LinkedIn URL |
  | ↳ `linkedin_id` | string | LinkedIn ID |
  | ↳ `twitter_url` | string | Twitter URL |
  | ↳ `facebook_url` | string | Facebook URL |
  | ↳ `location_name` | string | HQ location name |
  | ↳ `location_locality` | string | HQ city |
  | ↳ `location_region` | string | HQ state/region |
  | ↳ `location_country` | string | HQ country |
  | ↳ `tags` | array | Company tags |
  | ↳ `tickers` | array | All stock tickers |
</ReferenceDetails>

### PDL Location Cleaner [#pdl-location-cleaner]

Normalize a freeform location string into a structured locality/region/country record with coordinates.

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `location` | string | Yes | Raw location string (e.g., "SF, CA") |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `matched` | boolean | Whether the input was matched to a known location |
  | `location` | object | Canonical location record |
  | ↳ `name` | string | Normalized location name |
  | ↳ `locality` | string | City |
  | ↳ `region` | string | State/region |
  | ↳ `subregion` | string | Subregion (e.g., county) |
  | ↳ `country` | string | Country |
  | ↳ `continent` | string | Continent |
  | ↳ `type` | string | Location type |
  | ↳ `geo` | string | Latitude,longitude string |
</ReferenceDetails>

### PDL School Cleaner [#pdl-school-cleaner]

Normalize a school string into a canonical school record. Provide at least one of name, website, or profile (LinkedIn URL).

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `name` | string | No | Raw school name to normalize |
  | `website` | string | No | School website |
  | `profile` | string | No | LinkedIn school URL |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `matched` | boolean | Whether the input was matched to a known school |
  | `school` | object | Canonical school record |
  | ↳ `id` | string | PDL school ID |
  | ↳ `name` | string | School name |
  | ↳ `type` | string | School type (e.g., university, secondary) |
  | ↳ `website` | string | Website domain |
  | ↳ `linkedin_url` | string | LinkedIn URL |
  | ↳ `linkedin_id` | string | LinkedIn ID |
  | ↳ `facebook_url` | string | Facebook URL |
  | ↳ `twitter_url` | string | Twitter URL |
  | ↳ `domain` | string | School domain |
  | ↳ `location_name` | string | Location name |
  | ↳ `location_locality` | string | City |
  | ↳ `location_region` | string | State/region |
  | ↳ `location_country` | string | Country |
  | ↳ `location_continent` | string | Continent |
</ReferenceDetails>

### PDL Autocomplete [#pdl-autocomplete]

Get autocomplete suggestions for a PDL field (title, skill, company, industry, location, school, major, role, sub\_role).

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | People Data Labs API key |
  | `field` | string | Yes | Field to autocomplete: all\_location, class, company, country, industry, location\_name, major, region, role, school, sub\_role, skill, title, website |
  | `text` | string | No | Search text prefix |
  | `size` | number | No | Number of suggestions to return (1-100, default 10) |
  | `titlecase` | boolean | No | Return name fields in title case |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `suggestions` | array | Autocomplete suggestions ordered by frequency |
</ReferenceDetails>
