Errors
Every error code the API returns, with an example body.
Errors use the application/problem+json media type. Branch on code, which is stable; title
and detail are for humans and may change.
{
"type": "https://docs.verizol.ai/errors/company_not_found",
"title": "Company not found",
"status": 404,
"detail": null,
"code": "company_not_found",
"request_id": "4f1c2a9be0d34c51a7e0c1d2b3a4f5e6"
}Errors are never billed. Messages never include internal details; quote request_id to support.
http_error is a generic fallback: any HTTP error without a more specific code below uses it, with
the response's own status. Handle it by status, as you would an unknown code.
| Status | Code | When |
|---|---|---|
| 400 | invalid_cin | The CIN is not a valid 21-character CIN. |
| 400 | invalid_din | The DIN is not exactly eight digits. |
| 400 | invalid_llpin | The LLPIN is not three letters and four digits. |
| 400 | invalid_query | The name search query is shorter than 3 or longer than 100 characters. |
| 400 | invalid_request | Any other validation error in the request. |
| 401 | missing_api_key | No Authorization: Bearer header was sent. |
| 401 | invalid_api_key | The key is unknown, malformed or revoked. |
| 402 | credits_exhausted | Your API credit balance is 0. |
| 403 | account_suspended | The key's owner account is suspended. |
| 403 | plan_required | Your plan does not include API access. |
| 404 | company_not_found | No company has that CIN. |
| 404 | director_not_found | No director has that DIN. |
| 404 | llp_not_found | No LLP has that LLPIN. |
| 404 | not_found | The URL does not exist. |
| 405 | method_not_allowed | The HTTP method is not supported for this URL. |
| 429 | rate_limited | You exceeded your plan's per-minute limit. |
| 429 | not_found_limit | The key made 100 not-found lookups or empty searches today (UTC). |
| 429 | sandbox_limit_reached | Sandbox limit hit: 10 calls per IP per day, or 2,000 per day overall. |
| 503 | rate_limiter_unavailable | Sandbox only: the rate limiter is temporarily down. |
| 503 | busy | The lookup timed out on our side. |
| Varies | http_error | Generic fallback for an HTTP error with no more specific code; the status is the response's own. |
| 500 | internal_error | Something went wrong on our side. No details are exposed. |
Examples
Rate limited:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
RateLimit-Limit: 30
RateLimit-Remaining: 0
RateLimit-Reset: 12{
"type": "https://docs.verizol.ai/errors/rate_limited",
"title": "Rate limit exceeded",
"status": 429,
"detail": null,
"code": "rate_limited",
"request_id": "9a2b6c1d0e8f4a37b5c4d3e2f1a0b9c8"
}Invalid CIN:
{
"type": "https://docs.verizol.ai/errors/invalid_cin",
"title": "Invalid CIN",
"status": 400,
"detail": "A CIN is 21 characters, e.g. U72900KA2021PTC123456.",
"code": "invalid_cin",
"request_id": "0c1d2e3f4a5b46978a9b0c1d2e3f4a5b"
}