Skip to content

Errors

The DiscoLike API uses conventional HTTP response codes to indicate success or failure of requests.

Error CodeMeaning
400Bad Request — The request could not be processed against your data or the input you sent
401Unauthorized — Your API key is wrong
403Forbidden — You don’t have access to this resource
404Not Found — The specified resource could not be found
422Unprocessable Entity — The request failed parameter validation
429Too Many Requests — You’re making too many requests
500Internal Server Error — We had a problem with our server
503Service Unavailable — We’re temporarily offline for maintenance

Every rule about the shape of a request (required parameters, lengths, list sizes, numeric ranges, enum values, date formats, URL and UUID formats, unknown parameters) is checked before the request is processed and fails with 422. The body is the standard FastAPI validation shape: a detail array with one entry per failing field, giving the field location, a message, and an error type.

{
"detail": [
{
"loc": ["query", "max_records"],
"msg": "Input should be greater than or equal to 5",
"type": "greater_than_equal"
}
]
}

400 is reserved for checks that can only run once the request is being processed: a value that fails domain normalization (Invalid Domain), a check against a stored record (for example changing a provider’s endpoint without supplying a new API key), a custom base_url that resolves to a private address, an uploaded file that cannot be parsed or exceeds its row limit, and business rules such as an exclusion list that is too small. The body is a plain string:

{ "detail": "Invalid Domain : hubspot" }

If you previously matched on 400 for length, range, or enum failures, match on 422 instead. Each endpoint page lists its validation rules.

Endpoints that take query parameters (/count, /discover, /contacts, /contacts/count, /contacts/match, /match, /bulkmatch, /append, and others) reject unknown parameters with 422 and an extra_forbidden detail, so typos are surfaced rather than silently ignored. Documented deprecated aliases (e.g. exact_matchphrase_match, vendortech_stack, nl_matchicp_text) continue to work for backward compatibility.