Search & Enrich
Search and Enrich Contacts
Find contacts and reveal their full data in a single call. Combines Search and Enrich into one request.
Provide contact identifiers the same way you would for Search Contacts. Use the reveal field to control what gets unlocked (emails, phones, or both).
Up to 100 contacts per request.
Billing: Two charges apply - one for the search (
api_search) and one per revealed field. Thebilling.creditsChargedin the response reflects the total.
POST
/
v3
/
contacts
/
search-and-enrich
Search and Enrich Contacts
curl --request POST \
--url https://api.lusha.com/v3/contacts/search-and-enrich \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"contacts": [
{
"clientReferenceId": "my-ref-1",
"firstName": "Orit",
"lastName": "Shilvock",
"companyName": "Lusha",
"companyDomain": "lusha.com"
},
{
"clientReferenceId": "my-ref-2",
"linkedinUrl": "https://www.linkedin.com/in/shmulikwillinger"
}
],
"reveal": [
"emails",
"phones"
],
"options": {
"includePartialProfiles": true
}
}
'import requests
url = "https://api.lusha.com/v3/contacts/search-and-enrich"
payload = {
"contacts": [
{
"clientReferenceId": "my-ref-1",
"firstName": "Orit",
"lastName": "Shilvock",
"companyName": "Lusha",
"companyDomain": "lusha.com"
},
{
"clientReferenceId": "my-ref-2",
"linkedinUrl": "https://www.linkedin.com/in/shmulikwillinger"
}
],
"reveal": ["emails", "phones"],
"options": { "includePartialProfiles": True }
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contacts: [
{
clientReferenceId: 'my-ref-1',
firstName: 'Orit',
lastName: 'Shilvock',
companyName: 'Lusha',
companyDomain: 'lusha.com'
},
{
clientReferenceId: 'my-ref-2',
linkedinUrl: 'https://www.linkedin.com/in/shmulikwillinger'
}
],
reveal: ['emails', 'phones'],
options: {includePartialProfiles: true}
})
};
fetch('https://api.lusha.com/v3/contacts/search-and-enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.lusha.com/v3/contacts/search-and-enrich")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"contacts\": [\n {\n \"clientReferenceId\": \"my-ref-1\",\n \"firstName\": \"Orit\",\n \"lastName\": \"Shilvock\",\n \"companyName\": \"Lusha\",\n \"companyDomain\": \"lusha.com\"\n },\n {\n \"clientReferenceId\": \"my-ref-2\",\n \"linkedinUrl\": \"https://www.linkedin.com/in/shmulikwillinger\"\n }\n ],\n \"reveal\": [\n \"emails\",\n \"phones\"\n ],\n \"options\": {\n \"includePartialProfiles\": true\n }\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/contacts/search-and-enrich"
payload := strings.NewReader("{\n \"contacts\": [\n {\n \"clientReferenceId\": \"my-ref-1\",\n \"firstName\": \"Orit\",\n \"lastName\": \"Shilvock\",\n \"companyName\": \"Lusha\",\n \"companyDomain\": \"lusha.com\"\n },\n {\n \"clientReferenceId\": \"my-ref-2\",\n \"linkedinUrl\": \"https://www.linkedin.com/in/shmulikwillinger\"\n }\n ],\n \"reveal\": [\n \"emails\",\n \"phones\"\n ],\n \"options\": {\n \"includePartialProfiles\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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))
}{
"requestId": "211ee5da-3c0d-4621-9fa5-140e393a3ced",
"results": [
{
"clientReferenceId": "my-ref-1",
"id": "4389064704",
"firstName": "Orit",
"lastName": "Shilvock",
"fullName": "Orit Shilvock",
"emails": [
{
"email": "orit.shilvock@lusha.com",
"type": "work",
"confidence": "A+",
"updateDate": "2026-04-23"
}
],
"phones": [],
"tags": [],
"previousEmployment": [],
"updateDate": "2026-04-23"
}
],
"billing": {
"creditsCharged": 2,
"resultsReturned": 2
}
}Authorizations
Your Lusha API key. You can find this in your Lusha dashboard under API settings.
Include this key in the api_key header for all requests.
Body
application/json
Was this page helpful?
⌘I
Search and Enrich Contacts
curl --request POST \
--url https://api.lusha.com/v3/contacts/search-and-enrich \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"contacts": [
{
"clientReferenceId": "my-ref-1",
"firstName": "Orit",
"lastName": "Shilvock",
"companyName": "Lusha",
"companyDomain": "lusha.com"
},
{
"clientReferenceId": "my-ref-2",
"linkedinUrl": "https://www.linkedin.com/in/shmulikwillinger"
}
],
"reveal": [
"emails",
"phones"
],
"options": {
"includePartialProfiles": true
}
}
'import requests
url = "https://api.lusha.com/v3/contacts/search-and-enrich"
payload = {
"contacts": [
{
"clientReferenceId": "my-ref-1",
"firstName": "Orit",
"lastName": "Shilvock",
"companyName": "Lusha",
"companyDomain": "lusha.com"
},
{
"clientReferenceId": "my-ref-2",
"linkedinUrl": "https://www.linkedin.com/in/shmulikwillinger"
}
],
"reveal": ["emails", "phones"],
"options": { "includePartialProfiles": True }
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contacts: [
{
clientReferenceId: 'my-ref-1',
firstName: 'Orit',
lastName: 'Shilvock',
companyName: 'Lusha',
companyDomain: 'lusha.com'
},
{
clientReferenceId: 'my-ref-2',
linkedinUrl: 'https://www.linkedin.com/in/shmulikwillinger'
}
],
reveal: ['emails', 'phones'],
options: {includePartialProfiles: true}
})
};
fetch('https://api.lusha.com/v3/contacts/search-and-enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.lusha.com/v3/contacts/search-and-enrich")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"contacts\": [\n {\n \"clientReferenceId\": \"my-ref-1\",\n \"firstName\": \"Orit\",\n \"lastName\": \"Shilvock\",\n \"companyName\": \"Lusha\",\n \"companyDomain\": \"lusha.com\"\n },\n {\n \"clientReferenceId\": \"my-ref-2\",\n \"linkedinUrl\": \"https://www.linkedin.com/in/shmulikwillinger\"\n }\n ],\n \"reveal\": [\n \"emails\",\n \"phones\"\n ],\n \"options\": {\n \"includePartialProfiles\": true\n }\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/contacts/search-and-enrich"
payload := strings.NewReader("{\n \"contacts\": [\n {\n \"clientReferenceId\": \"my-ref-1\",\n \"firstName\": \"Orit\",\n \"lastName\": \"Shilvock\",\n \"companyName\": \"Lusha\",\n \"companyDomain\": \"lusha.com\"\n },\n {\n \"clientReferenceId\": \"my-ref-2\",\n \"linkedinUrl\": \"https://www.linkedin.com/in/shmulikwillinger\"\n }\n ],\n \"reveal\": [\n \"emails\",\n \"phones\"\n ],\n \"options\": {\n \"includePartialProfiles\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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))
}{
"requestId": "211ee5da-3c0d-4621-9fa5-140e393a3ced",
"results": [
{
"clientReferenceId": "my-ref-1",
"id": "4389064704",
"firstName": "Orit",
"lastName": "Shilvock",
"fullName": "Orit Shilvock",
"emails": [
{
"email": "orit.shilvock@lusha.com",
"type": "work",
"confidence": "A+",
"updateDate": "2026-04-23"
}
],
"phones": [],
"tags": [],
"previousEmployment": [],
"updateDate": "2026-04-23"
}
],
"billing": {
"creditsCharged": 2,
"resultsReturned": 2
}
}