curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/people-search/export \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"rows": [
{}
],
"includeEmail": true,
"includePhone": false,
"importId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/people-search/export"
payload = {
"companyId": "<string>",
"rows": [{}],
"includeEmail": True,
"includePhone": False,
"importId": "<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>',
rows: [{}],
includeEmail: true,
includePhone: false,
importId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/people-search/export', 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/people-search/export",
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>',
'rows' => [
[
]
],
'includeEmail' => true,
'includePhone' => false,
'importId' => '<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/people-search/export"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<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/people-search/export")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/people-search/export")
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 \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"items": [
{}
],
"failed": 123,
"creditCost": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Enrich and bill one result page for CSV export.
curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/people-search/export \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"rows": [
{}
],
"includeEmail": true,
"includePhone": false,
"importId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/people-search/export"
payload = {
"companyId": "<string>",
"rows": [{}],
"includeEmail": True,
"includePhone": False,
"importId": "<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>',
rows: [{}],
includeEmail: true,
includePhone: false,
importId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/people-search/export', 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/people-search/export",
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>',
'rows' => [
[
]
],
'includeEmail' => true,
'includePhone' => false,
'importId' => '<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/people-search/export"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<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/people-search/export")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/people-search/export")
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 \"rows\": [\n {}\n ],\n \"includeEmail\": true,\n \"includePhone\": false,\n \"importId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"items": [
{}
],
"failed": 123,
"creditCost": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Body
Company ID for access and any applicable data-credit charges
Select 1–50 search results. Each needs linkedinUrl or email. Profile values must be text of at most 5000 characters (250000 for profileData, about and companyDescription). profileData retains the complete search profile as JSON. Supported fields: profileData, allEmails, externalId, displayName, firstName, lastName, email, businessEmail, personalEmail, phoneNumber, linkedinUrl, headline, location, positionTitle, positionLocation, seniority, department, companyName, companyWebsite, companyLinkedinUrl, companyEmployeeRange, companyIndustry, companyAnnualRevenue, businessEmailRiskScore, businessEmailValidatedAt, numOfConnections, about, photoUrl, companyDescription, companyFoundedOn, companyNumberOfFollowers, companyEmployeesOnLinkedin, companyLocation.
Enrich email for 1 data credit per person.
Enrich mobile/direct phone for 2 data credits per returned number.
Optional UUID identifying this import for credit-charge deduplication. Reuse it when retrying the same selection.

