We follow RESTful standards for returning error messages and the status is set according to the MDN standards found here.

Here are some examples:

Status

Reason

400 Bad Request

Your request is probably malformed. This is probably because you're trying to filter by a parameter that isn't allowed, or you're trying to set an attribute that does not exist.

401 Unauthorized

Your API key (or auth token) is either not authorized to act upon the store, or your parameters/headers provided for the request including the key or auth token are malformed.

404 Not Found

We couldn't find the thing you were looking for because it does not exist or never existed in the first place. Check your ID if you're making a "Retrieve" request.

405 Method Not Allowed

You won't see this one very often, but it might be returned if you try to edit a review that you're not allowed to edit (because of verification), or if you're an app that's trying to perform an action that the app is not allowed to do.

422 Unprocessable Entity

This is what we use to return validation errors. Read the message response carefully.

The errors returned in this response are safe to show to a customer.

429 Too Many Requests

You've hit our rate limit. See the Rate Limit section for more information about this.

Validation Errors

When there is a validation failure you'll get a response like this:

// Status: 422 Unprocessable Entity
{
  message: "Rating must be between 1 and 5 and be a positive number.",
  errors: {
    rating: ["must be between 1 and 5", "be a positive number"]
  }
}

Error Response Attribute

Description

message

This is always returned in error responses.

It gives you a summary of what went wrong.

errors

This may, or may not be returned in the response - usually reserved for validation errors.

It comes as an object where the key is the attribute that failed and the value is an array of problem strings.