{
  "id": "pdl.v5.person.enrich",
  "object": "tool",
  "name": "Enrich Person",
  "summary": "Enrich a person record from identifiers (email, phone, name+company, LinkedIn, or PDL ID).",
  "description": "Enrich data on a person by matching against ~3 billion profiles in the People Data Labs dataset. Input identifiers like email, phone, name+company, LinkedIn URL, or PDL ID. Returns a comprehensive person record with employment history, education, skills, social profiles, contact information, and more. One-to-one match with a confidence likelihood score (1-10); no match is a 404 and costs nothing.\n\nRaw pdl#v5/person/enrich endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.peopledatalabs.com/docs/reference-person-enrichment-api).",
  "category": "lookup",
  "hosted_by": "People Data Labs",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "pdl",
      "name": "People Data Labs",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "pdl_v5_person_enrich",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "pdl_id": {
            "description": "PDL person id. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "name": {
            "description": "Full name. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "first_name": {
            "description": "First name. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "last_name": {
            "description": "Last name. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "middle_name": {
            "description": "Middle name. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "location": {
            "description": "Free-text location. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "street_address": {
            "type": "string"
          },
          "locality": {
            "description": "City.",
            "type": "string"
          },
          "region": {
            "description": "State or region.",
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "postal_code": {
            "description": "Postal code. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "company": {
            "description": "Current or past employer. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "school": {
            "description": "University or college attended. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "phone": {
            "description": "Phone number, starting with +[country code]. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "email": {
            "description": "Email address. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "email_hash": {
            "description": "SHA-256 or MD5 of an email. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "profile": {
            "description": "Social profile URL (LinkedIn, Twitter, GitHub, Facebook). A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "lid": {
            "description": "LinkedIn numeric id. A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "birth_date": {
            "description": "Birth date (YYYY or YYYY-MM-DD). A list — one value, or several to widen the match.",
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "min_likelihood": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Minimum match likelihood (1-10). Default 2."
          },
          "required": {
            "description": "Fields the matched record must contain (e.g. 'emails AND profiles').",
            "type": "string"
          },
          "data_include": {
            "description": "Comma-separated fields to include in the returned record.",
            "type": "string"
          },
          "include_if_matched": {
            "description": "Include a `matched` array listing which input fields matched. Default false.",
            "type": "boolean"
          },
          "titlecase": {
            "description": "Titlecase the returned record. Default false.",
            "type": "boolean"
          },
          "pretty": {
            "description": "Pretty-print the response. Default false.",
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Provide one of pdl_id, profile, email, phone, email_hash, lid — OR (first_name + last_name, or name) together with one of company, school, location, street_address, locality, region, country, postal_code, birth_date. PDL answers 400 otherwise."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}