Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

People Data Labs / Enrich a person

People Data Labs tool people-data-labs-person-enrich on looot: input fields, $0.28 per result, output shape, and code to run it with curl, JavaScript or Python.

Returns People Data Labs’ best matching person record. Send any identifying fields: name, email, phone, company, location, a profile URL or pdl_id; min_likelihood sets how sure the match must be. Returns data with experience, education, locations and contact fields. Priced per match.

Inputs

Name Type Required Description
birth_date string no The person’s birth date: either the year or a full birth date in the format YYYY-MM-DD. Example: “1996-10-01”
company string no A name, website, or social url of a company where the person has worked. Example: “Amazon”
country string no A country in which the person lives. Example: “United States”
data_include string no A comma-separated string of fields that you would like the response to include. Begin the string with a - if you would instead like to exclude the specified fields. If you would like to exclude all data from being returned, use data_include=“”. Example: “full_name,emails.address”
email string no An email the person has used.
email_hash string no A SHA-256 or MD5 email hash.
first_name string no The person’s first name.
include_if_matched boolean no If set to true, includes a top-level (alongside “data”, “status”, etc) field “matched” which includes a value for each queried field parameter that was “matched-on” during our internal query.
last_name string no The person’s last name.
lid string no The person’s LinkedIn ID. Example: “145991517”
locality string no A locality in which the person lives. Example: “Boise”
location string no A location in which a person lives. Example: “Medford, OR USA”
middle_name string no The person’s middle name.
min_likelihood integer no The minimum likelihood score that a response must have in order to count as a match
name string no The person’s full name, at least first and last.
pdl_id string no The PDL ID of the person to enrich.
phone string no A phone number the person has used.
postal_code string no The postal code where the person lives. If there is no value for country, the postal code is assumed to be US. Example: “83701”
pretty boolean no Whether the output should have human-readable indentation
profile string no A social profile the person has used. https://docs.peopledatalabs.com/docs/social-networks.
region string no A state or region in which the person lives. Example: “Idaho”
required string no The fields a response must have in order to count as a match. Example: “education AND (emails OR phone_numbers)”
school string no A name, website, or social url of a university or college the person has attended. Example: “University of Iowa”
street_address string no A street address in which the person lives. Example: “1234 Main Street”
titlecase boolean no Setting titlecase to true will titlecase the person data in 200 responses.

Output

Shape of the run’s result, the expected shape, not yet checked against real answers:

{ data: { id, sex, emails, skills: string[], regions, industry, profiles: { id, ... ...

The shape is cut here. Signed in, looot inspect people-data-labs-person-enrich prints all of it.

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"people-data-labs-person-enrich","input":{"lid":"145991517","name":"Jane Doe","email":"jane.doe@example.com","phone":"+15555550100","pdl_id":"<pdl_id>","region":"Idaho","school":"University of Iowa","company":"Amazon","country":"United States","profile":"<profile>","locality":"Boise","location":"Medford, OR USA","required":"education AND (emails OR phone_numbers)","last_name":"Doe","birth_date":"1996-10-01","email_hash":"jane.doe@example.com","first_name":"Jane","middle_name":"<middle_name>","postal_code":"83701","data_include":"full_name,emails.address","street_address":"1234 Main Street"},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "people-data-labs-person-enrich",
    input: {
      lid: "145991517",
      name: "Jane Doe",
      email: "jane.doe@example.com",
      phone: "+15555550100",
      pdl_id: "<pdl_id>",
      region: "Idaho",
      school: "University of Iowa",
      company: "Amazon",
      country: "United States",
      profile: "<profile>",
      locality: "Boise",
      location: "Medford, OR USA",
      required: "education AND (emails OR phone_numbers)",
      last_name: "Doe",
      birth_date: "1996-10-01",
      email_hash: "jane.doe@example.com",
      first_name: "Jane",
      middle_name: "<middle_name>",
      postal_code: "83701",
      data_include: "full_name,emails.address",
      street_address: "1234 Main Street",
    },
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "people-data-labs-person-enrich",
        "input": {
            "lid": "145991517",
            "name": "Jane Doe",
            "email": "jane.doe@example.com",
            "phone": "+15555550100",
            "pdl_id": "<pdl_id>",
            "region": "Idaho",
            "school": "University of Iowa",
            "company": "Amazon",
            "country": "United States",
            "profile": "<profile>",
            "locality": "Boise",
            "location": "Medford, OR USA",
            "required": "education AND (emails OR phone_numbers)",
            "last_name": "Doe",
            "birth_date": "1996-10-01",
            "email_hash": "jane.doe@example.com",
            "first_name": "Jane",
            "middle_name": "<middle_name>",
            "postal_code": "83701",
            "data_include": "full_name,emails.address",
            "street_address": "1234 Main Street",
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To let looot pick among every provider of this job instead, send job:people.enrich as endpointId; see the job page.

Was this page helpful?