Enrich Profile
curl --request POST \
--url https://api.example.com/v1/tools/lookup/person-profile \
--header 'Content-Type: application/json' \
--data '
{
"include_phone": true,
"company_domain": "<string>",
"company_name": "<string>"
}
'import requests
url = "https://api.example.com/v1/tools/lookup/person-profile"
payload = {
"include_phone": True,
"company_domain": "<string>",
"company_name": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({include_phone: true, company_domain: '<string>', company_name: '<string>'})
};
fetch('https://api.example.com/v1/tools/lookup/person-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/tools/lookup/person-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'include_phone' => true,
'company_domain' => '<string>',
'company_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/tools/lookup/person-profile"
payload := strings.NewReader("{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/tools/lookup/person-profile")
.header("Content-Type", "application/json")
.body("{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tools/lookup/person-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyResearch & Enrich
Enrich Profile
Enrich a person profile from a name and company, an email, a phone or a profile URL
POST
/
v1
/
tools
/
lookup
/
person-profile
Enrich Profile
curl --request POST \
--url https://api.example.com/v1/tools/lookup/person-profile \
--header 'Content-Type: application/json' \
--data '
{
"include_phone": true,
"company_domain": "<string>",
"company_name": "<string>"
}
'import requests
url = "https://api.example.com/v1/tools/lookup/person-profile"
payload = {
"include_phone": True,
"company_domain": "<string>",
"company_name": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({include_phone: true, company_domain: '<string>', company_name: '<string>'})
};
fetch('https://api.example.com/v1/tools/lookup/person-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/tools/lookup/person-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'include_phone' => true,
'company_domain' => '<string>',
'company_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/tools/lookup/person-profile"
payload := strings.NewReader("{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/tools/lookup/person-profile")
.header("Content-Type", "application/json")
.body("{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tools/lookup/person-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"include_phone\": true,\n \"company_domain\": \"<string>\",\n \"company_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body
Overview
Returns a person’s job title, company, social profiles, and other details. Look them up by name + company, email address, phone, or a LinkedIn, X or GitHub profile URL. No LinkedIn URL is needed.Optional phone lookup
Request Body
boolean
default:"false"
Buy a phone lookup for up to one person at the add-on listed on the Pricing page; no hit guaranteed.
string
Older name for a company domain (e.g., “microsoft.com”);
company takes a name or a domainstring
Older name for a company name (e.g., “Microsoft”);
company takes a name or a domainResponse (202, processing)
{
"request_id": "req_abc123",
"status": "processing",
"tool": "enrich_profile",
"message": "Profile enrichment job queued successfully"
}
Job Result
{
"status": "completed",
"result": {
"cached": false,
"fetched_at": "2026-10-24T12:00:00Z",
"profile": {
"full_name": "Satya Nadella",
"first_name": "Satya",
"last_name": "Nadella",
"title": "Chairman and CEO",
"company": "Microsoft",
"company_domain": "microsoft.com",
"linkedin_url": "linkedin.com/in/satyanadella",
"location": "Bellevue, Washington",
"email": "[email protected]",
"phone": "+14255551234",
"summary": "Chairman and CEO of Microsoft...",
"skills": ["Leadership", "Cloud Computing", "AI"],
"experience": [
{
"company": { "name": "Microsoft" },
"title": { "name": "Chairman and CEO" },
"start_date": "2014-02",
"is_primary": true
}
],
"education": [
{
"school": { "name": "University of Wisconsin-Milwaukee" },
"degrees": ["Master of Science"],
"majors": ["Computer Science"]
}
]
}
}
}
SDK Usage
// By name + company (a name or a domain)
const profile = await agent.personProfile({
name: 'Satya Nadella',
company: 'Microsoft'
});
// By email
const profile = await agent.personProfile({
email: '[email protected]'
});
// By an X, GitHub or LinkedIn profile URL
const profile = await agent.personProfile({
profile_url: 'https://x.com/satyanadella'
});
console.log(`${profile.profile.full_name}`);
console.log(`${profile.profile.title} at ${profile.profile.company}`);
Data Fields
| Field | Description |
|---|---|
full_name | Full name |
first_name | First name |
last_name | Last name |
title | Current job title |
company | Current company name |
company_domain | Company website domain |
linkedin_url | LinkedIn profile URL |
location | Location (city, state) |
email | Email address |
phone | Phone number |
summary | Bio / summary |
skills | Array of skills |
experience | Work history |
education | Education history |
social_accounts, a list of { platform, url, handle } from the lookup record and the caller URL. The list is empty when no accounts are known; handle can be null. A caller URL on a network the parser does not recognise (for example facebook.com/jane, or an internationalised hostname such as münchen.social/@jane) is still kept, with platform set to the site name (facebook, münchen) and a null handle. This does not run a paid username search. The existing linkedin_url field stays in place.