Skip to main content

Errors and troubleshooting

Something didn't work? Find the message you got in this page: each error comes with what it means and how to fix it.

Quick diagnosis​

What you seeWhat it meansHow to fix it
HTTP 401 Unauthorized access.Icypeas doesn't recognise your key.Copy the key again from the API page, make sure API access is on, and send it alone in Authorization (no Bearer).
HTTP 429 You have exceeded the max number of requests per minute.You're sending requests too fast.Wait a few seconds, then retry. Slow down, or switch to bulk search and webhooks. See rate limits.
HTTP 200 with "success": false and validationErrorsYour request reached Icypeas but a field is missing or wrong.Read the field and type of each error and fix your body. See below.
UnpaidSubscriptionErrorA payment is pending on your subscription.Update your payment method in the billing page.
Status INSUFFICIENT_FUNDSYou don't have enough credits.Get more credits.
Status BAD_INPUTThe search couldn't run with the data given.Check the name and the company/domain of that row.
Status stays IN_PROGRESSThe search isn't finished.Wait a few more seconds and read the result again.
SearchNotFoundErrorThe id or file you asked for doesn't exist.Use the exact _id / file returned when you started the search.
Your tool says invalid JSON or unexpected tokenThe body isn't valid JSON.Check quotes (use " not ' or “), commas and brackets. Paste it in a JSON validator.
Error on Content-Type / empty body receivedThe Content-Type header is missing.Add Content-Type: application/json.
Always check success

Validation errors come back with HTTP status 200, not 400. Don't rely on the HTTP code alone: check that success is true.

Validation errors​

When the body doesn't match what an endpoint expects, the API answers:

{
"success": false,
"validationErrors": [
{
"expected": "string",
"type": "required",
"field": "domainOrCompany",
"message": "validation_required"
}
]
}

Each entry tells you exactly what's wrong:

KeyMeaningExample
fieldThe field in error. Nested fields use dots.domainOrCompany, custom.webhookUrl
typeWhat kind of problem.required
expectedWhat the API wanted.string
actualWhat it received (may be absent).undefined
messageA stable code you can test in your code.validation_required

Here, the fix is to add domainOrCompany to the body.

All validation error types​

typemessageWhat's wrongHow to fix it
requiredvalidation_requiredThe field is missing, null or undefined.Add the field. Check its spelling and case (firstname, not firstName).
stringvalidation_stringThe field must be text.Wrap the value in quotes: "123".
stringEmptyvalidation_string_emptyThe field is an empty string.Fill it, or remove it if it's optional.
stringEnumvalidation_string_enumThe value isn't one of the allowed values.Use one of the values listed in the endpoint reference, e.g. email-search.
emailvalidation_emailNot a valid email address.Check for typos and spaces.
urlvalidation_urlNot a valid URL.Use a full URL, starting with https://.
numbervalidation_numberThe field must be a number.Remove the quotes: 50, not "50".
numberMin / numberMaxvalidation_number_min / validation_number_maxThe number is too small or too big.Respect the limits of the endpoint (e.g. limit ≤ 100).
booleanvalidation_booleanMust be true or false.Remove the quotes: true, not "true".
arrayvalidation_arrayThe field must be a list [ ].Wrap values in brackets.
arrayEmptyvalidation_array_emptyThe list is empty.Add at least one item.
arrayMin / arrayMaxvalidation_array_min / validation_array_maxToo few or too many items.A bulk search accepts up to 5,000 rows, a bulk scrape up to 50.
arrayLengthvalidation_array_lengthA row doesn't have the right number of items.An email-search row has 3 items: first name, last name, company.
arrayEnumvalidation_array_enumA list contains a value that isn't allowed.Check the allowed values.
FirstLastMandatoryDiscoveryErrorfirst_last_mandatory_discovery_errorBoth first name and last name are empty.Give at least one of them.
ExternalIdsArrayShouldMatchDataArrayErrorexternal_ids_array_should_match_data_array_errorcustom.externalIds and data don't have the same length.Give exactly one id per row.
ModeOrIdShouldBeUsedErrormode_or_id_should_be_used_errorReading results needs either mode or id.Send {"id": "…"} or {"mode": "single"}.
SearchNotFoundErrorsearch_not_found_errorThe search or file doesn't exist.Check the id.
FilePropertyError / InvalidFileErrorfile_property_error / invalid_file_errorThe bulk file is invalid.Check the file id you sent.
UnpaidSubscriptionErrorunpaid_subscription_errorA payment is pending.Update your payment method.

HTTP errors​

{
"message": "Unauthorized access.",
"error": "UnauthorizedAccessError",
"status": 401,
"code": "unauthorized_access_error"
}

Your API key is missing, wrong, or API access is turned off. See Authentication.

Still stuck?​

Email support@icypeas.com with the endpoint, the body you sent (without your API key) and the response you got. See Support.