Domain search
Scan a company's domain to find its role-based addresses: contact@, sales@, admin@… Costs 1 credit if emails are found.
Send a domainOrCompany, get back a search _id, then read the result. The addresses found are in items[0].results.emails.
To scan many domains, use the bulk search with the domain-search task.
https://app.icypeas.com/api/domain-searchAuthorizationstringrequiredYour API key, as is (no
Bearerprefix).Content-TypestringrequiredAlways
application/json.
domainOrCompanystringrequiredThe domain or the company name you want to scan.
customobjectoptionalOptional settings for this search: a webhook URL and/or your own id.
Show properties (2)
webhookUrlurloptionalA URL Icypeas calls with the result as soon as this search is done. See the 'Search item processed' webhook.
externalIdstringoptionalYour own id for this search (for example a CRM id). It comes back with the result and in webhooks. Icypeas doesn't check that it's unique.
- cURL
- JavaScript
- Python
- PHP
- PowerShell
- JSON body
curl -X POST "https://app.icypeas.com/api/domain-search" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"domainOrCompany": "icypeas.com"
}'
const response = await fetch("https://app.icypeas.com/api/domain-search", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "YOUR_API_KEY",
},
body: JSON.stringify({
"domainOrCompany": "icypeas.com"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://app.icypeas.com/api/domain-search",
headers={"Authorization": "YOUR_API_KEY"},
json={
"domainOrCompany": "icypeas.com",
},
)
print(response.json())
<?php
$body = <<<'JSON'
{
"domainOrCompany": "icypeas.com"
}
JSON;
$ch = curl_init("https://app.icypeas.com/api/domain-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 = @'
{
"domainOrCompany": "icypeas.com"
}
'@
$response = Invoke-RestMethod -Method POST -Uri "https://app.icypeas.com/api/domain-search" -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
Paste this in the Body field of Make, Zapier, n8n or Postman.
{
"domainOrCompany": "icypeas.com"
}
200SuccessResponse when your input is good.
{
"success": true,
"item": {
"_id": "#YOUR_SEARCH_ID#",
"status": "NONE"
}
}
successbooleantrue means that your search has been taken into account
itemobjectInformation about your search
Show properties (2)
_idstringSearch id to follow its progression
statusstringStatus of this search (NONE right after creation). See the Result statuses page.
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": [
{
"expected": "string",
"type": "required",
"field": "domainOrCompany",
"message": "validation_required"
}
],
"success": false
}
| Type | Fields | When it happens |
|---|---|---|
requiredvalidation_required | domainOrCompany | Error sent when the field is missing |
stringvalidation_string | domainOrCompanycustom.externalId | Error sent when the field should be a string but is not |
urlvalidation_url | custom.webhookUrl | Error sent when the field is not a valid URL |
stringEmptyvalidation_string_empty | domainOrCompany | Error sent when the field is an empty string |
UnpaidSubscriptionErrorunpaid_subscription_error | user | 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