Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

peopledatalabs

Package Overview
Dependencies
Maintainers
2
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

peopledatalabs

An universal client for the People Data Labs API

  • 1.1.13
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2.8K
decreased by-32.33%
Maintainers
2
Weekly downloads
 
Created
Source

People Data Labs Logo

People Data Labs JS Library

A tiny, universal JS client for the People Data Labs API.

peopledatalabs gzip size brotli size

This is a simple JavaScript client library to access the various API endpoints provided by People Data Labs.

This library bundles up PDL API requests into simple function calls, making it easy to integrate into your projects. You can use the various API endpoints to access up-to-date, real-world data from our massive Person and Company Datasets.

✨ Features

  • Tiny <2KB size gzip
  • Works in Node.js and in Browser
  • Supports all People Data Labs API endpoints

Table of Contents

🔧 Installation

  1. Pull the package from the npm repository:
yarn add peopledatalabs

or

npm i peopledatalabs
  1. Sign up for a free PDL API key

🚀 Usage

First, create the PDLJS client:

import PDLJS from 'peopledatalabs';

const PDLJSClient = new PDLJS({apiKey: "YOUR API KEY"})

Then, send requests to any PDL API Endpoint:

Getting Person Data

// By Enrichment
PDLJSClient.person.enrichment({ phone: '4155688415' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// By Search (SQL)
const sqlQuery = "SELECT * FROM person WHERE location_country='mexico' AND job_title_role='health'AND phone_numbers IS NOT NULL;"

PDLJSClient.person.search.sql({ searchQuery: sqlQuery, size: 10 }).then((data) => {
  console.log(data['total']);
}).catch((error) => {
  console.log(error);
});

// By Search (Elasticsearch)
const esQuery = {
  query: {
    bool: {
      must:[
        {term: {location_country: "mexico"}},
        {term: {job_title_role: "health"}},
        {exists: {field: "phone_numbers"}}
      ]
    }
  }
}

PDLJSClient.person.search.elastic({ searchQuery: esQuery, size: 10 }).then((data) => {
  console.log(data['total']);
}).catch((error) => {
  console.log(error);
});

// By PDL_ID
PDLJSClient.person.retrieve('qEnOZ5Oh0poWnQ1luFBfVw_0000').then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// By Fuzzy Enrichment
PDLJSClient.person.identify({ name: 'sean thorne' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

Getting Company Data

// By Enrichment
PDLJSClient.company.enrichment({ website: 'peopledatalabs.com' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// By Search (SQL)
const sqlQuery = "SELECT * FROM company WHERE tags='big data' AND industry='financial services' AND location.country='united states';"

PDLJSClient.company.search.sql({ searchQuery: sqlQuery, size: 10 }).then((data) => {
  console.log(data['total']);
}).catch((error) => {
  console.log(error);
});

// By Search (Elasticsearch)
const esQuery = {
  query: {
    bool: {
      must:[
        {term: {tags: "big data"}},
        {term: {industry: "financial services"}},
        {term: {location_country: "united states"}}
      ]
    }
  }
}

PDLJSClient.company.search.elastic({ searchQuery: esQuery, size: 10 }).then((data) => {
  console.log(data['total']);
}).catch((error) => {
  console.log(error);
});

Using Supporting APIs

// Get Autocomplete Suggestions
PDLJSClient.autocomplete({ field: 'title', text: 'full', size: 10 }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// Clean Raw Company Strings
PDLJSClient.company.cleaner({ name: 'peOple DaTa LabS' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// Clean Raw Location Strings
PDLJSClient.location.cleaner({ location: '455 Market Street, San Francisco, California 94105, US' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

// Clean Raw School Strings
PDLJSClient.school.cleaner({ name: 'university of oregon' }).then((data) => {
  console.log(data);
}).catch((error) => {
  console.log(error);
});

🌐 Endpoints

Person Endpoints

API EndpointPDLJS Function
Person Enrichment APIPDLJS.person.enrichment(...params)
Person Search APISQL: PDLJS.person.search.sql(...params)
Elasticsearch: PDLJS.person.search.elastic(...params)
Person Retrieve APIPDLJS.person.retrieve(...params)
Person Identify APIPDLJS.person.identify(...params)

Company Endpoints

API EndpointPDLJS Function
Company Enrichment APIPDLJS.company.enrichment(...params)
Company Search APISQL: PDLJS.company.search.sql(...params)
Elasticsearch: PDLJS.company.search.elastic(...params)

Supporting Endpoints

API EndpointPDLJS Function
Autocomplete APIPDLJS.autocomplete(...params)
Company Cleaner APIPDLJS.company.cleaner(...params)
Location Cleaner APIPDLJS.location.cleaner(...params)
School Cleaner APIPDLJS.school.cleaner(...params)

📘 Documentation

All of our API endpoints are documented at: https://docs.peopledatalabs.com/

These docs describe the supported input parameters, output responses and also provide additional technical context.

As illustrated in the Endpoints section above, each of our API endpoints is mapped to a specific method in the PDLJS class. For each of these class methods, all function inputs are mapped as input parameters to the respective API endpoint, meaning that you can use the API documentation linked above to determine the input parameters for each endpoint.

As an example:

The following is valid because name is a supported input parameter to the Person Identify API:

PDLJS.person.identify({ name: 'sean thorne' })

Conversely, this would be invalid because fake_parameter is not an input parameter to the Person Identify API:

PDLJS.person.identify({ fake_parameter: 'anything' })
Special Note about Search API Support

Our Person Search API and Company Search API endpoints both support two types of query syntax: you can construct search queries using either SQL or Elasticsearch syntax.

In the PDLJS class, the person and company search functions are broken out into two syntax-specific methods as follows:

Data TypeSearch Query SyntaxFunction
PersonSQLPDLJS.person.search.sql(...params)
PersonElasticsearchPDLJS.person.search.elastic(...params)
CompanySQLPDLJS.company.search.sql(...params)
CompanyElasticsearchPDLJS.company.search.elastic(...params)

You can pass your query to these methods using the special searchQuery function argument, as shown in the following example:

const sqlQuery = "SELECT * FROM company WHERE website='peopledatalabs.com';"

PDLJSClient.company.search.sql({ searchQuery: sqlQuery, size: 10 }).then((data) => {
 console.log(data['total']);
}).catch((error) => {
 console.log(error);
});

Keywords

FAQs

Package last updated on 16 Mar 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc