Examples - Sandbox APIs

We've provided code samples in Python, Ruby, Go and JavaScript.

💡

We want your feedback!

Do you see a bug? Is there an example you'd like to see that's not listed here?

Head over to the public roadmap and submit a bug ticket or a feature request and receive automatic notifications as your bug is resolved or your request is implemented.

Sandbox Person Enrichment API

To use the Sandbox Person Enrichment API in URL, set https://sandbox.api.peopledatalabs.com/v5/person/enrich as the URL and then use the Person Enrichment API as usual.

To use the Sandbox Person Enrichment API with our SDKs, see SDK usage.

After implementing one of the two mechanisms above, you can make use of any of the examples for the Person Enrichment API. However, since the Sandbox APIs only use the Sandbox Dataset, you can only enrich profiles from that dataset. For example, here is how to perform enrichment on an email address from the Sandbox Dataset following the Email example:

Basic Usage

import json # See https://github.com/peopledatalabs/peopledatalabs-python from peopledatalabs import PDLPY # Create a client, specifying your API key CLIENT = PDLPY( api_key="YOUR API KEY", # Use Sandbox API sandbox=True, ) # Create a parameters JSON object PARAMS = { "email": ["irussell@example.org"], "min_likelihood": 6 } # Pass the parameters object to the Person Enrichment API json_response = CLIENT.person.enrichment(**PARAMS).json() # Check for successful response if json_response["status"] == 200: record = json_response['data'] # Print selected fields print( record['work_email'], record['full_name'], record['job_title'], record['job_company_name'] ) print(f"Successfully enriched profile with PDL data.") # Save enrichment data to JSON file with open("my_pdl_enrichment.jsonl", "w") as out: out.write(json.dumps(record) + "\n") else: print("Enrichment unsuccessful. See error and try again.") print("error:", json_response)
// See https://github.com/peopledatalabs/peopledatalabs-js import PDLJS from 'peopledatalabs'; import fs from 'fs'; // Create a client, specifying your API key const PDLJSClient = new PDLJS({ apiKey: "YOUR API KEY" }); // Create a parameters JSON object const params = { email: "irussell@example.org", min_likelihood: 6, // Use Sandbox API sandbox: true } // Pass the parameters object to the Person Enrichment API PDLJSClient.person.enrichment(params).then((data) => { var record = data.data // Print selected fields console.log( record["work_email"], record["full_name"], record["job_title"], record["job_company_name"], ) console.log("Successfully enriched profile with PDL data.") // Save enrichment data to JSON file fs.writeFile("my_pdl_enrichment.jsonl", Buffer.from(JSON.stringify(record)), (err) => { if (err) throw err; }); }).catch((error) => { console.log("Enrichment unsuccessful. See error and try again.") console.log(error); });
require 'json' # See https://github.com/peopledatalabs/peopledatalabs-ruby require 'peopledatalabs' # Set your API key Peopledatalabs.api_key = 'YOUR API KEY' # Use Sandbox API Peopledatalabs.sandbox = true # Create a parameters JSON object PARAMS = { "email": ["irussell@example.org"], "min_likelihood": 6 } # Pass the parameters object to the Person Enrichment API json_response = Peopledatalabs::Enrichment.person(params: PARAMS) # Check for successful response if json_response['status'] == 200 record = json_response['data'] # Print selected fields puts \ "#{record['work_email']}\ #{record['full_name']}\ #{record['job_title']}\ #{record['job_company_name']}" puts "Successfully enriched profile with PDL data." # Save enrichment data to JSON file File.open("my_pdl_enrichment.jsonl", "w") do |out| out.write(JSON.dump(record) + "\n") end else puts "Enrichment unsuccessful. See error and try again." puts "error: #{json_response}" end
package main import ( "fmt" "os" "encoding/json" "context" ) // See https://github.com/peopledatalabs/peopledatalabs-go import ( pdl "github.com/peopledatalabs/peopledatalabs-go" "github.com/peopledatalabs/peopledatalabs-go/api" pdlmodel "github.com/peopledatalabs/peopledatalabs-go/model" ) func main() { // Set your API key apiKey := "YOUR API KEY" // Set API key as environmental variable // apiKey := os.Getenv("API_KEY") // Create a client, specifying your API key and sandbox usage client := pdl.New(apiKey, api.ClientOptions(func(c *api.Client) { c.Sandbox = true })) // Create a parameters JSON object params := pdlmodel.EnrichPersonParams { PersonParams: pdlmodel.PersonParams { Email: []string{"irussell@example.org"}, }, AdditionalParams: pdlmodel.AdditionalParams { MinLikelihood: 6, }, } // Pass the parameters object to the Person Enrichment API response, err := client.Person.Enrich(context.Background(), params) // Check for successful response if err == nil { // Convert the API response to JSON jsonResponse, jsonErr := json.Marshal(response.Data) if jsonErr == nil { var record map[string]interface{} json.Unmarshal(jsonResponse, &record) // Print selected fields fmt.Println( record["work_email"], record["full_name"], record["job_title"], record["job_company_name"]) fmt.Println("Successfully enriched profile with PDL data.") // Save enrichment data to JSON file out, outErr := os.Create("my_pdl_enrichment.jsonl") defer out.Close() if outErr == nil { out.WriteString(string(jsonResponse) + "\n") } out.Sync() } } else { fmt.Println("Enrichment unsuccessful. See error and try again.") fmt.Println("error:", err) } }
import requests, json # Set your API key API_KEY = "YOUR API KEY" # Set the Person Enrichment API URL PDL_URL = "https://sandbox.api.peopledatalabs.com/v5/person/enrich" # Sandbox Person Enrichment API # PDL_URL = "https://api.peopledatalabs.com/v5/person/enrich" # Production Person Enrichment API # Create a parameters JSON object PARAMS = { "api_key": API_KEY, "email": ["irussell@example.org"], "min_likelihood": 6 } # Pass the parameters object to the Sandbox Person Enrichment API json_response = requests.get(PDL_URL, params=PARAMS).json() # Check for successful response if json_response["status"] == 200: record = json_response['data'] # Print selected fields print( record['work_email'], record['full_name'], record['job_title'], record['job_company_name'] ) print(f"Successfully enriched profile with PDL data.") # Save enrichment data to JSON file with open("my_pdl_enrichment.jsonl", "w") as out: out.write(json.dumps(record) + "\n") else: print("Enrichment unsuccessful. See error and try again.") print("error:", json_response)

