curl --request POST \
--url https://public-api.lonescale.com/trigger/contact-sourcing/sync \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"company_name": "Acme Corp",
"company_domain": "acme.com",
"company_linkedin_url": "https://www.linkedin.com/company/acme",
"personas": [
{
"name": "Tech Leaders",
"job_titles": [
"CTO",
"VP Engineering"
]
}
],
"limit": 5,
"custom": {
"id": "12356",
"provider": "lonescale"
}
}
'import requests
url = "https://public-api.lonescale.com/trigger/contact-sourcing/sync"
payload = {
"company_name": "Acme Corp",
"company_domain": "acme.com",
"company_linkedin_url": "https://www.linkedin.com/company/acme",
"personas": [
{
"name": "Tech Leaders",
"job_titles": ["CTO", "VP Engineering"]
}
],
"limit": 5,
"custom": {
"id": "12356",
"provider": "lonescale"
}
}
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({
company_name: 'Acme Corp',
company_domain: 'acme.com',
company_linkedin_url: 'https://www.linkedin.com/company/acme',
personas: [{name: 'Tech Leaders', job_titles: ['CTO', 'VP Engineering']}],
limit: 5,
custom: {id: '12356', provider: 'lonescale'}
})
};
fetch('https://public-api.lonescale.com/trigger/contact-sourcing/sync', 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://public-api.lonescale.com/trigger/contact-sourcing/sync",
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([
'company_name' => 'Acme Corp',
'company_domain' => 'acme.com',
'company_linkedin_url' => 'https://www.linkedin.com/company/acme',
'personas' => [
[
'name' => 'Tech Leaders',
'job_titles' => [
'CTO',
'VP Engineering'
]
]
],
'limit' => 5,
'custom' => [
'id' => '12356',
'provider' => 'lonescale'
]
]),
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://public-api.lonescale.com/trigger/contact-sourcing/sync"
payload := strings.NewReader("{\n \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\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://public-api.lonescale.com/trigger/contact-sourcing/sync")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.lonescale.com/trigger/contact-sourcing/sync")
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 \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\n}"
response = http.request(request)
puts response.read_body{
"contacts": [
{
"lonescale_full_name": "Jane Doe",
"lonescale_first_name": "Jane",
"lonescale_last_name": "Doe",
"lonescale_linkedin_url": "https://www.linkedin.com/in/janedoe",
"lonescale_job_title": "CTO",
"lonescale_job_seniority": "C_SUITE",
"lonescale_country_code": "US",
"lonescale_geo_country_name": "United States",
"lonescale_company_name": "Acme Corp",
"lonescale_company_domain": "acme.com",
"lonescale_company_industry": "Software",
"lonescale_company_staff_count": 250,
"client_company_name": "Acme Corp",
"client_company_domain": "acme.com"
}
],
"profiles_found": 1
}{
"message": "Bad request",
"error": "Bad request",
"statusCode": 400
}{
"message": "Invalid API Key",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "User has no contact credits",
"error": "Forbidden",
"statusCode": 403
}{
"message": "ThrottlerException: Too Many Requests",
"error": "Too Many Requests",
"statusCode": 429
}Search Contacts (Sync)
Search contacts synchronously and return results directly in the response — no webhook required.
The response contains all sourced contacts in a single call. Maximum 10 contacts per request. Rate limited to 5 requests per minute.
curl --request POST \
--url https://public-api.lonescale.com/trigger/contact-sourcing/sync \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"company_name": "Acme Corp",
"company_domain": "acme.com",
"company_linkedin_url": "https://www.linkedin.com/company/acme",
"personas": [
{
"name": "Tech Leaders",
"job_titles": [
"CTO",
"VP Engineering"
]
}
],
"limit": 5,
"custom": {
"id": "12356",
"provider": "lonescale"
}
}
'import requests
url = "https://public-api.lonescale.com/trigger/contact-sourcing/sync"
payload = {
"company_name": "Acme Corp",
"company_domain": "acme.com",
"company_linkedin_url": "https://www.linkedin.com/company/acme",
"personas": [
{
"name": "Tech Leaders",
"job_titles": ["CTO", "VP Engineering"]
}
],
"limit": 5,
"custom": {
"id": "12356",
"provider": "lonescale"
}
}
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({
company_name: 'Acme Corp',
company_domain: 'acme.com',
company_linkedin_url: 'https://www.linkedin.com/company/acme',
personas: [{name: 'Tech Leaders', job_titles: ['CTO', 'VP Engineering']}],
limit: 5,
custom: {id: '12356', provider: 'lonescale'}
})
};
fetch('https://public-api.lonescale.com/trigger/contact-sourcing/sync', 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://public-api.lonescale.com/trigger/contact-sourcing/sync",
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([
'company_name' => 'Acme Corp',
'company_domain' => 'acme.com',
'company_linkedin_url' => 'https://www.linkedin.com/company/acme',
'personas' => [
[
'name' => 'Tech Leaders',
'job_titles' => [
'CTO',
'VP Engineering'
]
]
],
'limit' => 5,
'custom' => [
'id' => '12356',
'provider' => 'lonescale'
]
]),
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://public-api.lonescale.com/trigger/contact-sourcing/sync"
payload := strings.NewReader("{\n \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\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://public-api.lonescale.com/trigger/contact-sourcing/sync")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.lonescale.com/trigger/contact-sourcing/sync")
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 \"company_name\": \"Acme Corp\",\n \"company_domain\": \"acme.com\",\n \"company_linkedin_url\": \"https://www.linkedin.com/company/acme\",\n \"personas\": [\n {\n \"name\": \"Tech Leaders\",\n \"job_titles\": [\n \"CTO\",\n \"VP Engineering\"\n ]\n }\n ],\n \"limit\": 5,\n \"custom\": {\n \"id\": \"12356\",\n \"provider\": \"lonescale\"\n }\n}"
response = http.request(request)
puts response.read_body{
"contacts": [
{
"lonescale_full_name": "Jane Doe",
"lonescale_first_name": "Jane",
"lonescale_last_name": "Doe",
"lonescale_linkedin_url": "https://www.linkedin.com/in/janedoe",
"lonescale_job_title": "CTO",
"lonescale_job_seniority": "C_SUITE",
"lonescale_country_code": "US",
"lonescale_geo_country_name": "United States",
"lonescale_company_name": "Acme Corp",
"lonescale_company_domain": "acme.com",
"lonescale_company_industry": "Software",
"lonescale_company_staff_count": 250,
"client_company_name": "Acme Corp",
"client_company_domain": "acme.com"
}
],
"profiles_found": 1
}{
"message": "Bad request",
"error": "Bad request",
"statusCode": 400
}{
"message": "Invalid API Key",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "User has no contact credits",
"error": "Forbidden",
"statusCode": 403
}{
"message": "ThrottlerException: Too Many Requests",
"error": "Too Many Requests",
"statusCode": 429
}Authorizations
Provide your API key in the x-api-key header.
Body
Personas to use to search and filter contacts within the company.
1Show child attributes
Show child attributes
Company domain or website to search contacts from.
Company name to search contacts from.
Company LinkedIn URL used to search contacts, increasing result coverage and accuracy by 25%.
List of country codes (ISO 3166-1 alpha-2) to include in the search.
ISO 3166-1 alpha-2 country code
AF, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CD, CG, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, MK, RO, RU, RW, RE, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW, AX Maximum number of contacts to retrieve. Capped at 10.
x <= 10List of seniority levels to filter contacts by.
Seniority level of a contact.
owner, founder, c-suite, partner, vp, head, director, manager, senior, entry, intern Disable enrichment of company information for each contact, such as industry, size, etc.
Show child attributes
Show child attributes

