Skip to main content

Errors & status codes

Every response uses standard HTTP status codes and the same JSON format, so errors can be handled with one pattern.

Status codes​

StatusMeaningHow to fix
200OKThe request succeeded.Read the result in data.
400Bad RequestInvalid request: a required parameter is missing, the JSON body is malformed, or the file type is unsupported.Check parameter names, types, and formats on the product page.
401UnauthorizedMissing or invalid API key.Send the x-api-co-id header with an active key.
402Payment RequiredInsufficient balance or subscription.Top up in the Dashboard, then retry.
403ForbiddenAccess denied, e.g. account eKYC not approved for identity verification products.Complete eKYC in the Dashboard or check product access.
404Not FoundData not found.Check the ID, code, or number you sent.
413Payload Too LargeFile exceeds the size limit.Shrink the file to the limit listed on the product page.
422UnprocessableData failed validation.Check field formats (e.g. NIK, date of birth) and value limits.
429Too Many RequestsQuota or rate limit reached.Slow down or wait for the quota to reset; upgrade your plan if needed.
500Server ErrorError on our side.Retry shortly; contact support if it persists.
502Bad GatewayThe upstream provider returned an error.Retry shortly.
503UnavailableThe service or provider is temporarily unavailable.Retry shortly.
504Gateway TimeoutThe provider did not respond in time.Retry; use a generous timeout on your side.

Not every product uses every code. Product pages list their specific error conditions.

Response format​

Success and error responses share the same JSON envelope. Use is_success to check the outcome and message for error details.

Error response
{
"is_success": false,
"message": "User not authenticated",
"data": null
}
  • is_success: true if the request succeeded, false on error.
  • message: a short message about the result.
  • data: the main payload (object or array), null on error.
  • paging: only present on paginated endpoints.
Chat API

Chat API uses its own error format (error.code, error.message, error.details). See Chat API › Reference.

Was this page helpful?