See Examples - Person Enrichment API for additonal examples.

Sandbox Person Search API

To use the Sandbox Person Search API in URL, set https://sandbox.api.peopledatalabs.com/v5/person/search as the URL and then use the Person Search API as usual.

To use the Sandbox Person Search API with our SDKs, see SDK usage.

After implementing one of the two mechanisms above, you can make use of any of the examples for the Person Search API. However, since the Sandbox APIs only use the Sandbox Dataset, you can only search for profiles from that dataset. For example, here is how to perform a simple query following the Basic Usage example:

Basic Usage

import json # See https://github.com/peopledatalabs/peopledatalabs-python from peopledatalabs import PDLPY # Create a client, specifying your API key CLIENT = PDLPY( api_key="YOUR API KEY", # Use Sandbox API sandbox=True, ) # Create an Elasticsearch query ES_QUERY = { "query": { "bool": { "must": [ {"term": {"location_country": "mexico"}}, {"exists": {"field": "emails"}} ] } } } # Create a parameters JSON object PARAMS = { 'query': ES_QUERY, 'size': 10, 'pretty': True } # Pass the parameters object to the Person Search API response = CLIENT.person.search(**PARAMS).json() # Check for successful response if response["status"] == 200: data = response['data'] # Write out each profile found to file with open("my_pdl_search.jsonl", "w") as out: for record in data: out.write(json.dumps(record) + "\n") print(f"Successfully grabbed {len(data)} records from PDL.") print(f"{response['total']} total PDL records exist matching this query.") else: print("NOTE: The carrier pigeons lost motivation in flight. See error and try again.") print("Error:", response)
// See https://github.com/peopledatalabs/peopledatalabs-js import PDLJS from 'peopledatalabs'; import fs from 'fs'; // Create a client, specifying your API key const PDLJSClient = new PDLJS({ apiKey: "YOUR API KEY" }); // Create an Elasticsearch query const esQuery = { query: { bool: { must:[ {term: {location_country: "mexico"}}, {exists: {field: "emails"}} ] } } } // Create a parameters JSON object const params = { searchQuery: esQuery, size: 10, pretty: true, // Use Sandbox API sandbox: true } // Pass the parameters object to the Person Search API PDLJSClient.person.search.elastic(params).then((data) => { // Write out all profiles found to file fs.writeFile("my_pdl_search.jsonl", Buffer.from(JSON.stringify(data.data)), (err) => { if (err) throw err; }); console.log(`Successfully grabbed ${data.data.length} records from PDL.`); console.log(`${data["total"]} total PDL records exist matching this query.`) }).catch((error) => { console.log("NOTE: The carrier pigeons lost motivation in flight. See error and try again.") console.log(error); });
require 'json' # See https://github.com/peopledatalabs/peopledatalabs-ruby require 'peopledatalabs' # Set your API key Peopledatalabs.api_key = 'YOUR API KEY' # Use Sandbox API Peopledatalabs.sandbox = true # Create an Elasticsearch query ES_QUERY = { "query": { "bool": { "must": [ {"term": {"location_country": "mexico"}}, {"exists": {"field": "emails"}} ] } } } # Pass parameters to the Person Search API response = Peopledatalabs::Search.person(searchType: 'elastic', query: ES_QUERY, size: 10, pretty: true) # Check for successful response if response['status'] == 200 data = response['data'] # Write out each profile found to file File.open("my_pdl_search.jsonl", "w") do |out| data.each { |record| out.write(JSON.dump(record) + "\n") } end puts "Successfully grabbed #{data.length()} records from PDL." puts "#{response['total']} total PDL records exist matching this query." else puts "NOTE: The carrier pigeons lost motivation in flight. See error and try again." puts "Error: #{response}" end
package main import ( "fmt" "os" "encoding/json" "context" ) // See https://github.com/peopledatalabs/peopledatalabs-go import ( pdl "github.com/peopledatalabs/peopledatalabs-go" "github.com/peopledatalabs/peopledatalabs-go/api" pdlmodel "github.com/peopledatalabs/peopledatalabs-go/model" ) func main() { // Set your API key apiKey := "YOUR API KEY" // Set API key as environmental variable // apiKey := os.Getenv("API_KEY") // Create a client, specifying your API key and sandbox usage client := pdl.New(apiKey, api.ClientOptions(func(c *api.Client) { c.Sandbox = true })) // Create an Elasticsearch query elasticSearchQuery := map[string]interface{} { "query": map[string]interface{} { "bool": map[string]interface{} { "must": []map[string]interface{} { {"term": map[string]interface{}{"location_country": "mexico"}}, {"exists": map[string]interface{}{"field": "emails"}}, }, }, }, } // Create a parameters JSON object params := pdlmodel.SearchParams { BaseParams: pdlmodel.BaseParams { Size: 10, Pretty: true, }, SearchBaseParams: pdlmodel.SearchBaseParams { Query: elasticSearchQuery, }, } // Pass the parameters object to the Person Search API response, err := client.Person.Search(context.Background(), params) // Check for successful response if err == nil { data := response.Data // Create file out, outErr := os.Create("my_pdl_search.jsonl") defer out.Close() if (outErr == nil) { for i := range data { // Convert each profile found to JSON record, jsonErr := json.Marshal(data[i]) // Write out each profile to file if (jsonErr == nil) { out.WriteString(string(record) + "\n") } } out.Sync() } fmt.Printf("Successfully grabbed %d records from PDL.\n", len(data)) fmt.Printf("%d total PDL records exist matching this query.\n", response.Total) } else { fmt.Println("NOTE: The carrier pigeons lost motivation in flight. See error and try again.") fmt.Println("Error:", err) } }
import requests, json # Set your API key API_KEY = "YOUR API KEY" # Set the Person Search API URL PDL_URL = "https://sandbox.api.peopledatalabs.com/v5/person/search" # Sandbox Person Search API # PDL_URL = "https://api.peopledatalabs.com/v5/person/search" # Production Person Search API # Set headers HEADERS = { 'Content-Type': "application/json", 'X-api-key': API_KEY } # Create an Elasticsearch query ES_QUERY = { "query": { "bool": { "must": [ {"term": {"location_country": "mexico"}}, {"exists": {"field": "emails"}} ] } } } # Create a parameters JSON object PARAMS = { 'query': json.dumps(ES_QUERY), 'size': 10, 'pretty': True } # Pass the parameters object to the Sandbox Person Search API response = requests.get( PDL_URL, headers=HEADERS, params=PARAMS ).json() # Check for successful response if response["status"] == 200: data = response['data'] # Write out each profile found to file with open("my_pdl_search.jsonl", "w") as out: for record in data: out.write(json.dumps(record) + "\n") print(f"Successfully grabbed {len(data)} records from PDL.") print(f"{response['total']} total PDL records exist matching this query.") else: print("NOTE: The carrier pigeons lost motivation in flight. See error and try again.") print("Error:", response)

