Manage the search-result, social-share and robots metadata of a storefront's home, shop and search pages. Each storefront has its own values, addressed by storefrontId (from List storefronts) and pageType: home, shop or search. Reads require read_storefront; writes require write_storefront. Translation calls also require read_translations or write_translations, and assigning a non-empty social_image_id requires read_site_assets and a site-asset image of this store.
Updates are patches: omitted fields keep their value and an empty string clears a text field. Send null, or set the field's *_is_default flag to true, to return a field to its generated default; the flag wins over a value sent with it. For robots_index and robots_follow, null restores the automatic rule instead of a fixed value. Every read returns each field with its *_is_default flag and generated *_default value, so a read sent back unchanged keeps generated values generated. The shop page is not indexed while it lists no products, and a search with a query (q) is always noindex,follow; robots settings apply to the search page without one.
A title saved on the page, in a translation or on a country row is final: the title pattern and the store-name suffix are never applied to it. A generated title is the page name formatted by the effective title pattern for the shopper's language and country. A non-empty pattern replaces the automatic store-name suffix; with no pattern, – and the store name are appended when add_store_name_to_page_titles is on, otherwise the title is the page name. The home page's generated title is the store name. Set the pattern, the store-name switch and the share image with Update page titles and share image, and per language or country with SEO overrides.
Only seo_title, seo_description, social_title and social_description are translatable. A field without a translation shows the generated default for that language, never the default-language text. Generated copy exists in ar, bn, cs, da, de, en, es, fi, fr, he, id, it, ja, ko, ms, nb, nl, no, pl, pt, pt-BR, pt-PT, ru, sv, th, tr, vi, zh, zh-CN and zh-TW; other languages get the English generated copy, so supply your own text for them. The social image and robots settings apply to every language; set them for one country and language with the country endpoints below (see Country page SEO). Single-page and batch translation calls are on Storefront page SEO translations.
Endpoints#
Get storefront page SEO
Get source SEO for a storefront's home, shop or search page.
Returns the search-result and social-share text, social image and robots settings with, for each, its generated default and whether the page still uses it (*_is_default). A page nobody has edited returns its generated defaults. These are the values for the store's default language. In another language the storefront uses that language's translation and, where a field has none, the generated default for that language, never the default-language text. Generated copy exists in ar, bn, cs, da, de, en, es, fi, fr, he, id, it, ja, ko, ms, nb, nl, no, pl, pt, pt-BR, pt-PT, ru, sv, th, tr, vi, zh, zh-CN and zh-TW; other languages get the English generated copy. A country row (Get country page SEO) overrides a field for shoppers in one country and language. A title saved here or in a translation or country row is final: the title pattern and the store-name suffix apply only to generated titles. A generated title is the page name formatted by the effective title pattern for that language and country; with no pattern, the store name is appended when add_store_name_to_page_titles is on. Robots settings and the social image are shared by all languages unless a country row sets them. The home page's generated title is the store name. The shop page defaults to noindex while it lists no products. A search with a query (q) is always noindex,follow; these settings apply to the search page without one.
Path parameters
| Name | Type | Description |
|---|---|---|
storefrontId
required
|
uuid |
Storefront id from List storefronts. |
pageType
required
|
string |
Storefront page:
Allowed values
homeshopsearch |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
401UNAUTHORIZEDAuthorization header missing, malformed, or token invalid/expired.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403STORE_API_SCOPE_REQUIREDToken is valid but lacks the required scope for this call.
-
429RATE_LIMITEDThe token's request allowance is exhausted. Retry after the Retry-After header.
-
400INVALID_INPUTThe storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.
-
404STOREFRONT_NOT_FOUNDNo storefront with this id belongs to the store.
-
400PAGE_SEO_PAGE_TYPE_INVALIDpageTypemust behome,shoporsearch. -
400PAGE_SEO_META_TITLE_INVALID_CHARSA title contains unsupported control characters.
-
400PAGE_SEO_META_TITLE_TOO_LONGA title exceeds the configured maximum.
-
400PAGE_SEO_META_DESCRIPTION_INVALID_CHARSA description contains unsupported control characters.
-
400PAGE_SEO_META_DESCRIPTION_TOO_LONGA description exceeds the configured maximum.
-
409TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONSRemove the field's translations before clearing its source value.
Update storefront page SEO
Update source SEO for a storefront's home, shop or search page.
This is a patch: omitted fields remain unchanged and an empty string clears a text field. To return a field to its generated default, send null for it or set its *_is_default flag to true; the flag wins over a value sent with it. The GET response carries the same flags, so sending it back unchanged keeps generated defaults generated instead of saving their current text. A title you save is final: the title pattern and store-name suffix are not applied to it. A source field with stored translations cannot be cleared until those translations are removed. Changing source text marks that field's translations outdated. Setting a non-empty social_image_id additionally requires read_site_assets and an image from this store's site-asset namespace. The response has the same shape as the GET.
Path parameters
| Name | Type | Description |
|---|---|---|
storefrontId
required
|
uuid |
Storefront id from List storefronts. |
pageType
required
|
string |
Storefront page:
Allowed values
homeshopsearch |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
seo_title
|
string|null |
Search-result title. Empty or null returns it to the generated default. |
seo_title_is_default
|
boolean |
|
seo_description
|
string|null |
Search-result description. Empty or null returns it to the generated default. |
seo_description_is_default
|
boolean |
|
social_title
|
string|null |
Social-share title. Empty or null returns it to the generated default. |
social_title_is_default
|
boolean |
|
social_description
|
string|null |
Social-share description. Empty or null returns it to the generated default. |
social_description_is_default
|
boolean |
|
social_image_id
|
string|null |
Site-asset image UUID. Empty string or null returns it to the default share image. |
social_image_is_default
|
boolean |
|
robots_index
|
boolean|null |
Whether search engines may index the page. Null returns it to the default: the shop page is not indexed while it lists no products, and a search with a query is never indexed. |
robots_index_is_default
|
boolean |
|
robots_follow
|
boolean|null |
Whether search engines may follow links on the page. Null returns it to the default. |
robots_follow_is_default
|
boolean |
|
Errors
-
401UNAUTHORIZEDAuthorization header missing, malformed, or token invalid/expired.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403STORE_API_SCOPE_REQUIREDToken is valid but lacks the required scope for this call.
-
429RATE_LIMITEDThe token's request allowance is exhausted. Retry after the Retry-After header.
-
400INVALID_INPUTThe storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.
-
404STOREFRONT_NOT_FOUNDNo storefront with this id belongs to the store.
-
400PAGE_SEO_PAGE_TYPE_INVALIDpageTypemust behome,shoporsearch. -
400PAGE_SEO_META_TITLE_INVALID_CHARSA title contains unsupported control characters.
-
400PAGE_SEO_META_TITLE_TOO_LONGA title exceeds the configured maximum.
-
400PAGE_SEO_META_DESCRIPTION_INVALID_CHARSA description contains unsupported control characters.
-
400PAGE_SEO_META_DESCRIPTION_TOO_LONGA description exceeds the configured maximum.
-
409TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONSRemove the field's translations before clearing its source value.
-
400STORE_API_BODY_PROPERTY_UNKNOWNThe body has a property this request does not accept. The message and
error.details.propertieslist the allowed and required properties (nestedfor each object or list of objects). -
400STORE_API_BODY_PROPERTY_INVALIDA body property has the wrong type (
error.details.expected_type). The message anderror.details.propertieslist the allowed and required properties.
Get country page SEO
Get the SEO used for a storefront's home, shop or search page in one country and language.
A country row overrides individual fields for shoppers in one country browsing in one language, for example Italian in Switzerland. Each field reports whether the row sets it: *_is_default is true when it does not, and the page then uses *_default, the value for that language (its translation or, in the default language, the source value, else the generated default for that language). A country with no row returns every field as default. A title set on a country row is final: the title pattern and store-name suffix are not applied to it.
Path parameters
| Name | Type | Description |
|---|---|---|
storefrontId
required
|
uuid |
Storefront id from List storefronts. |
pageType
required
|
string |
Storefront page:
Allowed values
homeshopsearch |
countryCode
required
|
string |
ISO 3166-1 alpha-2 country code. |
locale
required
|
string |
Language the values apply to in that country, including the store's default language. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
401UNAUTHORIZEDAuthorization header missing, malformed, or token invalid/expired.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403STORE_API_SCOPE_REQUIREDToken is valid but lacks the required scope for this call.
-
429RATE_LIMITEDThe token's request allowance is exhausted. Retry after the Retry-After header.
-
400INVALID_INPUTThe storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.
-
404STOREFRONT_NOT_FOUNDNo storefront with this id belongs to the store.
-
400PAGE_SEO_PAGE_TYPE_INVALIDpageTypemust behome,shoporsearch. -
400PAGE_SEO_META_TITLE_INVALID_CHARSA title contains unsupported control characters.
-
400PAGE_SEO_META_TITLE_TOO_LONGA title exceeds the configured maximum.
-
400PAGE_SEO_META_DESCRIPTION_INVALID_CHARSA description contains unsupported control characters.
-
400PAGE_SEO_META_DESCRIPTION_TOO_LONGA description exceeds the configured maximum.
-
409TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONSRemove the field's translations before clearing its source value.
-
400STOREFRONT_COUNTRY_INVALIDcountryCodeis not an ISO 3166-1 alpha-2 country code. -
400STOREFRONT_COUNTRY_NOT_SERVEDNo market serves this country.
-
400STOREFRONT_LANGUAGE_NOT_SERVEDThe language is not enabled, or is not served in this country.
Update country page SEO
Set SEO for a storefront's home, shop or search page in one country and language.
This is a patch: omitted fields keep their value. Send null, an empty string, or *_is_default: true to stop overriding a field, so the page uses the value for that language again; the flag wins over a value sent with it. Text fields, the social image and both robots settings can be set per country. Setting a non-empty social_image_id additionally requires read_site_assets and an image from this store's site-asset namespace. The response has the same shape as the GET.
Path parameters
| Name | Type | Description |
|---|---|---|
storefrontId
required
|
uuid |
Storefront id from List storefronts. |
pageType
required
|
string |
Storefront page:
Allowed values
homeshopsearch |
countryCode
required
|
string |
ISO 3166-1 alpha-2 country code. |
locale
required
|
string |
Language the values apply to in that country, including the store's default language. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
seo_title
|
string|null |
Search-result title for this country and language. Empty or null uses the language value. |
seo_title_is_default
|
boolean |
|
seo_description
|
string|null |
Search-result description for this country and language. Empty or null uses the language value. |
seo_description_is_default
|
boolean |
|
social_title
|
string|null |
Social-share title for this country and language. Empty or null uses the language value. |
social_title_is_default
|
boolean |
|
social_description
|
string|null |
Social-share description for this country and language. Empty or null uses the language value. |
social_description_is_default
|
boolean |
|
social_image_id
|
string|null |
Site-asset image UUID for this country and language. Empty or null uses the page's image. |
social_image_is_default
|
boolean |
|
robots_index
|
boolean|null |
Whether search engines may index the page for this country and language. Null uses the page's setting. |
robots_index_is_default
|
boolean |
|
robots_follow
|
boolean|null |
Whether search engines may follow links on the page for this country and language. Null uses the page's setting. |
robots_follow_is_default
|
boolean |
|
Errors
-
401UNAUTHORIZEDAuthorization header missing, malformed, or token invalid/expired.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403STORE_API_SCOPE_REQUIREDToken is valid but lacks the required scope for this call.
-
429RATE_LIMITEDThe token's request allowance is exhausted. Retry after the Retry-After header.
-
400INVALID_INPUTThe storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.
-
404STOREFRONT_NOT_FOUNDNo storefront with this id belongs to the store.
-
400PAGE_SEO_PAGE_TYPE_INVALIDpageTypemust behome,shoporsearch. -
400PAGE_SEO_META_TITLE_INVALID_CHARSA title contains unsupported control characters.
-
400PAGE_SEO_META_TITLE_TOO_LONGA title exceeds the configured maximum.
-
400PAGE_SEO_META_DESCRIPTION_INVALID_CHARSA description contains unsupported control characters.
-
400PAGE_SEO_META_DESCRIPTION_TOO_LONGA description exceeds the configured maximum.
-
409TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONSRemove the field's translations before clearing its source value.
-
400STOREFRONT_COUNTRY_INVALIDcountryCodeis not an ISO 3166-1 alpha-2 country code. -
400STOREFRONT_COUNTRY_NOT_SERVEDNo market serves this country.
-
400STOREFRONT_LANGUAGE_NOT_SERVEDThe language is not enabled, or is not served in this country.
-
400STORE_API_BODY_PROPERTY_UNKNOWNThe body has a property this request does not accept. The message and
error.details.propertieslist the allowed and required properties (nestedfor each object or list of objects). -
400STORE_API_BODY_PROPERTY_INVALIDA body property has the wrong type (
error.details.expected_type). The message anderror.details.propertieslist the allowed and required properties.
Delete country page SEO
Remove the country SEO of a storefront's home, shop or search page for one country and language.
Shoppers in that country then see the values for the language again.
Path parameters
| Name | Type | Description |
|---|---|---|
storefrontId
required
|
uuid |
Storefront id from List storefronts. |
pageType
required
|
string |
Storefront page:
Allowed values
homeshopsearch |
countryCode
required
|
string |
ISO 3166-1 alpha-2 country code. |
locale
required
|
string |
Language the values apply to in that country, including the store's default language. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
401UNAUTHORIZEDAuthorization header missing, malformed, or token invalid/expired.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403STORE_API_SCOPE_REQUIREDToken is valid but lacks the required scope for this call.
-
429RATE_LIMITEDThe token's request allowance is exhausted. Retry after the Retry-After header.
-
400INVALID_INPUTThe storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.
-
404STOREFRONT_NOT_FOUNDNo storefront with this id belongs to the store.
-
400PAGE_SEO_PAGE_TYPE_INVALIDpageTypemust behome,shoporsearch. -
400PAGE_SEO_META_TITLE_INVALID_CHARSA title contains unsupported control characters.
-
400PAGE_SEO_META_TITLE_TOO_LONGA title exceeds the configured maximum.
-
400PAGE_SEO_META_DESCRIPTION_INVALID_CHARSA description contains unsupported control characters.
-
400PAGE_SEO_META_DESCRIPTION_TOO_LONGA description exceeds the configured maximum.
-
409TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONSRemove the field's translations before clearing its source value.
-
400STOREFRONT_COUNTRY_INVALIDcountryCodeis not an ISO 3166-1 alpha-2 country code. -
400STOREFRONT_COUNTRY_NOT_SERVEDNo market serves this country.
-
400STOREFRONT_LANGUAGE_NOT_SERVEDThe language is not enabled, or is not served in this country.
-
404SEO_OVERRIDE_NOT_FOUNDThe page has no SEO for this country and language.