--- title: shopLocales - GraphQL Admin description: A list of locales available on a shop. api_version: 2025-10 api_name: admin type: query api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/queries/shoplocales md: https://shopify.dev/docs/api/admin-graphql/latest/queries/shoplocales.md --- # shop​Locales query Requires `read_locales` access scope or `read_markets_home` access scope. A list of locales available on a shop. ## Arguments * published [Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean) Default:false Return only published locales. *** ## Possible returns * Shop​Locale [\[Shop​Locale!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopLocale) A locale that's been enabled on a shop. *** ## Examples * ### Retrieve a shop's locales #### Description The following query retrieves a list of the shop's enabled locales, including the locale tag, the published state, and whether the locale tag is the primary tag. #### Query ```graphql query { shopLocales { locale primary published } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query { shopLocales { locale primary published } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { shopLocales { locale primary published } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query { shopLocales { locale primary published } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query { shopLocales { locale primary published } }`, }); ``` #### Response ```json { "shopLocales": [ { "locale": "en", "primary": true, "published": true }, { "locale": "es", "primary": false, "published": true }, { "locale": "fr", "primary": false, "published": true }, { "locale": "ja", "primary": false, "published": true } ] } ``` ## Retrieve a shop's locales [Open in GraphiQL](http://localhost:3457/graphiql?query=query%20%7B%0A%20%20shopLocales%20%7B%0A%20%20%20%20locale%0A%20%20%20%20primary%0A%20%20%20%20published%0A%20%20%7D%0A%7D) ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { shopLocales { locale primary published } }`, ); const json = await response.json(); return json.data; } ``` ##### GQL ``` query { shopLocales { locale primary published } } ``` ##### cURL ``` curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query { shopLocales { locale primary published } }" }' ``` ##### React Router ``` import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { shopLocales { locale primary published } }`, ); const json = await response.json(); return json.data; } ``` ##### Node.js ``` const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query { shopLocales { locale primary published } }`, }); ``` ##### Ruby ``` session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query { shopLocales { locale primary published } } QUERY response = client.query(query: query) ``` ## Response JSON ```json { "shopLocales": [ { "locale": "en", "primary": true, "published": true }, { "locale": "es", "primary": false, "published": true }, { "locale": "fr", "primary": false, "published": true }, { "locale": "ja", "primary": false, "published": true } ] } ```