Examples - Person Retrieve API

Code examples and walkthroughs using the Person Retrieve API

We've provided code samples in Python, cURL, Ruby, Go and JavaScript. If you aren't comfortable working in any of these languages, feel free to use this handy tool to convert code from cURL to the language of your choice.

📘

See a Bug? Want To See a Specific Example?

Feel free to use the Suggest Edits button in the top right-hand corner of this page to point out any bugs or to request any specific code examples for this API that you'd like to see here.

Basic Usage

"I want to look up information for a PDL Person ID that I have."

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",
)

# Create a parameters JSON object
PARAMS = {
    "person_id": "qEnOZ5Oh0poWnQ1luFBfVw_0000", # The ID for the record we want
    "pretty": True
}

# Pass the parameters object to the Person Retrieve API
json_response = CLIENT.person.retrieve(**PARAMS).json()

# Print the API response in JSON format
print(json_response)
curl -X GET -G \
  'https://api.peopledatalabs.com/v5/person/retrieve/qEnOZ5Oh0poWnQ1luFBfVw_0000'\
  -H 'X-Api-Key: xxxx' \
  --data-urlencode 'pretty=True'
// 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" });

// Pass a person ID to the Person Retrieve API
PDLJSClient.person.retrieve({ id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' }).then((data) => {
  // Print the API response in JSON format
  console.log(data);
}).catch((error) => {
  console.log(error);
});
require 'json'

# See https://github.com/peopledatalabs/peopledatalabs-ruby
require 'peopledatalabs'

# Set your API key
Peopledatalabs.api_key = 'YOUR API KEY'

# Pass a person ID to the Person Retrieve API
json_response = Peopledatalabs::Retrieve.person(person_id: "qEnOZ5Oh0poWnQ1luFBfVw_0000")

# Print the API response in JSON format
puts JSON.dump(json_response)
package main

import (
    "fmt"
    "encoding/json"
    "context"
)

// See https://github.com/peopledatalabs/peopledatalabs-go
import (
    pdl "github.com/peopledatalabs/peopledatalabs-go"
    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
    client := pdl.New(apiKey)
    
    // Create a parameters JSON object
    params := pdlmodel.RetrievePersonParams {
        BaseParams: pdlmodel.BaseParams {
            Pretty: true,
        },
        PersonID: "qEnOZ5Oh0poWnQ1luFBfVw_0000",
    }
    
    // Pass the parameters object to the Person Retrieve API
    response, err := client.Person.Retrieve(context.Background(), params)
    // Check for successful response
    if err == nil {
        // Convert the API response to JSON
        jsonResponse, jsonErr := json.Marshal(response)
        // Print the API response
        if (jsonErr == nil) {
            fmt.Println(string(jsonResponse))
        }
    }
}
import requests, json

# Set your API key
API_KEY = "YOUR API KEY"

# Set the Person Retrieve API URL
PDL_BASE_URL = "https://api.peopledatalabs.com/v5/person/retrieve"

# Set the person ID
PERSON_ID = "qEnOZ5Oh0poWnQ1luFBfVw_0000" # The ID for the record we want

# Create a parameters JSON object
PARAMS = {
    "api_key": API_KEY,
    "pretty": True
}

# Append the person ID to the API URL
URL_PATH = f"{PDL_BASE_URL}/{PERSON_ID}"

# Pass the URL path and the parameters object to the Person Retrieve API
json_response = requests.get(URL_PATH, params=PARAMS).json()

# Print the API response in JSON format
print(json_response)

Record Updating

"I have a PDL record, and I want to update it."

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",
)

# A stale person record that you would like to update
STALE_PERSON_RECORD = {
  "id": "qEnOZ5Oh0poWnQ1luFBfVw_0000",
  "first_name": "sean",
  "last_name": "thorne",
  "job_title": "an old job title",
} 

# Create a parameters JSON object
PARAMS = {
    "person_id": STALE_PERSON_RECORD['id'], # The ID for the record we want to update
    "pretty": True
}

# Pass the parameters object to the Person Retrieve API
json_response = CLIENT.person.retrieve(**PARAMS).json()

# Replace fields in the stale record with updated values from the API response
new_person_record = {
    key:json_response['data'][key] for key in json_response['data'].keys() if key in STALE_PERSON_RECORD
}

# Print records
print(f"Old Person Record: \n{STALE_PERSON_RECORD}")
print(f"New Person Record: \n{new_person_record}")
// 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" });

