Home, Shop and Search page SEO

Read, update, translate and set per-country SEO for a storefront's home, shop and search pages.

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 read_storefront

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.

Example: 0b7c2f0e-6a43-4f7e-9d1c-3f2a8e5b9c41
pageType required string

Storefront page: home, shop or search.

Allowed values
homeshopsearch
Example: shop

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 401 UNAUTHORIZED

    Authorization header missing, malformed, or token invalid/expired.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 STORE_API_SCOPE_REQUIRED

    Token is valid but lacks the required scope for this call.

  • 429 RATE_LIMITED

    The token's request allowance is exhausted. Retry after the Retry-After header.

  • 400 INVALID_INPUT

    The storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.

  • 404 STOREFRONT_NOT_FOUND

    No storefront with this id belongs to the store.

  • 400 PAGE_SEO_PAGE_TYPE_INVALID

    pageType must be home, shop or search.

  • 400 PAGE_SEO_META_TITLE_INVALID_CHARS

    A title contains unsupported control characters.

  • 400 PAGE_SEO_META_TITLE_TOO_LONG

    A title exceeds the configured maximum.

  • 400 PAGE_SEO_META_DESCRIPTION_INVALID_CHARS

    A description contains unsupported control characters.

  • 400 PAGE_SEO_META_DESCRIPTION_TOO_LONG

    A description exceeds the configured maximum.

  • 409 TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONS

    Remove the field's translations before clearing its source value.

Update storefront page SEO

PUT write_storefront; read_site_assets only when assigning social_image_id

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.

Example: 0b7c2f0e-6a43-4f7e-9d1c-3f2a8e5b9c41
pageType required string

Storefront page: home, shop or search.

Allowed values
homeshopsearch
Example: shop

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.

Example: Shop everything at Acme
seo_title_is_default boolean

true returns the search-result title to the generated default.

Example: false
seo_description string|null

Search-result description. Empty or null returns it to the generated default.

Example: Browse every product we sell.
seo_description_is_default boolean

true returns the search-result description to the generated default.

Example: false
social_title string|null

Social-share title. Empty or null returns it to the generated default.

Example: Shop Acme
social_title_is_default boolean

true returns the social-share title to the generated default.

Example: false
social_description string|null

Social-share description. Empty or null returns it to the generated default.

Example: Everything we make, in one place.
social_description_is_default boolean

true returns the social-share description to the generated default.

Example: false
social_image_id string|null

Site-asset image UUID. Empty string or null returns it to the default share image.

Example: 8f2a1c2b-9d4e-4a56-b789-0123456789ab
social_image_is_default boolean

true returns the social image to the default share image.

Example: false
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.

Example: true
robots_index_is_default boolean

true returns indexing to the default.

Example: false
robots_follow boolean|null

Whether search engines may follow links on the page. Null returns it to the default.

Example: true
robots_follow_is_default boolean

true returns link following to the default.

Example: false

Errors

  • 401 UNAUTHORIZED

    Authorization header missing, malformed, or token invalid/expired.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 STORE_API_SCOPE_REQUIRED

    Token is valid but lacks the required scope for this call.

  • 429 RATE_LIMITED

    The token's request allowance is exhausted. Retry after the Retry-After header.

  • 400 INVALID_INPUT

    The storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.

  • 404 STOREFRONT_NOT_FOUND

    No storefront with this id belongs to the store.

  • 400 PAGE_SEO_PAGE_TYPE_INVALID

    pageType must be home, shop or search.

  • 400 PAGE_SEO_META_TITLE_INVALID_CHARS

    A title contains unsupported control characters.

  • 400 PAGE_SEO_META_TITLE_TOO_LONG

    A title exceeds the configured maximum.

  • 400 PAGE_SEO_META_DESCRIPTION_INVALID_CHARS

    A description contains unsupported control characters.

  • 400 PAGE_SEO_META_DESCRIPTION_TOO_LONG

    A description exceeds the configured maximum.

  • 409 TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONS

    Remove the field's translations before clearing its source value.

  • 400 STORE_API_BODY_PROPERTY_UNKNOWN

    The body has a property this request does not accept. The message and error.details.properties list the allowed and required properties (nested for each object or list of objects).

  • 400 STORE_API_BODY_PROPERTY_INVALID

    A body property has the wrong type (error.details.expected_type). The message and error.details.properties list the allowed and required properties.

