{
  "service": "peopledatalabs",
  "displayName": "People Data Labs",
  "categories": [
    "Data",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "PDL_API_KEY",
      "description": "People Data Labs API key used with the X-Api-Key header. Create and manage API keys in the People Data Labs API Dashboard: https://dashboard.peopledatalabs.com.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.peopledatalabs.com",
  "actions": [
    {
      "id": "peopledatalabs.enrich_company",
      "service": "peopledatalabs",
      "name": "enrich_company",
      "description": "Match a single company in People Data Labs and return the top matched company record.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pdl_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "People Data Labs company identifier to enrich."
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company name."
              },
              {
                "type": "null"
              }
            ]
          },
          "profile": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company social profile URL."
              },
              {
                "type": "null"
              }
            ]
          },
          "ticker": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company stock ticker."
              },
              {
                "type": "null"
              }
            ]
          },
          "website": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company website or domain."
              },
              {
                "type": "null"
              }
            ]
          },
          "location": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Full or partial company location."
              },
              {
                "type": "null"
              }
            ]
          },
          "locality": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company locality."
              },
              {
                "type": "null"
              }
            ]
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company state or region."
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company country."
              },
              {
                "type": "null"
              }
            ]
          },
          "street_address": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company street address."
              },
              {
                "type": "null"
              }
            ]
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company postal code."
              },
              {
                "type": "null"
              }
            ]
          },
          "pretty": {
            "type": "boolean",
            "description": "Whether to return human-readable JSON indentation."
          },
          "include_if_matched": {
            "type": "boolean",
            "description": "Whether to include top-level matched field metadata in the response."
          },
          "min_likelihood": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "description": "Likelihood score returned by People Data Labs."
          },
          "required": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Boolean expression describing fields that must exist for the response to count as a match."
              },
              {
                "type": "null"
              }
            ]
          },
          "titlecase": {
            "type": "boolean",
            "description": "Whether text fields in successful responses should be title-cased."
          },
          "data_include": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Comma-separated fields to include, or prefixed with - to exclude fields."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for enriching a single company with People Data Labs. pdl_id, name, profile, ticker, or website is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "People Data Labs status code returned for the enrichment request."
          },
          "likelihood": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "description": "Likelihood score returned by People Data Labs."
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Company record returned by People Data Labs using the official Company Schema field names."
          },
          "matched": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Field match metadata returned by People Data Labs when include_if_matched is enabled."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "data"
        ],
        "description": "Normalized People Data Labs company enrichment response."
      }
    },
    {
      "id": "peopledatalabs.enrich_person",
      "service": "peopledatalabs",
      "name": "enrich_person",
      "description": "Match a single person in People Data Labs and return the top matched person record.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pdl_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "People Data Labs person identifier to enrich."
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Person full name, including at least the first and last name when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "first_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Person first name."
              },
              {
                "type": "null"
              }
            ]
          },
          "last_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Person last name."
              },
              {
                "type": "null"
              }
            ]
          },
          "middle_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Person middle name."
              },
              {
                "type": "null"
              }
            ]
          },
          "location": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Location where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "street_address": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Street address where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "locality": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Locality where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "State or region where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Country where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Postal code where the person lives."
              },
              {
                "type": "null"
              }
            ]
          },
          "company": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Company name, website, or social URL where the person has worked."
              },
              {
                "type": "null"
              }
            ]
          },
          "school": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "School name, website, or social URL the person attended."
              },
              {
                "type": "null"
              }
            ]
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Phone number the person has used, including the country code prefix."
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Email address the person has used."
              },
              {
                "type": "null"
              }
            ]
          },
          "email_hash": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "SHA-256 or MD5 hash of the person's email."
              },
              {
                "type": "null"
              }
            ]
          },
          "profile": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Social profile URL the person has used."
              },
              {
                "type": "null"
              }
            ]
          },
          "lid": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "LinkedIn ID of the person."
              },
              {
                "type": "null"
              }
            ]
          },
          "birth_date": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Birth year or full birth date in YYYY-MM-DD format."
              },
              {
                "type": "null"
              }
            ]
          },
          "pretty": {
            "type": "boolean",
            "description": "Whether to return human-readable JSON indentation."
          },
          "include_if_matched": {
            "type": "boolean",
            "description": "Whether to include top-level matched field metadata in the response."
          },
          "min_likelihood": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "description": "Likelihood score returned by People Data Labs."
          },
          "required": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Boolean expression describing fields that must exist for the response to count as a match."
              },
              {
                "type": "null"
              }
            ]
          },
          "titlecase": {
            "type": "boolean",
            "description": "Whether text fields in successful responses should be title-cased."
          },
          "data_include": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Comma-separated fields to include, or prefixed with - to exclude fields."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for enriching a single person with People Data Labs. Provide pdl_id, profile, email, phone, email_hash, lid, or a name plus locality, region, company, school, location, or postal_code."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "People Data Labs status code returned for the enrichment request."
          },
          "likelihood": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "description": "Likelihood score returned by People Data Labs."
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Person record returned by People Data Labs using the official Person Schema field names."
          },
          "matched": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Field match metadata returned by People Data Labs when include_if_matched is enabled."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "data"
        ],
        "description": "Normalized People Data Labs person enrichment response."
      }
    },
    {
      "id": "peopledatalabs.search_companies",
      "service": "peopledatalabs",
      "name": "search_companies",
      "description": "Search the People Data Labs company dataset with either an Elasticsearch query or SQL query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Elasticsearch v7.7 query string encoded as JSON text."
              },
              {
                "type": "null"
              }
            ]
          },
          "sql": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "SQL query of the form SELECT * FROM the matching dataset WHERE ..."
              },
              {
                "type": "null"
              }
            ]
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of matched records to return."
          },
          "from": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9999,
            "description": "Legacy offset for paginating between batches."
          },
          "scroll_token": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Offset token returned by a previous People Data Labs search response."
              },
              {
                "type": "null"
              }
            ]
          },
          "titlecase": {
            "type": "boolean",
            "description": "Whether returned records should be title-cased."
          },
          "pretty": {
            "type": "boolean",
            "description": "Whether to return human-readable JSON indentation."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for searching the People Data Labs company dataset. Exactly one of query or sql is required, and from cannot be used with scroll_token."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "People Data Labs status code returned for the search request."
          },
          "total": {
            "type": "integer",
            "description": "Number of records matching the People Data Labs search."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Company record returned by People Data Labs using the official Company Schema field names."
            },
            "description": "Matched company records returned by People Data Labs."
          },
          "scroll_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Scroll token for fetching the next page of matched companies."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "total",
          "data"
        ],
        "description": "Normalized People Data Labs company search response."
      }
    },
    {
      "id": "peopledatalabs.search_people",
      "service": "peopledatalabs",
      "name": "search_people",
      "description": "Search the People Data Labs person dataset with either an Elasticsearch query or SQL query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Elasticsearch v7.7 query string encoded as JSON text."
              },
              {
                "type": "null"
              }
            ]
          },
          "sql": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "SQL query of the form SELECT * FROM the matching dataset WHERE ..."
              },
              {
                "type": "null"
              }
            ]
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of matched records to return."
          },
          "from": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9999,
            "description": "Legacy offset for paginating between batches."
          },
          "scroll_token": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Offset token returned by a previous People Data Labs search response."
              },
              {
                "type": "null"
              }
            ]
          },
          "titlecase": {
            "type": "boolean",
            "description": "Whether returned records should be title-cased."
          },
          "pretty": {
            "type": "boolean",
            "description": "Whether to return human-readable JSON indentation."
          },
          "dataset": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Comma-separated dataset categories to search, such as resume or all."
              },
              {
                "type": "null"
              }
            ]
          },
          "data_include": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Comma-separated fields to include, or prefixed with - to exclude fields."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for searching the People Data Labs person dataset. Exactly one of query or sql is required, and from cannot be used with scroll_token."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "People Data Labs status code returned for the search request."
          },
          "total": {
            "type": "integer",
            "description": "Number of records matching the People Data Labs search."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Person record returned by People Data Labs using the official Person Schema field names."
            },
            "description": "Matched person records returned by People Data Labs."
          },
          "scroll_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Scroll token for fetching the next page of matched people."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "total",
          "data"
        ],
        "description": "Normalized People Data Labs person search response."
      }
    }
  ]
}
