GraphQL Admin API query to list products works on a test store and in the Shopify GraphiQL app for the production store, but returns {“errors”: “Not Found”} when called from Postman or Python against the production store.
What’s confirmed:
Same query, token, and scopes reportedly used; multiple queries fail similarly in Postman/Python on the production store.
Query succeeds via the Shopify GraphiQL app on the production store, suggesting the store data and permissions can work.
Screenshots show a yellow warning icon in Postman and a set of 10 headers (images central to the discussion), but the icon’s meaning is unclear.
Guidance provided:
Suspected authorization or endpoint misconfiguration when using Postman/Python.
Asked to share exact headers being sent.
Advice to open the Postman console: observe a follow-up GET after the POST and align the POST’s base URL with the GET’s base URL (indicating a likely incorrect domain or endpoint in use).
Status:
No confirmed resolution yet. Next steps: verify the exact Admin GraphQL endpoint for the production store domain, API version, and required headers (e.g., X-Shopify-Access-Token, Content-Type: application/json).
Summarized with AI on December 19.
AI used: gpt-5.
query {
products(first: 10, reverse: true) {
edges {
node {
id
title
handle
resourcePublicationOnCurrentPublication {
publication {
name
id
}
publishDate
isPublished
}
}
}
}
}
This works fine for my test store but the exact same query for my actual store throws the following error:
{
"errors": "Not Found"
}
I tried multiple different queries, all returned the same error, I checked all access scopes and access key everything is in the right place, still I get such a vague error.
Yes works fine on the GraphiQL app but this query doesn’t work on postman or using python to send requests. Both the other methods however work perfectly fine on the test store however
Can you suggest any solution, since the access token is correct to say the lease, otherwise it returns a different error and I have allowed all scopes as well, the headers are also the ones which are given in the documentation, what else am I missing?