// A stale person record that you would like to update
const stalePersonRecord =   {
                                "id": "qEnOZ5Oh0poWnQ1luFBfVw_0000",
                                "first_name": "sean",
                                "last_name": "thorne",
                                "job_title": "an old job title",
                            } 

// The ID for the record we want to update
const personID = { "id": stalePersonRecord['id'] };

// Pass the person ID to the Person Retrieve API
PDLJSClient.person.retrieve(personID).then((data) => {
    var newPersonRecord = {};
    var record = data.data;
    
    // Replace fields in the stale record with updated values from the API response
    for (let field in record) {
        if (stalePersonRecord[field]) {
            newPersonRecord[field] = record[field];
        }
    }
    
    // Print records
    console.log("Old Person Record: \n" + stalePersonRecord.job_title);
    console.log("New Person Record: \n" + newPersonRecord.job_title);
}).catch((error) => {
    console.log(error);
});
# See https://github.com/peopledatalabs/peopledatalabs-ruby
require 'peopledatalabs'

# Set your API key
Peopledatalabs.api_key = 'YOUR API KEY'

# A stale person record that you would like to update
STALE_PERSON_RECORD = {
  id: "qEnOZ5Oh0poWnQ1luFBfVw_0000",
  first_name: "sean",
  last_name: "thorne",
  job_title: "an old job title",
}

# Pass the person ID to the Person Retrieve API
response = Peopledatalabs::Retrieve.person(person_id: STALE_PERSON_RECORD[:id])
data = response['data']

# Replace fields in the stale record with updated values from the API response
new_person_record = {}
STALE_PERSON_RECORD.each do |key, value|
    new_person_record[key] = data[key.to_s]
end

# Print records
puts "Old Person Record: \n#{STALE_PERSON_RECORD}"
puts "New Person Record: \n#{new_person_record}"
package main

import (
    "fmt"
    "encoding/json"
    "context"
)

// See https://github.com/peopledatalabs/peopledatalabs-go
import (
    pdl "github.com/peopledatalabs/peopledatalabs-go"
    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
    client := pdl.New(apiKey)

    // A stale person record that you would like to update
    stalePersonRecord := map[string]string {
        "id": "qEnOZ5Oh0poWnQ1luFBfVw_0000",
        "first_name": "sean",
        "last_name": "thorne",
        "job_title": "an old job title",
    }
   
    // Create a parameters JSON object
    params := pdlmodel.RetrievePersonParams {
        BaseParams: pdlmodel.BaseParams {
            Pretty: true,
        },
        // The ID for the record we want to update
        PersonID: stalePersonRecord["id"],
    }
    
    // Pass the parameters object to the Person Retrieve API
    response, err := client.Person.Retrieve(context.Background(), params)
    // Check for successful response
    if err == nil {
        newPersonRecord := make(map[string]string)
        var data map[string]string
        
        // Convert the API response to JSON
        jsonResponse, jsonErr := json.Marshal(response.Data)
        if jsonErr == nil {
            json.Unmarshal(jsonResponse, &data) 
            // Replace fields in the stale record with updated values from the API response
            for key := range stalePersonRecord {
                if dataKey, ok := data[key]; ok {
                    newPersonRecord[key] = dataKey
                }
            }
            // Print records
            fmt.Printf("Old Person Record: %v\n", stalePersonRecord)
            fmt.Printf("New Person Record: %v\n", newPersonRecord)
        }
    }
}
import requests, json

# Set your API key
API_KEY = "YOUR API KEY"

# Set the Person Retrieve API URL
PDL_BASE_URL = "https://api.peopledatalabs.com/v5/person/retrieve"

# A stale person record that you would like to update
STALE_PERSON_RECORD = {
  "id": "qEnOZ5Oh0poWnQ1luFBfVw_0000",
  "first_name": "sean",
  "last_name": "thorne",
  "job_title": "an old job title",
} 

# The ID for the record we want to update
PERSON_ID = STALE_PERSON_RECORD['id'] 

# Create a parameters JSON object
PARAMS = {
    "api_key": API_KEY
}

# Append the person ID to the API URL
URL_PATH = f"{PDL_BASE_URL}/{PERSON_ID}"

# Pass the URL path and the parameters object to the Person Retrieve API
json_response = requests.get(URL_PATH, params=PARAMS).json()

# Replace fields in the stale record with updated values from the API response
new_person_record = {
    key:json_response['data'][key] for key in json_response['data'].keys() if key in STALE_PERSON_RECORD
}

# Print records
print(f"Old Person Record: \n{STALE_PERSON_RECORD}")
print(f"New Person Record: \n{new_person_record}")