401 Unauthorized error while creating custom app

A 301 error is a status code indicating that the requested resource has been permanently moved to a different URL. In the context of an API request, it might mean that the URL you’re using has been redirected to another location.

There could be several reasons for a 301 error when making an API request:

  1. Incorrect URL:
    Ensure that the URL you’re using is correct and properly formatted. It should point to the correct API endpoint. Check for any typos or mistakes in the URL.

  2. API Version or Endpoint Change:
    Shopify’s API might have changed the endpoint or version. Verify the API version (2023-10) and the specific endpoint (/admin/api/2023-10/products.json) you’re trying to access.

  3. HTTP to HTTPS Redirection:
    Shopify enforces HTTPS for API requests. If you’re using an HTTP URL and Shopify redirects HTTP requests to HTTPS, you might encounter a 301 error. Make sure you’re using https:// in your API request URL.

  4. Authentication Issues:
    If the authentication credentials (API key and password) are incorrect, Shopify might redirect you to an error page or another location, resulting in a 301 error.

To troubleshoot the issue further, ensure that your URL is correctly formed, uses HTTPS, and points to the right API version and endpoint. Additionally, double-check your authentication credentials to confirm they’re accurate.

Here’s an example of using cURL in PHP with HTTPS:

<?php
$api_key = 'YOUR_API_KEY';
$password = 'YOUR_PASSWORD';
$shop_url = 'YOUR_SHOP_URL';

$url = "https://$shop_url/admin/api/2023-10/products.json";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_USERPWD, "$api_key:$password");

$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($http_status == 200) {
// Successful API call
echo "API call successful.";
// Handle $response data
} else {
// Error handling
echo "Error: $http_status - " . curl_error($ch);
}

curl_close($ch);
?>

Replace 'YOUR_API_KEY', 'YOUR_PASSWORD', and 'YOUR_SHOP_URL' with your actual Shopify app credentials and shop URL. Also, ensure that the URL follows the correct structure and includes https://.

@testAppKiss hope that helps.Thanks

1 Like