Your workplace needs more WOW. Get ready for MHR's World of Work 2026
Status codes
The table below describes the possible response codes to API requests, why the code would be returned and if it would contain an error message.
| Code | Methods | Meaning | Message |
|---|---|---|---|
| 200 | GET, PUT | The request was successful (and a resource was not created or deleted) | Optional |
| 201 | POST, PUT | A request to create a resource was successful | Optional |
| 202 | POST, PUT | A request has been accepted for future processing | No |
| 204 | DELETE | A request to delete a resource was successful | No |
| 400 | All | The request was not valid, it may be missing appropriate tenant headers, or it had a malformed payload | Required |
| 401 | All | Authentication was required but was either not provided or invalid | No |
| 403 | All | You do not have access to this resource | Optional |
| 404 | All | The requested resource does not exist, or you are not authorised to access it | No |
| 405 | All | The method used is not allowed | No |
| 409 | PUT, DELETE | The request was not processed because of a concurrency issue, most commonly the 'If-Match' header was required but not provided | Optional |
| 412 | PUT, DELETE | The request was not processed because a 'If-Match' request header condition was not met, see concurrency) | Optional |
| 500 | All | An internal error occurred | Required |
| 503 | All | The API is temporarily unavailable | No |
Errors
API Requests may result in an error, either due to an invalid request or because of an internal error.
When this happens the status code of the response will indicate the nature of the error and the response may contain error messages describing the error(s).
Error messages may contain the following attributes:
- id: In the case of an internal error (500) this is a unique identifier for the exception occurrence, otherwise it's a code for the type of error.
- text: A localised description of the error
- object: If the source of the error is a data attribute on the request, this points to the attribute(s) (not applicable to internal errors)
See the example below showing a set of errors that have been returned from an invalid request to update the fictional insurance resource.
{
"msg": {
"error": [
{
"id": "0037INSVALIDFROM",
"object": [
"insurance.validFrom",
"insurance.validTo"
],
"text": "Insurance 'Valid from' must be before the 'Valid to' date"
},
{
"id": "0013NOPERSON",
"text": "The person related to this record does not exist"
}
]
},
"meta": {
"links": {
"self": {
"href": "insurance"
}
}
}
}