HAL uses conventional HTTP response codes to indicate the success or failure of an API request.
In general: Codes in the 2xx range indicate success.
Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, input failed validation, etc.).
Codes in the 5xx range indicate an error with Hal's servers (these are rare).


HTTP status code summary

200OK Everything worked as expected
400Bad RequestThe request was unacceptable, often due to missing a required parameter
401UnauthorizedNo valid API key provided
404Not FoundThe requested resource doesn't exist
429Too Many RequestsToo many requests hit the API too quickly. We recommend an exponential backoff of your requests
500, 502, 503, 504Server ErrorsSomething went wrong on Hal's end. (These are rare.)