Skip to main content

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.

tip

To scan many domains, use the bulk search with the domain-search task.

POSThttps://app.icypeas.com/api/domain-search
Headers
  • Authorizationstringrequired

    Your API key, as is (no Bearer prefix).

  • Content-Typestringrequired

    Always application/json.

Body parameters
  • domainOrCompanystringrequired

    The domain or the company name you want to scan.

  • customobjectoptional

    Optional settings for this search: a webhook URL and/or your own id.

    Show properties (2)
    • webhookUrlurloptional

      A URL Icypeas calls with the result as soon as this search is done. See the 'Search item processed' webhook.

    • externalIdstringoptional

      Your 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.

Request example
curl -X POST "https://app.icypeas.com/api/domain-search" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"domainOrCompany": "icypeas.com"
}'
Responses
200SuccessResponse when your input is good.
Example response · 200
{
"success": true,
"item": {
"_id": "#YOUR_SEARCH_ID#",
"status": "NONE"
}
}
Response fields
  • successboolean

    true means that your search has been taken into account

  • itemobject

    Information about your search

    Show properties (2)
    • _idstring

      Search id to follow its progression

    • statusstring

      Status 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.

Example response · 200
{
"validationErrors": [
{
"expected": "string",
"type": "required",
"field": "domainOrCompany",
"message": "validation_required"
}
],
"success": false
}
TypeFieldsWhen it happens
required
validation_required
domainOrCompanyError sent when the field is missing
string
validation_string
domainOrCompanycustom.externalIdError sent when the field should be a string but is not
url
validation_url
custom.webhookUrlError sent when the field is not a valid URL
stringEmpty
validation_string_empty
domainOrCompanyError sent when the field is an empty string
UnpaidSubscriptionError
unpaid_subscription_error
userError sent when you have a pending payment and your subscription is therefore not paid
401UnauthorizedResponse when we could not authenticate you.
Example response · 401
{
"message": "Unauthorized access.",
"error": "UnauthorizedAccessError",
"status": 401,
"code": "unauthorized_access_error"
}
Response fields
  • messagestring

    Human-readable message.

  • errorstring

    Error name

  • statusnumber

    HTTP error code

  • codestring

    Error code

429Too many requestsError received when rate limit is exceeded
Example response · 429
{
"message": "You have exceeded the max number of requests per minute.",
"error": "RateLimitExceededError",
"status": 429,
"code": "rate_limit_exceeded_error"
}
Response fields
  • messagestring

    Human-readable message.

  • errorstring

    Error name

  • statusnumber

    HTTP error code

  • codestring

    Error code