# Errors

The API of Shiplemon uses standard HTTP error and status codes to communicate errors. There are multiple HTTP status codes for different types of errors:

* `200 Ok` — The request was performed successfully.
* `400 Bad Request` — The request was unacceptable, often due to missing a required parameter (for example user input error)
* `401 Unauthorized` — No valid access token provided. The access token was either missing or expired.
* `403 Forbidden` — The access token doesn't have permission to perform the request.
* `404 Not Found` — The requested resource doesn't exist.
* `422 Unprocessable Entity` — The request was malformed.
* `500 Internal Server Error` — An unexpected error occurred on our server. In most cases, such an error represents a bug or issue on our side. We automatically log such errors and fix them quickly. If anything like this persists, feel free to directly contact us at <support@shiplemon.com>

## Example validation error

The API follows this format for errors and validation issues. If you have any specific issue that you can't solve please contact our support: <support@shiplemon.com>

```
{
    "error": {
        "code": "NOT_FOUND",
        "message": "Shipment does not exist",
        "metadata": null
    }
}
```