Get country page SEO

GET read_storefront

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.

Example: 0b7c2f0e-6a43-4f7e-9d1c-3f2a8e5b9c41
pageType required string

Storefront page: home, shop or search.

Allowed values
homeshopsearch
Example: shop
countryCode required string

ISO 3166-1 alpha-2 country code.

Example: CH
locale required string

Language the values apply to in that country, including the store's default language.

Example: it

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 401 UNAUTHORIZED

    Authorization header missing, malformed, or token invalid/expired.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 STORE_API_SCOPE_REQUIRED

    Token is valid but lacks the required scope for this call.

  • 429 RATE_LIMITED

    The token's request allowance is exhausted. Retry after the Retry-After header.

  • 400 INVALID_INPUT

    The storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.

  • 404 STOREFRONT_NOT_FOUND

    No storefront with this id belongs to the store.

  • 400 PAGE_SEO_PAGE_TYPE_INVALID

    pageType must be home, shop or search.

  • 400 PAGE_SEO_META_TITLE_INVALID_CHARS

    A title contains unsupported control characters.

  • 400 PAGE_SEO_META_TITLE_TOO_LONG

    A title exceeds the configured maximum.

  • 400 PAGE_SEO_META_DESCRIPTION_INVALID_CHARS

    A description contains unsupported control characters.

  • 400 PAGE_SEO_META_DESCRIPTION_TOO_LONG

    A description exceeds the configured maximum.

  • 409 TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONS

    Remove the field's translations before clearing its source value.

  • 400 STOREFRONT_COUNTRY_INVALID

    countryCode is not an ISO 3166-1 alpha-2 country code.

  • 400 STOREFRONT_COUNTRY_NOT_SERVED

    No market serves this country.

  • 400 STOREFRONT_LANGUAGE_NOT_SERVED

    The language is not enabled, or is not served in this country.

Update country page SEO

PUT write_storefront; read_site_assets only when assigning social_image_id

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.

Example: 0b7c2f0e-6a43-4f7e-9d1c-3f2a8e5b9c41
pageType required string

Storefront page: home, shop or search.

Allowed values
homeshopsearch
Example: shop
countryCode required string

ISO 3166-1 alpha-2 country code.

Example: CH
locale required string

Language the values apply to in that country, including the store's default language.

Example: it

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.

Example: Marchi disponibili in Svizzera
seo_title_is_default boolean

true stops overriding the search-result title.

Example: false
seo_description string|null

Search-result description for this country and language. Empty or null uses the language value.

Example: Scopri i marchi con consegna in Svizzera.
seo_description_is_default boolean

true stops overriding the search-result description.

Example: false
social_title string|null

Social-share title for this country and language. Empty or null uses the language value.

Example: I nostri marchi
social_title_is_default boolean

true stops overriding the social-share title.

Example: false
social_description string|null

Social-share description for this country and language. Empty or null uses the language value.

Example: Scopri i marchi che offriamo.
social_description_is_default boolean

true stops overriding the social-share description.

Example: false
social_image_id string|null

Site-asset image UUID for this country and language. Empty or null uses the page's image.

Example: 8f2a1c2b-9d4e-4a56-b789-0123456789ab
social_image_is_default boolean

true stops overriding the social image.

Example: false
robots_index boolean|null

Whether search engines may index the page for this country and language. Null uses the page's setting.

Example: true
robots_index_is_default boolean

true stops overriding indexing.

Example: false
robots_follow boolean|null

Whether search engines may follow links on the page for this country and language. Null uses the page's setting.

Example: true
robots_follow_is_default boolean

