Profile URL finder
Find the profile URL of a person from what you know about them: first name, last name, company, job title… Costs 1 credit per URL found. Pair it with the profile scraper to get their full data.
Unlike email searches, the single endpoint answers directly with the result. The bulk endpoint takes up to 50 items per call. See the rate limits.
Find one profile URL
https://app.icypeas.com/api/url-search/profileAuthorizationstringrequiredYour API key, as is (no
Bearerprefix).Content-TypestringrequiredAlways
application/json.
firstnamestringrequiredFirst name of your prospect
lastnamestringrequiredLast name of your prospect
companyOrDomainstringoptionalIt should contain either the company name or its domain name (or website)
Rule: Can be empty if jobTitle is given
jobTitlestringoptionalIt should contain the job title of your prospect
Rule: Can be empty if companyOrDomain is given
- cURL
- JavaScript
- Python
- PHP
- PowerShell
- JSON body
curl -X POST "https://app.icypeas.com/api/url-search/profile" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
}'
const response = await fetch("https://app.icypeas.com/api/url-search/profile", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "YOUR_API_KEY",
},
body: JSON.stringify({
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://app.icypeas.com/api/url-search/profile",
headers={"Authorization": "YOUR_API_KEY"},
json={
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies",
},
)
print(response.json())
<?php
$body = <<<'JSON'
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
}
JSON;
$ch = curl_init("https://app.icypeas.com/api/url-search/profile");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: YOUR_API_KEY",
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
$headers = @{
"Authorization" = "YOUR_API_KEY"
"Content-Type" = "application/json"
}
$body = @'
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
}
'@
$response = Invoke-RestMethod -Method POST -Uri "https://app.icypeas.com/api/url-search/profile" -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
Paste this in the Body field of Make, Zapier, n8n or Postman.
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
}
200SuccessResponse when the URL is found
{
"success": true,
"searchId": "#YOUR_SEARCH_ID#",
"status": "FOUND",
"result": "https://www.linkedin.com/in/my-profile"
}
successbooleantrue means that your search succeeded (no error was raised on our side)
searchIdstringThe id of the search item (if you need to fetch the result later using the dedicated route)
statusstringFOUND because the profile has been found
resultstringThe profile URL
200SuccessResponse when the URL is not found
{
"success": true,
"searchId": "#YOUR_SEARCH_ID#",
"status": "NOT_FOUND",
"result": ""
}
successbooleantrue means that your search succeeded (no error was raised on our side)
searchIdstringThe id of the search item (if you need to fetch the result later using the dedicated route)
statusstringNOT_FOUND because the profile was not found
resultstringThe field is an empty string
200Validation errorResponse when there are validation errors.
The request reached Icypeas but some fields are wrong. The response lists every problem in validationErrors. See how to read and fix errors.
{
"validationErrors": [
{
"field": "companyOrDomain",
"message": "validation_string_empty",
"humanReadableMessage": "The string is empty",
"actual": ""
}
],
"success": false
}
| Type | Fields | When it happens |
|---|---|---|
requiredvalidation_required | firstnamelastnamecompanyOrDomainjobTitle | Error sent when the parameter is null or undefined |
stringEmptyvalidation_string_empty | firstnamelastnamecompanyOrDomainjobTitle | Error sent when the parameter is missing |
InsufficientCreditsinsufficient_credits | | You need more credits than the ones you have to run this search. |
UnpaidSubscriptionErrorunpaid_subscription_error | | Error sent when you have a pending payment and your subscription is therefore not paid |
401UnauthorizedResponse when we could not authenticate you.
{
"message": "Unauthorized access.",
"error": "UnauthorizedAccessError",
"status": 401,
"code": "unauthorized_access_error"
}
messagestringHuman-readable message.
errorstringError name
statusnumberHTTP error code
codestringError code
429Too many requestsError received when rate limit is exceeded
{
"message": "You have exceeded the max number of requests per minute.",
"error": "RateLimitExceededError",
"status": 429,
"code": "rate_limit_exceeded_error"
}
messagestringHuman-readable message.
errorstringError name
statusnumberHTTP error code
codestringError code
Find up to 50 profile URLs
https://app.icypeas.com/api/url-searchAuthorizationstringrequiredYour API key, as is (no
Bearerprefix).Content-TypestringrequiredAlways
application/json.
typestringrequiredThe type of data
Rule: should always be 'profile'
dataarray of objectsrequiredAn array containing the profiles' information. Max number of profiles per request is 50
Show item properties (4)
firstnamestringrequiredFirst name of your prospect
lastnamestringrequiredLast name of your prospect
companyOrDomainstringoptionalIt should contain either the company name or its domain name (or website)
Rule: Can be empty if jobTitle is given
jobTitlestringoptionalIt should contain the job title of your prospect
Rule: Can be empty if companyOrDomain is given
- cURL
- JavaScript
- Python
- PHP
- PowerShell
- JSON body
curl -X POST "https://app.icypeas.com/api/url-search" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple"
}
]
}'
const response = await fetch("https://app.icypeas.com/api/url-search", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "YOUR_API_KEY",
},
body: JSON.stringify({
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple"
}
]
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://app.icypeas.com/api/url-search",
headers={"Authorization": "YOUR_API_KEY"},
json={
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies",
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple",
},
],
},
)
print(response.json())
<?php
$body = <<<'JSON'
{
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple"
}
]
}
JSON;
$ch = curl_init("https://app.icypeas.com/api/url-search");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: YOUR_API_KEY",
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
$headers = @{
"Authorization" = "YOUR_API_KEY"
"Content-Type" = "application/json"
}
$body = @'
{
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple"
}
]
}
'@
$response = Invoke-RestMethod -Method POST -Uri "https://app.icypeas.com/api/url-search" -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
Paste this in the Body field of Make, Zapier, n8n or Postman.
{
"type": "profile",
"data": [
{
"firstname": "Marc",
"lastname": "Lachabody",
"companyOrDomain": "nec technologies"
},
{
"firstname": "Katrina",
"lastname": "Larenkova",
"companyOrDomain": "apple"
}
]
}
200SuccessResponse when your input does not contain any validation errors
{
"success": true,
"data": [
{
"searchId": "#YOUR_SEARCH_ID_1#",
"status": "FOUND",
"result": "https://www.linkedin.com/in/my-profile"
},
{
"searchId": "#YOUR_SEARCH_ID_2#",
"status": "NOT_FOUND",
"result": ""
}
]
}
successbooleantrue means that your search succeeded (no error was raised on our side)
dataarray of objectsShow item properties (3)
searchIdstringThe id of each search item (if you need to fetch the result later using the dedicated route)
statusstringFOUND when the profile was found & NOT_FOUND when not
resultstringThe profile URL or an empty string if the profile is not found
200Validation errorResponse when there are validation errors.
The request reached Icypeas but some fields are wrong. The response lists every problem in validationErrors. See how to read and fix errors.
{
"validationErrors": [
{
"field": "companyOrDomain",
"message": "validation_string_empty",
"humanReadableMessage": "The string is empty",
"actual": ""
}
],
"success": false
}
| Type | Fields | When it happens |
|---|---|---|
requiredvalidation_required | firstnamelastnamecompanyOrDomainjobTitle | Error sent when the parameter is null or undefined |
stringEmptyvalidation_string_empty | firstnamelastnamecompanyOrDomainjobTitle | Error sent when the parameter is missing |
InsufficientCreditsinsufficient_credits | | You need more credits than the ones you have to run this search. |
UnpaidSubscriptionErrorunpaid_subscription_error | | Error sent when you have a pending payment and your subscription is therefore not paid |
401UnauthorizedResponse when we could not authenticate you.
{
"message": "Unauthorized access.",
"error": "UnauthorizedAccessError",
"status": 401,
"code": "unauthorized_access_error"
}
messagestringHuman-readable message.
errorstringError name
statusnumberHTTP error code
codestringError code
429Too many requestsError received when rate limit is exceeded
{
"message": "You have exceeded the max number of requests per minute.",
"error": "RateLimitExceededError",
"status": 429,
"code": "rate_limit_exceeded_error"
}
messagestringHuman-readable message.
errorstringError name
statusnumberHTTP error code
codestringError code