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

People Data Labs / Identify matching people

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

Returns a ranked list of possible person matches for loose identifying fields (name, company, location, email and others), each with a match score. Priced per call.

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 sha256 email hash.
first_name string no The person’s first name.
include_if_matched boolean no If true, the response will include the field matches.matched_on that contains a list of every query input that matched this profile
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.
name string no The person’s full name, at least first and last.
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”
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:

{ status, matches: { data: { id, sex, emails, skills: string[], regions, industr... ...

The shape is cut here. Signed in, looot inspect people-data-labs-person-identify 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-identify","input":{"lid":"145991517","name":"Jane Doe","email":"jane.doe@example.com","phone":"+15555550100","region":"Idaho","school":"University of Iowa","company":"Amazon","country":"United States","profile":"<profile>","locality":"Boise","location":"Medford, OR USA","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-identify",
    input: {
      lid: "145991517",
      name: "Jane Doe",
      email: "jane.doe@example.com",
      phone: "+15555550100",
      region: "Idaho",
      school: "University of Iowa",
      company: "Amazon",
      country: "United States",
      profile: "<profile>",
      locality: "Boise",
      location: "Medford, OR USA",
      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-identify",
        "input": {
            "lid": "145991517",
            "name": "Jane Doe",
            "email": "jane.doe@example.com",
            "phone": "+15555550100",
            "region": "Idaho",
            "school": "University of Iowa",
            "company": "Amazon",
            "country": "United States",
            "profile": "<profile>",
            "locality": "Boise",
            "location": "Medford, OR USA",
            "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?