curl --request POST \
--url https://prod.leadvector.app/v1/enrich-person \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"linkedinUrl": "https://www.linkedin.com/in/jane-doe",
"email": "jane.doe@acme.com",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"domain": "acme.com",
"includePhone": false
}
'import requests
url = "https://prod.leadvector.app/v1/enrich-person"
payload = {
"linkedinUrl": "https://www.linkedin.com/in/jane-doe",
"email": "jane.doe@acme.com",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"domain": "acme.com",
"includePhone": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedinUrl: 'https://www.linkedin.com/in/jane-doe',
email: 'jane.doe@acme.com',
fullName: 'Jane Doe',
firstName: 'Jane',
lastName: 'Doe',
domain: 'acme.com',
includePhone: false
})
};
fetch('https://prod.leadvector.app/v1/enrich-person', 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://prod.leadvector.app/v1/enrich-person",
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([
'linkedinUrl' => 'https://www.linkedin.com/in/jane-doe',
'email' => 'jane.doe@acme.com',
'fullName' => 'Jane Doe',
'firstName' => 'Jane',
'lastName' => 'Doe',
'domain' => 'acme.com',
'includePhone' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://prod.leadvector.app/v1/enrich-person"
payload := strings.NewReader("{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://prod.leadvector.app/v1/enrich-person")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.leadvector.app/v1/enrich-person")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "PERSON_ENRICHED",
"data": {
"uuid": "0190c3f4-7a2b-7c1d-9e8f-123456789abc",
"firstName": "Jane",
"lastName": "Doe",
"fullName": "Jane Doe",
"headline": "Head of Sales at Acme",
"summary": "<string>",
"photoUrl": "<string>",
"linkedinUrl": "linkedin.com/in/jane-doe",
"twitterUrl": "<string>",
"githubUrl": "<string>",
"facebookUrl": "<string>",
"linkedinConnections": 500,
"location": {
"city": "San Francisco",
"state": "California",
"country": "United States",
"countryCode": "US",
"timeZone": "America/Los_Angeles"
},
"workEmail": {
"address": "jane.doe@acme.com",
"status": "valid"
},
"phone": {
"number": "+14155550100",
"nationalNumber": "4155550100",
"callingCode": "+1",
"countryCode": "US"
},
"currentPosition": {
"title": "Head of Sales",
"seniority": "Director",
"departments": [
"Sales"
],
"functions": [
"Business Development"
],
"startDate": "2023-04",
"company": {
"name": "Acme",
"domain": "acme.com",
"linkedinUrl": "linkedin.com/company/acme",
"industry": "Software Development",
"size": 1200,
"city": "San Francisco",
"country": "US",
"description": "<string>"
}
},
"experiences": [
{
"title": "Head of Sales",
"companyName": "Acme",
"companyDomain": "acme.com",
"companyLinkedinUrl": "linkedin.com/company/acme",
"description": "<string>",
"location": "San Francisco, CA, US",
"employmentType": "Full-time",
"workArrangement": "Hybrid",
"startDate": "2023-04",
"endDate": null,
"isCurrent": true,
"seniority": "Director",
"departments": [
"Sales"
]
}
],
"education": [
{
"school": "Stanford University",
"schoolLinkedinUrl": "https://www.linkedin.com/school/stanford-university",
"degree": "Bachelor of Science",
"fieldOfStudy": "Computer Science",
"grade": "<string>",
"startDate": "2010",
"endDate": "2014"
}
],
"certifications": [
{
"name": "AWS Solutions Architect",
"authority": "Amazon Web Services",
"url": "<string>",
"licenseNumber": "<string>",
"startDate": "2020-01",
"endDate": "2023-01"
}
],
"skills": [
"Negotiation"
],
"languages": [
{
"name": "French",
"code": "FR"
}
],
"enrichedAt": "2026-10-21T09:30:00.000Z"
}
}{
"statusCode": 401,
"message": "INVALID_API_KEY",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"error": "Unauthorized"
}{
"statusCode": 401,
"message": "INVALID_API_KEY",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"error": "Unauthorized"
}{
"statusCode": 401,
"message": "INSUFFICIENT_CREDITS",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"code": "INSUFFICIENT_CREDITS",
"error": "Unauthorized",
"feature": "EMAIL_FINDER",
"required": 100,
"remaining": 40
}{
"statusCode": 401,
"message": "RATE_LIMIT_EXCEEDED",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"limit": 10,
"windowSeconds": 60,
"retryAfterSeconds": 6,
"error": "Unauthorized"
}Enrich a person: full profile with the work email, and the mobile when asked (paid)
Send one of: linkedinUrl; email (a work email); fullName, or firstName and lastName, with domain. A profile found costs 1 credit; with includePhone and a phone found, 5. Nothing is charged when no one is found, and a repeat within 30 days of a paid one is free. A profile enriched in the last 30 days is served as stored.
Cost: 1 credit when the person is found; 5 credits with includePhone and a phone found. Free when the person isn’t found, and free again within 30 days for what you already paid for.
curl --request POST \
--url https://prod.leadvector.app/v1/enrich-person \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"linkedinUrl": "https://www.linkedin.com/in/jane-doe",
"email": "jane.doe@acme.com",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"domain": "acme.com",
"includePhone": false
}
'import requests
url = "https://prod.leadvector.app/v1/enrich-person"
payload = {
"linkedinUrl": "https://www.linkedin.com/in/jane-doe",
"email": "jane.doe@acme.com",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"domain": "acme.com",
"includePhone": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedinUrl: 'https://www.linkedin.com/in/jane-doe',
email: 'jane.doe@acme.com',
fullName: 'Jane Doe',
firstName: 'Jane',
lastName: 'Doe',
domain: 'acme.com',
includePhone: false
})
};
fetch('https://prod.leadvector.app/v1/enrich-person', 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://prod.leadvector.app/v1/enrich-person",
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([
'linkedinUrl' => 'https://www.linkedin.com/in/jane-doe',
'email' => 'jane.doe@acme.com',
'fullName' => 'Jane Doe',
'firstName' => 'Jane',
'lastName' => 'Doe',
'domain' => 'acme.com',
'includePhone' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://prod.leadvector.app/v1/enrich-person"
payload := strings.NewReader("{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://prod.leadvector.app/v1/enrich-person")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.leadvector.app/v1/enrich-person")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedinUrl\": \"https://www.linkedin.com/in/jane-doe\",\n \"email\": \"jane.doe@acme.com\",\n \"fullName\": \"Jane Doe\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"domain\": \"acme.com\",\n \"includePhone\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "PERSON_ENRICHED",
"data": {
"uuid": "0190c3f4-7a2b-7c1d-9e8f-123456789abc",
"firstName": "Jane",
"lastName": "Doe",
"fullName": "Jane Doe",
"headline": "Head of Sales at Acme",
"summary": "<string>",
"photoUrl": "<string>",
"linkedinUrl": "linkedin.com/in/jane-doe",
"twitterUrl": "<string>",
"githubUrl": "<string>",
"facebookUrl": "<string>",
"linkedinConnections": 500,
"location": {
"city": "San Francisco",
"state": "California",
"country": "United States",
"countryCode": "US",
"timeZone": "America/Los_Angeles"
},
"workEmail": {
"address": "jane.doe@acme.com",
"status": "valid"
},
"phone": {
"number": "+14155550100",
"nationalNumber": "4155550100",
"callingCode": "+1",
"countryCode": "US"
},
"currentPosition": {
"title": "Head of Sales",
"seniority": "Director",
"departments": [
"Sales"
],
"functions": [
"Business Development"
],
"startDate": "2023-04",
"company": {
"name": "Acme",
"domain": "acme.com",
"linkedinUrl": "linkedin.com/company/acme",
"industry": "Software Development",
"size": 1200,
"city": "San Francisco",
"country": "US",
"description": "<string>"
}
},
"experiences": [
{
"title": "Head of Sales",
"companyName": "Acme",
"companyDomain": "acme.com",
"companyLinkedinUrl": "linkedin.com/company/acme",
"description": "<string>",
"location": "San Francisco, CA, US",
"employmentType": "Full-time",
"workArrangement": "Hybrid",
"startDate": "2023-04",
"endDate": null,
"isCurrent": true,
"seniority": "Director",
"departments": [
"Sales"
]
}
],
"education": [
{
"school": "Stanford University",
"schoolLinkedinUrl": "https://www.linkedin.com/school/stanford-university",
"degree": "Bachelor of Science",
"fieldOfStudy": "Computer Science",
"grade": "<string>",
"startDate": "2010",
"endDate": "2014"
}
],
"certifications": [
{
"name": "AWS Solutions Architect",
"authority": "Amazon Web Services",
"url": "<string>",
"licenseNumber": "<string>",
"startDate": "2020-01",
"endDate": "2023-01"
}
],
"skills": [
"Negotiation"
],
"languages": [
{
"name": "French",
"code": "FR"
}
],
"enrichedAt": "2026-10-21T09:30:00.000Z"
}
}{
"statusCode": 401,
"message": "INVALID_API_KEY",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"error": "Unauthorized"
}{
"statusCode": 401,
"message": "INVALID_API_KEY",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"error": "Unauthorized"
}{
"statusCode": 401,
"message": "INSUFFICIENT_CREDITS",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"code": "INSUFFICIENT_CREDITS",
"error": "Unauthorized",
"feature": "EMAIL_FINDER",
"required": 100,
"remaining": 40
}{
"statusCode": 401,
"message": "RATE_LIMIT_EXCEEDED",
"traceId": "4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f",
"timestamp": "2026-11-03T09:41:12.000Z",
"path": "/v1/find-email",
"limit": 10,
"windowSeconds": 60,
"retryAfterSeconds": 6,
"error": "Unauthorized"
}Authorizations
Your API key, from the API keys page of the app.
Body
LinkedIn profile URL of the person.
"https://www.linkedin.com/in/jane-doe"
Work email of the person (not a personal address).
"jane.doe@acme.com"
Full name of the person, with domain. Or send firstName and lastName.
"Jane Doe"
First name of the person, with lastName and domain.
"Jane"
Last name of the person, with firstName and domain.
"Doe"
Company domain (without @), with the name.
"acme.com"
Also find the mobile number. A person with a phone costs 5 credits instead of 1; without one found, 1.
false