Score Contacts by ICP Fit
Score how well each contact fits 1-3 of your Target Profiles, from 0 to 1.
Accepts 1-100 contacts, each identified by one of id, linkedinUrl, email, or firstName + lastName + (companyName | companyDomain), plus an optional clientReferenceId. targetProfileIds must be active profiles you own or that are shared with your account - get them from List Target Profiles.
Each result is one of:
- A scored entry -
fullName,company(id,name,domain),icpFitScore(the best fit),topProfile(the profile it fits best), andprofileScores(the score per profile, only when more than one profile is requested). - A
NOT_FOUNDentry - the supplied identifier could not be resolved to a contact. - A
NO_SCOREentry - the contact resolved, but no ICP fit score is available for it.
Billing: 1 credit per scored contact, regardless of how many profiles it’s scored against. A score of
0is charged. Error rows (NOT_FOUND/NO_SCORE) are never charged.
curl --request POST \
--url https://api.lusha.com/v3/contacts/icp-fit-score \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"targetProfileIds": [
"3fbaaaa7-700f-4419-a0c6-56f9f3fca391"
],
"contacts": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345"
},
{
"clientReferenceId": "ref-2",
"linkedinUrl": "https://linkedin.com/in/johndoe"
},
{
"clientReferenceId": "ref-3",
"firstName": "Jane",
"lastName": "Doe",
"companyDomain": "acme.com"
}
]
}
'import requests
url = "https://api.lusha.com/v3/contacts/icp-fit-score"
payload = {
"targetProfileIds": ["3fbaaaa7-700f-4419-a0c6-56f9f3fca391"],
"contacts": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345"
},
{
"clientReferenceId": "ref-2",
"linkedinUrl": "https://linkedin.com/in/johndoe"
},
{
"clientReferenceId": "ref-3",
"firstName": "Jane",
"lastName": "Doe",
"companyDomain": "acme.com"
}
]
}
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({
targetProfileIds: ['3fbaaaa7-700f-4419-a0c6-56f9f3fca391'],
contacts: [
{clientReferenceId: 'ref-1', id: 'v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345'},
{clientReferenceId: 'ref-2', linkedinUrl: 'https://linkedin.com/in/johndoe'},
{
clientReferenceId: 'ref-3',
firstName: 'Jane',
lastName: 'Doe',
companyDomain: 'acme.com'
}
]
})
};
fetch('https://api.lusha.com/v3/contacts/icp-fit-score', 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/icp-fit-score")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetProfileIds\": [\n \"3fbaaaa7-700f-4419-a0c6-56f9f3fca391\"\n ],\n \"contacts\": [\n {\n \"clientReferenceId\": \"ref-1\",\n \"id\": \"v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345\"\n },\n {\n \"clientReferenceId\": \"ref-2\",\n \"linkedinUrl\": \"https://linkedin.com/in/johndoe\"\n },\n {\n \"clientReferenceId\": \"ref-3\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"companyDomain\": \"acme.com\"\n }\n ]\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/contacts/icp-fit-score"
payload := strings.NewReader("{\n \"targetProfileIds\": [\n \"3fbaaaa7-700f-4419-a0c6-56f9f3fca391\"\n ],\n \"contacts\": [\n {\n \"clientReferenceId\": \"ref-1\",\n \"id\": \"v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345\"\n },\n {\n \"clientReferenceId\": \"ref-2\",\n \"linkedinUrl\": \"https://linkedin.com/in/johndoe\"\n },\n {\n \"clientReferenceId\": \"ref-3\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"companyDomain\": \"acme.com\"\n }\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": "5d6f13d2-f6b0-4e55-85d5-04e17f932c1a",
"results": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"fullName": "John Doe",
"company": {
"id": "v1.ZyXwVuTsRqPoNmLkJiHgFeDcBa987654",
"name": "Acme Corp",
"domain": "acmecorp.io"
},
"icpFitScore": 0.66,
"topProfile": {
"id": "3fbaaaa7-700f-4419-a0c6-56f9f3fca391",
"name": "Mid-market SaaS"
}
},
{
"clientReferenceId": "ref-2",
"id": "v1.QwErTyUiOpAsDfGhJkLzXcVbNm123456",
"fullName": "Jane Roe",
"error": {
"code": "NO_SCORE",
"message": "No ICP fit score available"
}
},
{
"clientReferenceId": "ref-3",
"error": {
"code": "NOT_FOUND",
"message": "Contact not found"
}
}
],
"billing": {
"creditsCharged": 1,
"resultsReturned": 1,
"lowBalance": false
}
}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
1-3 Target Profile IDs to score against. Each must be an active profile you own or that is shared with your account - get them from List Target Profiles.
1 - 3 elements[
"3fbaaaa7-700f-4419-a0c6-56f9f3fca391",
"a49d9e05-eb62-4c00-8186-e74ba237a0ad"
]
1 - 100 elementsShow child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.lusha.com/v3/contacts/icp-fit-score \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"targetProfileIds": [
"3fbaaaa7-700f-4419-a0c6-56f9f3fca391"
],
"contacts": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345"
},
{
"clientReferenceId": "ref-2",
"linkedinUrl": "https://linkedin.com/in/johndoe"
},
{
"clientReferenceId": "ref-3",
"firstName": "Jane",
"lastName": "Doe",
"companyDomain": "acme.com"
}
]
}
'import requests
url = "https://api.lusha.com/v3/contacts/icp-fit-score"
payload = {
"targetProfileIds": ["3fbaaaa7-700f-4419-a0c6-56f9f3fca391"],
"contacts": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345"
},
{
"clientReferenceId": "ref-2",
"linkedinUrl": "https://linkedin.com/in/johndoe"
},
{
"clientReferenceId": "ref-3",
"firstName": "Jane",
"lastName": "Doe",
"companyDomain": "acme.com"
}
]
}
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({
targetProfileIds: ['3fbaaaa7-700f-4419-a0c6-56f9f3fca391'],
contacts: [
{clientReferenceId: 'ref-1', id: 'v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345'},
{clientReferenceId: 'ref-2', linkedinUrl: 'https://linkedin.com/in/johndoe'},
{
clientReferenceId: 'ref-3',
firstName: 'Jane',
lastName: 'Doe',
companyDomain: 'acme.com'
}
]
})
};
fetch('https://api.lusha.com/v3/contacts/icp-fit-score', 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/icp-fit-score")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetProfileIds\": [\n \"3fbaaaa7-700f-4419-a0c6-56f9f3fca391\"\n ],\n \"contacts\": [\n {\n \"clientReferenceId\": \"ref-1\",\n \"id\": \"v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345\"\n },\n {\n \"clientReferenceId\": \"ref-2\",\n \"linkedinUrl\": \"https://linkedin.com/in/johndoe\"\n },\n {\n \"clientReferenceId\": \"ref-3\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"companyDomain\": \"acme.com\"\n }\n ]\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/contacts/icp-fit-score"
payload := strings.NewReader("{\n \"targetProfileIds\": [\n \"3fbaaaa7-700f-4419-a0c6-56f9f3fca391\"\n ],\n \"contacts\": [\n {\n \"clientReferenceId\": \"ref-1\",\n \"id\": \"v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345\"\n },\n {\n \"clientReferenceId\": \"ref-2\",\n \"linkedinUrl\": \"https://linkedin.com/in/johndoe\"\n },\n {\n \"clientReferenceId\": \"ref-3\",\n \"firstName\": \"Jane\",\n \"lastName\": \"Doe\",\n \"companyDomain\": \"acme.com\"\n }\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": "5d6f13d2-f6b0-4e55-85d5-04e17f932c1a",
"results": [
{
"clientReferenceId": "ref-1",
"id": "v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"fullName": "John Doe",
"company": {
"id": "v1.ZyXwVuTsRqPoNmLkJiHgFeDcBa987654",
"name": "Acme Corp",
"domain": "acmecorp.io"
},
"icpFitScore": 0.66,
"topProfile": {
"id": "3fbaaaa7-700f-4419-a0c6-56f9f3fca391",
"name": "Mid-market SaaS"
}
},
{
"clientReferenceId": "ref-2",
"id": "v1.QwErTyUiOpAsDfGhJkLzXcVbNm123456",
"fullName": "Jane Roe",
"error": {
"code": "NO_SCORE",
"message": "No ICP fit score available"
}
},
{
"clientReferenceId": "ref-3",
"error": {
"code": "NOT_FOUND",
"message": "Contact not found"
}
}
],
"billing": {
"creditsCharged": 1,
"resultsReturned": 1,
"lowBalance": false
}
}