curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"includeEmail": true,
"includePhone": false,
"rows": [
{}
],
"filters": {},
"count": 123,
"importAll": true,
"importId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import"
payload = {
"companyId": "<string>",
"includeEmail": True,
"includePhone": False,
"rows": [{}],
"filters": {},
"count": 123,
"importAll": True,
"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>',
includeEmail: true,
includePhone: false,
rows: [{}],
filters: {},
count: 123,
importAll: true,
importId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import', 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/lists/{listId}/import",
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>',
'includeEmail' => true,
'includePhone' => false,
'rows' => [
[
]
],
'filters' => [
],
'count' => 123,
'importAll' => true,
'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/lists/{listId}/import"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\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/lists/{listId}/import")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\n \"importId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import")
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 \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\n \"importId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"taskId": "<string>",
"listId": "<string>",
"status": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Queue selected rows or a bounded filtered search into a company-owned smart list.
curl --request POST \
--url https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"includeEmail": true,
"includePhone": false,
"rows": [
{}
],
"filters": {},
"count": 123,
"importAll": true,
"importId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import"
payload = {
"companyId": "<string>",
"includeEmail": True,
"includePhone": False,
"rows": [{}],
"filters": {},
"count": 123,
"importAll": True,
"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>',
includeEmail: true,
includePhone: false,
rows: [{}],
filters: {},
count: 123,
importAll: true,
importId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import', 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/lists/{listId}/import",
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>',
'includeEmail' => true,
'includePhone' => false,
'rows' => [
[
]
],
'filters' => [
],
'count' => 123,
'importAll' => true,
'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/lists/{listId}/import"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\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/lists/{listId}/import")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\n \"importId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/leads/people-search/lists/{listId}/import")
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 \"includeEmail\": true,\n \"includePhone\": false,\n \"rows\": [\n {}\n ],\n \"filters\": {},\n \"count\": 123,\n \"importAll\": true,\n \"importId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"taskId": "<string>",
"listId": "<string>",
"status": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Body
Company ID for access and any applicable data-credit charges
Enrich email for 1 data credit per person.
Enrich mobile/direct phone for 2 data credits per returned number.
Select 1–50 search results. Each needs linkedinUrl or email. Profile values must be text of at most 5000 characters (250000 for structured fields and long descriptions). Structured fields such as workHistory and educationHistory contain JSON in their own columns. Supported fields: workHistory, educationHistory, skills, certifications, locationDetails, companyLocationDetails, companyNaicsCodes, companyNaicsTitles, companyLinkedinIndustries, allEmails, nickname, salutation, profileUpdatedAt, companyEmployeeCount, 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, summary, positionDescription, companyHeadquarters, companyCountry, companyType, companyKeywords, companyLogoUrl.
Search filters; required when rows are omitted.
Maximum people to process, from 1 to 50000.
Process matching results, capped at 50000.
Optional UUID identifying this job. Reuse it to retrieve the same job when retrying an unchanged request.

