Get page translation
Fetch one page translation.
Returns stored translated Page fields for one locale, including whether the translation is out of date. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Page id. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400STORE_API_INVALID_PAGE_IDPage id is not a valid UUID.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREPage does not exist in this store.
Set page translation
Set one page translation.
Writes translated Page fields for one locale. Empty values clear the matching field translation.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Page id. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
object |
Field-keyed translation values. Allowed fields come from |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400STORE_API_INVALID_PAGE_IDPage id is not a valid UUID.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREPage does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for Pages.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_NO_SOURCE_TEXTA non-empty translation requires source text for that field.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated title or slug conflicts with another page.
-
400PAGE_SLUG_INVALID_FORMATTranslated slug is not valid for Page URLs.
Batch get page translations
Fetch page translations in batch.
Returns translated Page fields for multiple page ids in one locale. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Query parameters
| Name | Type | Description |
|---|---|---|
ids
required
|
string |
Comma-separated Page ids. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREPage does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
-
400STORE_API_INVALID_PAGE_IDOne page id is not a valid UUID.
Batch set page translations
Set page translations in batch.
Writes translated Page fields for multiple page ids in one locale. Either every row is written or, if any row is invalid, none are.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
array<object> |
Rows with |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400STORE_API_INVALID_PAGE_IDOne page id is not a valid UUID.
-
400TRANSLATION_TOO_MANY_FIELDSThe request exceeds the translation batch field cap.
-
400TRANSLATION_NO_WRITES_PROVIDEDNo translation writes were provided.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREPage does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for Pages.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_NO_SOURCE_TEXTA non-empty translation requires source text for that field.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated title or slug conflicts with another page.
-
400PAGE_SLUG_INVALID_FORMATTranslated slug is not valid for Page URLs.
Get a page metafield translation
Fetch one translated page custom-data value.
Resolves the definition by namespace and key, verifies that it is translatable and visible to the token, then returns its value for the requested enabled non-default language. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Page id. |
namespace
required
|
string |
Metafield definition namespace. |
key
required
|
string |
Metafield definition key. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400STORE_API_INVALID_PAGE_IDPage ID must be a UUID.
-
400PRODUCT_METAFIELD_DEF_NOT_FOUNDThe namespace and key do not identify an accessible definition.
-
403METAFIELD_WRITE_APP_OWN_ONLYAn app token can write only its own definitions.
-
404NOT_FOUNDThe page does not exist in this store.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe metafield is not translatable.
Set a page metafield translation
Set or clear one translated page custom-data value.
The definition must permit writes and translations. Send an empty value to clear this locale’s translation. Send an explicit string in value; omit neither the field nor its value, and do not send null. An empty string clears the translation. For list.string, send a JSON-encoded string array with one translated item for each source item, in the same order.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Page id. |
namespace
required
|
string |
Metafield definition namespace. |
key
required
|
string |
Metafield definition key. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
value
required
|
string |
Translated value. Send an empty string to delete the stored translation for this locale. |
Errors
-
400STORE_API_INVALID_PAGE_IDPage ID must be a UUID.
-
400PRODUCT_METAFIELD_DEF_NOT_FOUNDThe namespace and key do not identify an accessible definition.
-
403METAFIELD_WRITE_APP_OWN_ONLYAn app token can write only its own definitions.
-
404NOT_FOUNDThe page does not exist in this store.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe metafield is not translatable.
-
400TRANSLATION_LIST_LENGTH_MISMATCHThe translated list must have the same number of items as the source list.
Webhook events#
Subscribe to these events when your integration mirrors localized pages. Update and clear events identify the locale and changed fields. One write can emit both events when it sets some fields and clears others.
Page translations updated
Fired when a page's translations are added or updated for a locale. Payload carries only the fields that changed.
Payload fields
| Field | Type | Description |
|---|---|---|
page.id |
string |
Always present |
page.title |
string |
Selectable in the Payload builder |
page.slug |
string |
Selectable in the Payload builder |
page.content |
string |
Selectable in the Payload builder |
page.status |
string |
Selectable in the Payload builder |
page.seo_title |
string |
Selectable in the Payload builder |
page.seo_description |
string |
Selectable in the Payload builder |
page.template_handle |
string |
Selectable in the Payload builder |
page.created_at |
string |
Selectable in the Payload builder |
page.updated_at |
string |
Selectable in the Payload builder |
locale |
string |
Selectable in the Payload builder |
translation.title |
string |
Selectable in the Payload builder |
translation.slug |
string |
Selectable in the Payload builder |
translation.content |
string |
Selectable in the Payload builder |
translation.seo_title |
string |
Selectable in the Payload builder |
translation.seo_description |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |
Page translations deleted
Fired when a page's translations are cleared for one or more fields in a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
page.id |
string |
Always present |
page.title |
string |
Selectable in the Payload builder |
page.slug |
string |
Selectable in the Payload builder |
page.content |
string |
Selectable in the Payload builder |
page.status |
string |
Selectable in the Payload builder |
page.seo_title |
string |
Selectable in the Payload builder |
page.seo_description |
string |
Selectable in the Payload builder |
page.template_handle |
string |
Selectable in the Payload builder |
page.created_at |
string |
Selectable in the Payload builder |
page.updated_at |
string |
Selectable in the Payload builder |
locale |
string |
Selectable in the Payload builder |
translation.title |
string |
Selectable in the Payload builder |
translation.slug |
string |
Selectable in the Payload builder |
translation.content |
string |
Selectable in the Payload builder |
translation.seo_title |
string |
Selectable in the Payload builder |
translation.seo_description |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |