translatableResources(resourceType: METAOBJECT, first: 250) Why can't I get data through Postman?

Topic summary

A user encountered an issue querying translatableResources with resourceType: METAOBJECT via Postman, while the same query worked in Shopify GraphiQL App and PRODUCT queries succeeded.

Root Cause:
The API token used in Postman lacked necessary scopes for accessing metaobject translations. GraphiQL works because it runs within the authenticated admin context, bypassing token restrictions.

Required Permissions:

  • read_translations
  • read_metaobjects

Recommended Solutions:

  • Verify the app/token includes both required scopes
  • Reinstall the app if scopes were recently added (requires reauthorization)
  • Confirm metaobjects exist using a test query
  • Ensure the Translate & Adapt app is installed

Resolution:
The issue was confirmed to be missing permissions on a colleague’s account, preventing data retrieval. Once permissions were corrected, the query functioned properly.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

{
translatableResources(resourceType: METAOBJECT, first: 250) {
edges {
node {
resourceId
translatableContent {
digest
key
locale

value
type
}
translations(locale: “zh-CN”) {
key
locale
value
outdated
updatedAt
}
}
}
}
}
I use postman to get data, but I can’t get it. I can get the data by changing METAOBJECT to PRODUCT. Why? But the same request can get data in Shopify GraphiQL App

1 Like

Hello @DaoYe

here’s the precise reason why your translatableResources(resourceType: METAOBJECT) query works in Shopify GraphiQL but fails in Postman:

The core issue:
Your API token (used in Postman) lacks the necessary scopes for accessing METAOBJECT translatable resources.

Even though PRODUCT works, METAOBJECT requires additional or elevated permissions, which your token likely does not have.

Why it works in GraphiQL:
. The Shopify GraphiQL App runs within the authenticated context of the store admin.

. It bypasses token restrictions, giving access to all store features, including Translate & Adapt + Metaobjects.

Why it fails in Postman:
. Postman uses your Admin API token, which is strictly limited by scopes.

. METAOBJECT access depends on:

. read_metaobjects

. read_translations

If any of those scopes are missing — or the app isn’t properly installed with Translate & Adapt access — the result will be empty or fail silently.

Steps to Fix It

  1. Confirm your app or token has these scopes:

. read_translations

. read_metaobjects

  1. Reinstall the app if you’re using a custom app and recently added scopes (Shopify requires reauthorization to update scopes).

  2. Check if your store actually has metaobjects with translatable fields: Use this query in Postman first:

{
  metaobjects(first: 5) {
    edges {
      node {
        id
        type
      }
    }
  }
}

If this returns no data, there’s nothing to translate yet.

  1. Make sure Translate & Adapt app is installed, since translation features (especially for Metaobjects) rely on it being active.

Final Tip:
Avoid this in your query (this looks like an accidental paste):

localescreenshot-20250430-095106.png

That line is not valid GraphQL syntax and may cause the request to fail.

Thank you :blush:

1 Like

Thanks for your reply. I found the problem. My colleague did not have the corresponding permissions, which resulted in me not being able to obtain the data.

1 Like

Ok that’s great :+1:

Happy to help :slightly_smiling_face: