Enrich a person or company from any combination of identifiers
curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/enrich \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"company": "<string>",
"companyDomain": "<string>",
"email": "<string>",
"emailDomain": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"personalAddress": "<string>",
"personalCity": "<string>",
"personalState": "<string>",
"personalZip": "<string>",
"phone": "<string>",
"sha256Email": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/enrich"
payload = {
"companyId": "<string>",
"company": "<string>",
"companyDomain": "<string>",
"email": "<string>",
"emailDomain": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"personalAddress": "<string>",
"personalCity": "<string>",
"personalState": "<string>",
"personalZip": "<string>",
"phone": "<string>",
"sha256Email": "<string>"
}
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({
companyId: '<string>',
company: '<string>',
companyDomain: '<string>',
email: '<string>',
emailDomain: '<string>',
firstName: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
personalAddress: '<string>',
personalCity: '<string>',
personalState: '<string>',
personalZip: '<string>',
phone: '<string>',
sha256Email: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/enrich', 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.parallellabs.app/api/v0/leads/enrich",
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([
'companyId' => '<string>',
'company' => '<string>',
'companyDomain' => '<string>',
'email' => '<string>',
'emailDomain' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'linkedinUrl' => '<string>',
'personalAddress' => '<string>',
'personalCity' => '<string>',
'personalState' => '<string>',
'personalZip' => '<string>',
'phone' => '<string>',
'sha256Email' => '<string>'
]),
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://api.parallellabs.app/api/v0/leads/enrich"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\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://api.parallellabs.app/api/v0/leads/enrich")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/enrich")
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 \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"results": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Leads
Enrich a person or company from any combination of identifiers
Provide any combination of name, email, phone, company, domain, LinkedIn
URL, or address — more identifiers = more precise matching. Returns full
contact profiles (emails, phones, job title, employer, up to ~75 fields
per match). A no-match returns {results: [], count: 0}, not an error, and
is not charged. Costs 2 data credits per matched call.
POST
/
api
/
v0
/
leads
/
enrich
Enrich a person or company from any combination of identifiers
curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/enrich \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"company": "<string>",
"companyDomain": "<string>",
"email": "<string>",
"emailDomain": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"personalAddress": "<string>",
"personalCity": "<string>",
"personalState": "<string>",
"personalZip": "<string>",
"phone": "<string>",
"sha256Email": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/enrich"
payload = {
"companyId": "<string>",
"company": "<string>",
"companyDomain": "<string>",
"email": "<string>",
"emailDomain": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"personalAddress": "<string>",
"personalCity": "<string>",
"personalState": "<string>",
"personalZip": "<string>",
"phone": "<string>",
"sha256Email": "<string>"
}
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({
companyId: '<string>',
company: '<string>',
companyDomain: '<string>',
email: '<string>',
emailDomain: '<string>',
firstName: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
personalAddress: '<string>',
personalCity: '<string>',
personalState: '<string>',
personalZip: '<string>',
phone: '<string>',
sha256Email: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/enrich', 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.parallellabs.app/api/v0/leads/enrich",
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([
'companyId' => '<string>',
'company' => '<string>',
'companyDomain' => '<string>',
'email' => '<string>',
'emailDomain' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'linkedinUrl' => '<string>',
'personalAddress' => '<string>',
'personalCity' => '<string>',
'personalState' => '<string>',
'personalZip' => '<string>',
'phone' => '<string>',
'sha256Email' => '<string>'
]),
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://api.parallellabs.app/api/v0/leads/enrich"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\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://api.parallellabs.app/api/v0/leads/enrich")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/enrich")
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 \"companyId\": \"<string>\",\n \"company\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"email\": \"<string>\",\n \"emailDomain\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"personalAddress\": \"<string>\",\n \"personalCity\": \"<string>\",\n \"personalState\": \"<string>\",\n \"personalZip\": \"<string>\",\n \"phone\": \"<string>\",\n \"sha256Email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"results": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
CompanyApiKeyBearerAuth & CompanyId
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Body
application/json
Identifiers for the person/company to enrich
Company ID (bills its data credits)
Company name
Company domain name
Email address
Email domain (e.g., company.com)
First name
Last name
LinkedIn profile URL
Personal street address
Personal city
Personal state/province
Personal ZIP/postal code
Phone number
SHA256 hash of the email, when only a hash is known.
Generate leads by filters, premade segments, and/or buyer-intent keywordsDescribe the lead-generation filter surface and list valid enum values
⌘I

