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

People Data Labs / Enrich a company from its domain or name

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

Looks up one company. Send website, name, profile (a LinkedIn URL), ticker or pdl_id; location fields help match by name. Returns one company record: name, size, employee_count, industry, founded, location, headline, summary, LinkedIn and Facebook URLs, tags and more. Priced per matched result.

Inputs

Name Type Required Description
country string no The company HQ’s country.
include_if_matched boolean no If true, the response will include the top-level field matched that contains a list of every input that matched this profile.
locality string no The company HQ’s locality. e.g. San Francisco
location string no The location of the company’s headquarters. This can be anything from a street address to a country name.
min_likelihood integer no The minimum likelihood score a response must possess in order to return a 200.
name string no The name of the company.
pdl_id string no The PDL ID of the company to enrich.
postal_code string no The company HQ’s postal code.
pretty boolean no Whether the output should have human-readable indentation.
profile string no A social profile of the company (linkedin/facebook/twitter/crunchbase).
region string no The company HQ’s region. e.g. California
required string no The fields a response must have in order to count as a match. Example: “location AND (website OR linkedin_url)”
street_address string no The company HQ’s street address.
ticker string no The company’s stock ticker, if publicly traded.
titlecase boolean no All text in API responses returns as lowercase by default. Setting titlecase to true will titlecase response data instead.
website string no A website the company uses.

Output

Shape of the run’s result, checked against 1 real answer:

{ id, sic, name, size, tags: string[], type, naics, status, ticker, founded, sum... ...

The shape is cut here. Signed in, looot inspect people-data-labs-company-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-company-enrich","input":{"required":"location AND (website OR linkedin_url)"},"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-company-enrich",
    input: {
      required: "location AND (website OR linkedin_url)",
    },
    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-company-enrich",
        "input": {
            "required": "location AND (website OR linkedin_url)",
        },
        "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:company.enrich as endpointId; see the job page.

Was this page helpful?