When Shopify receives a request to an API endpoint, a number of different HTTP status codes can be returned in the response depending on the original request.

<table>
  <tbody>
    <tr>
      <td><pre>200 OK</pre></td>
      <td>The request was successfully processed by Shopify.</td>
    </tr>
    <tr>
      <td><pre>201 Created</pre></td>
      <td>The request has been fulfilled and a new resource has been created.</td>
    </tr>
    <tr>
      <td><pre>202 Accepted</pre></td>
      <td>The request has been accepted, but not yet processed.</td>
    </tr>
    <tr>
      <td><pre>204 No Content</pre></td>
      <td>The request has been accepted, but no content will be returned. For example, a client might use an update operation to save a document temporarily, and not refresh to a new page.</td>
    </tr>
    <tr>
      <td><pre>205 Reset Content</pre></td>
      <td>The request has been accepted, but no content will be returned. The client must reset the document from which the original request was sent. For example, if a user fills out a form and submits it, then the 205 code means that the server is making a request to the browser to clear the form.</td>
    </tr>
    <tr>
      <td><pre>303 See Other</pre></td>
      <td>The response to the request can be found under a different URL in the <code>Location</code> header and can be retrieved using a GET method on that resource.</td>
    </tr>
    <tr>
      <td><pre>400 Bad Request</pre></td>
      <td>
        <p>The request wasn't understood by the server, generally due to bad syntax or because the <code>Content-Type</code> header wasn't correctly set to <code>application/json</code>.</p>
        <p>This status is also returned when a <a href="/docs/apps/build/authentication-authorization/access-tokens/token-exchange">token exchange</a> request includes an expired or otherwise invalid session token.</p>
        <p>This status is also returned when the request provides an invalid <code>code</code> parameter during <a href="/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant">authorization code grant</a>.</p>
      </td>
    </tr>
    <tr>
      <td><pre>401 Unauthorized</pre></td>
      <td>The necessary <a href="/docs/apps/build/authentication-authorization">authentication credentials</a> are not present in the request or are incorrect.</td>
    </tr>
    <tr>
      <td><pre>402 Payment Required</pre></td>
      <td>The requested shop is currently frozen. The shop owner needs to log in to the shop's admin and pay the outstanding balance to unfreeze the shop.</td>
    <tr>
      <td><pre>403 Forbidden</pre></td>
      <td>The server is refusing to respond to the request. This status is generally returned if you haven't <a href="/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant#ask-for-permission">requested the appropriate scope</a> for this action.</td>
    </tr>
    <tr>
      <td><pre>404 Not Found</pre></td>
      <td>The requested resource was not found but could be available again in the future.</td>
    </tr>
    <tr>
      <td><pre>405 Method Not Allowed</pre></td>
      <td>The server recognizes the request but rejects the specific HTTP method. This status is generally returned when a client-side error occurs.</td>
    </tr>
    <tr>
      <td><pre>406 Not Acceptable</pre></td>
      <td>The request's <code>Accept</code> header doesn't specify any content formats that the server is able to fulfill.</td>
    </tr>
    <tr>
      <td><pre>409 Resource Conflict</pre></td>
      <td>The requested resource couldn't be processed because of conflict in the request. For example, the requested resource might not be in an expected state, or processing the request would create a conflict within the resource.</td>
    </tr>
    <tr>
      <td><pre>414 URI Too Long</pre></td>
      <td>The server is refusing to accept the request because the Uniform Resource Identifier (URI) provided was too long.</td>
    </tr>
    <tr>
      <td><pre>415 Unsupported Media Type</pre></td>
      <td>The request's <code>Content-Type</code> header specifies a payload format that the server doesn't support.</td>
    </tr>
    <tr>
      <td><pre>422 Unprocessable Entity</pre></td>
      <td>The request body was well-formed but contains semantic errors. A <code>422</code> error code can be returned from a variety of scenarios including, but not limited to:
      <br></br>
      <ul>
        <li>Incorrectly formatted input</li>
        <li>Checking out products that are out of stock</li>
        <li>Canceling an order that has fulfillments</li>
        <li>Creating an order with tax lines on both line items and the order</li>
        <li>Creating a customer without an email or name</li>
        <li>Creating a product without a title</li>
      </ul>
      The response body provides details in the <code>errors</code> or <code>error</code> parameters.</td>
    </tr>
    <tr>
      <td><pre>423 Locked</pre></td>
      <td>
        <p>The requested shop is currently locked. Shops are locked if they repeatedly exceed their API request limit, or if there is an issue with the account, such as a detected compromise or fraud risk.</p>
        <p><a href="https://help.shopify.com/en/questions#/contact">Contact support</a> if your shop is locked.</p>
      </td>
    </tr>
    <tr>
      <td><pre>429 Too Many Requests</pre></td>
      <td>The request was not accepted because the application has exceeded the rate limit. Learn more about <a href="/docs/api/usage/rate-limits">Shopify’s API rate limits</a>.</td>
    </tr>
      <tr>
      <td><pre>430 Shopify Security Rejection</pre></td>
      <td>The request was not accepted because the request might be malicious, and Shopify has responded by rejecting it to protect the app from any possible attacks.
      </td>
    </tr>
    <tr>
      <td><pre>500 Internal Server Error</pre></td>
      <td>An internal error occurred in Shopify. Simplify or retry your request. If the issue persists, then please record any error codes, timestamps and <a href="https://help.shopify.com/en/questions/partners">contact Partner Support</a> so that Shopify staff can investigate.</td>
    </tr>
    <tr>
      <td><pre>501 Not Implemented</pre></td>
      <td>The requested endpoint is not available on that particular shop, e.g. requesting access to a Shopify Plus–only API on a non-Plus shop. This response may also indicate that this endpoint is reserved for future use.</td>
    </tr>
    <tr>
      <td><pre>502 Bad Gateway</pre></td>
      <td>The server, while acting as a gateway or proxy, received an invalid response from the upstream server. A 502 error isn't typically something you can fix. It usually requires a fix on the web server or the proxies that you're trying to get access through.</td>
    </tr>
    <tr>
      <td><pre>503 Service Unavailable</pre></td>
      <td>The server is currently unavailable. Check the <a href="https://www.shopifystatus.com/">Shopify status page</a> for reported service outages.
    </tr>
    <tr>
      <td><pre>504 Gateway Timeout</pre></td>
      <td>The request couldn't complete in time. Shopify waits up to 10 seconds for a response. Try breaking it down in multiple smaller requests.</td>
    </tr>
    <tr>
      <td><pre>530 Origin DNS Error</pre></td>
      <td>Cloudflare can't resolve the requested DNS record. Check the <a href="https://www.shopifystatus.com/">Shopify status page</a> for reported service outages.</td>
    </tr>
    <tr>
      <td><pre>540 Temporarily Disabled</pre></td>
      <td>The requested endpoint isn't currently available. It has been temporarily disabled, and will be back online shortly.</td>
    </tr>
    <tr>
      <td><pre>783 Unexpected Token</pre></td>
      <td>The request includes a JSON syntax error, so the API code is failing to convert some of the data that the server returned. </td>
    </tr>
  </tbody>
</table>