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.
- Tool id:
people-data-labs-person-enrich - Provider: People Data Labs
- Job: Enrich a person from a name and company (
people.enrich) - Price: $0.28 per result. A call that fails at the provider costs $0.
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.