This example shows how to load the countries a shop sells to and the supported languages for each country. Any option returned by the API can also be passed to the [`@inContext` directive](/api/storefront#directives) to load data for that country and language context.
Node.js
const client = new shopify.clients.Storefront({
domain: 'your-development-store.myshopify.com',
storefrontAccessToken,
});
const data = await client.query({
data: `query AllLocalizations @inContext(language: EN) {
localization {
availableCountries {
isoCode
name
availableLanguages {
isoCode
endonymName
}
}
}
}`,
});
Response
{
"localization": {
"availableCountries": [
{
"isoCode": "BE",
"name": "Belgium",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "ES",
"endonymName": "Español"
},
{
"isoCode": "FR",
"endonymName": "Français"
}
]
},
{
"isoCode": "CA",
"name": "Canada",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "FR",
"endonymName": "Français"
}
]
},
{
"isoCode": "DE",
"name": "Germany",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "ES",
"endonymName": "Español"
},
{
"isoCode": "FR",
"endonymName": "Français"
}
]
},
{
"isoCode": "ES",
"name": "Spain",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "ES",
"endonymName": "Español"
},
{
"isoCode": "FR",
"endonymName": "Français"
}
]
},
{
"isoCode": "FR",
"name": "France",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "ES",
"endonymName": "Español"
},
{
"isoCode": "FR",
"endonymName": "Français"
}
]
},
{
"isoCode": "GB",
"name": "United Kingdom",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
}
]
},
{
"isoCode": "US",
"name": "United States",
"availableLanguages": [
{
"isoCode": "EN",
"endonymName": "English"
},
{
"isoCode": "ES",
"endonymName": "Español"
}
]
}
]
}
}