See Examples - Person Search API for additional examples.

Sandbox Person Identify API

To use the Sandbox Person Identify API in URL, set https://sandbox.api.peopledatalabs.com/v5/person/identify as the URL and then use the Person Identify API as usual.

To use the Sandbox Person Identify API with our SDKs, see SDK usage.

After implementing one of the two mechanisms above, you can make use of any of the examples for the Person Identify API. However, since the Sandbox APIs only use the Sandbox Dataset, you can only match profiles from that dataset. For example, here is how to perform a query following the Basic Usage example:

Basic Usage

import json # See https://github.com/peopledatalabs/peopledatalabs-python from peopledatalabs import PDLPY # Create a client, specifying your API key CLIENT = PDLPY( api_key="YOUR API KEY", # Use Sandbox API sandbox=True, ) # Create a parameters JSON object PARAMS = { "company": "walmart", "pretty": True } # Pass the parameters object to the Person Identify API response_data = CLIENT.person.identify(**PARAMS).json() # Create a list of matches identities = response_data['matches'] # Print the matches in JSON format print(identities) print(f"Found {len(identities)} identities!")
// See https://github.com/peopledatalabs/peopledatalabs-js import PDLJS from 'peopledatalabs'; // Create a client, specifying your API key const PDLJSClient = new PDLJS({ apiKey: "YOUR API KEY" }); // Create a parameters JSON object const params = { company: "walmart", pretty: true, // Use Sandbox API sandbox: true } // Pass the parameters object to the Person Identify API PDLJSClient.person.identify(params).then((data) => { // Create a list of matches var identities = data["matches"] // Print the matches in JSON format console.log(identities); console.log(`Found ${identities.length} identities!`) }).catch((error) => { console.log(error); });
# See https://github.com/peopledatalabs/peopledatalabs-ruby require 'peopledatalabs' # Set your API key Peopledatalabs.api_key = 'YOUR API KEY' # Use Sandbox API Peopledatalabs.sandbox = true # Create a parameters JSON object PARAMS = { "company": "walmart", "pretty": true } # Pass the parameters object to the Person Identify API response = Peopledatalabs::Identify.person(params: PARAMS) # Create a list of matches identities = response['matches'] # Print the matches in JSON format puts identities puts "Found #{identities.length()} identities!"
package main import ( "fmt" "encoding/json" "context" ) // See https://github.com/peopledatalabs/peopledatalabs-go import ( pdl "github.com/peopledatalabs/peopledatalabs-go" "github.com/peopledatalabs/peopledatalabs-go/api" pdlmodel "github.com/peopledatalabs/peopledatalabs-go/model" ) func main() { // Set your API key apiKey := "YOUR API KEY" // Set API key as environmental variable // apiKey := os.Getenv("API_KEY") // Create a client, specifying your API key and sandbox usage client := pdl.New(apiKey, api.ClientOptions(func(c *api.Client) { c.Sandbox = true })) // Create a parameters JSON object params := pdlmodel.IdentifyPersonParams { BaseParams: pdlmodel.BaseParams { Pretty: true, }, PersonParams: pdlmodel.PersonParams { Company: []string{"walmart"}, }, } // Pass the parameters object to the Person Identify API response, err := client.Person.Identify(context.Background(), params) // Check for successful response if err == nil { // Create a list of matches identities := response.Matches // Convert the matches to JSON jsonResponse, jsonErr := json.Marshal(identities) // Print the matches if (jsonErr == nil) { fmt.Println(string(jsonResponse)) } fmt.Printf("Found %d identities!\n", len(identities)) } else { fmt.Println(err) } }
import requests # Set your API key API_KEY = "YOUR API KEY" # Set the Person Identify API URL PDL_URL = "https://sandbox.api.peopledatalabs.com/v5/person/identify" # Sandbox Identify API # PDL_URL = "https://api.peopledatalabs.com/v5/person/identify" # Production Identify API # Create a parameters JSON object PARAMS = { "company": "walmart", "pretty": True, "api_key": API_KEY } # Pass the parameters object to the Sandbox Person Identify API response = requests.request("GET", PDL_URL, params=PARAMS) response_data = response.json() # Create a list of matches identities = response_data['matches'] # Print the matches in JSON format print(identities) print(f"Found {len(identities)} identities!")

See Examples - Person Identify API for additional examples.


Did this page help you?