true stops overriding link following.

Example: false

Errors

  • 401 UNAUTHORIZED

    Authorization header missing, malformed, or token invalid/expired.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 STORE_API_SCOPE_REQUIRED

    Token is valid but lacks the required scope for this call.

  • 429 RATE_LIMITED

    The token's request allowance is exhausted. Retry after the Retry-After header.

  • 400 INVALID_INPUT

    The storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.

  • 404 STOREFRONT_NOT_FOUND

    No storefront with this id belongs to the store.

  • 400 PAGE_SEO_PAGE_TYPE_INVALID

    pageType must be home, shop or search.

  • 400 PAGE_SEO_META_TITLE_INVALID_CHARS

    A title contains unsupported control characters.

  • 400 PAGE_SEO_META_TITLE_TOO_LONG

    A title exceeds the configured maximum.

  • 400 PAGE_SEO_META_DESCRIPTION_INVALID_CHARS

    A description contains unsupported control characters.

  • 400 PAGE_SEO_META_DESCRIPTION_TOO_LONG

    A description exceeds the configured maximum.

  • 409 TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONS

    Remove the field's translations before clearing its source value.

  • 400 STOREFRONT_COUNTRY_INVALID

    countryCode is not an ISO 3166-1 alpha-2 country code.

  • 400 STOREFRONT_COUNTRY_NOT_SERVED

    No market serves this country.

  • 400 STOREFRONT_LANGUAGE_NOT_SERVED

    The language is not enabled, or is not served in this country.

  • 400 STORE_API_BODY_PROPERTY_UNKNOWN

    The body has a property this request does not accept. The message and error.details.properties list the allowed and required properties (nested for each object or list of objects).

  • 400 STORE_API_BODY_PROPERTY_INVALID

    A body property has the wrong type (error.details.expected_type). The message and error.details.properties list the allowed and required properties.

Delete country page SEO

DELETE write_storefront

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.

Example: 0b7c2f0e-6a43-4f7e-9d1c-3f2a8e5b9c41
pageType required string

Storefront page: home, shop or search.

Allowed values
homeshopsearch
Example: shop
countryCode required string

ISO 3166-1 alpha-2 country code.

Example: CH
locale required string

Language the values apply to in that country, including the store's default language.

Example: it

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 401 UNAUTHORIZED

    Authorization header missing, malformed, or token invalid/expired.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 STORE_API_SCOPE_REQUIRED

    Token is valid but lacks the required scope for this call.

  • 429 RATE_LIMITED

    The token's request allowance is exhausted. Retry after the Retry-After header.

  • 400 INVALID_INPUT

    The storefront id is not a UUID. The social image id is malformed, not an image, outside this store, or not a site asset.

  • 404 STOREFRONT_NOT_FOUND

    No storefront with this id belongs to the store.

  • 400 PAGE_SEO_PAGE_TYPE_INVALID

    pageType must be home, shop or search.

  • 400 PAGE_SEO_META_TITLE_INVALID_CHARS

    A title contains unsupported control characters.

  • 400 PAGE_SEO_META_TITLE_TOO_LONG

    A title exceeds the configured maximum.

  • 400 PAGE_SEO_META_DESCRIPTION_INVALID_CHARS

    A description contains unsupported control characters.

  • 400 PAGE_SEO_META_DESCRIPTION_TOO_LONG

    A description exceeds the configured maximum.

  • 409 TRANSLATION_SOURCE_FIELD_HAS_TRANSLATIONS

    Remove the field's translations before clearing its source value.

  • 400 STOREFRONT_COUNTRY_INVALID

    countryCode is not an ISO 3166-1 alpha-2 country code.

  • 400 STOREFRONT_COUNTRY_NOT_SERVED

    No market serves this country.

  • 400 STOREFRONT_LANGUAGE_NOT_SERVED

    The language is not enabled, or is not served in this country.

  • 404 SEO_OVERRIDE_NOT_FOUND

    The page has no SEO for this country and language.