Translate the label of a built-in or custom product filter for an enabled non-default store locale. Reads require read_products and read_translations; writes require write_products and write_translations. Only label is translatable, with a 100-character limit. An empty string removes the translation.
Storefront listings use the translated heading when present and otherwise use the original label. Changing the original label marks its translations outdated without removing them. Filter keys, choice values, matching behavior and configuration revisions stay unchanged. Translate choice labels through their source resources. Built-in yes/no, availability and sale-state phrases use Storefront messages.
Get filter translation
Read a filter's stored label translation.
The label is the only translatable field on a filter. Missing translations return an empty fields object. Storefronts fall back to the original label. Choice labels translate at their source.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
string |
Product filter definition UUID, including a built-in filter. |
locale
required
|
string |
Enabled non-default store locale. |
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.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_INVALID_RESOURCE_IDA filter ID is not a valid nonzero UUID.
-
400TRANSLATION_RESOURCE_ID_REQUIREDA filter ID is required.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREA filter does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe batch exceeds the translation resource limit.
Set filter translation
Translate a built-in or custom filter's label.
Only supplied fields change. label accepts up to 100 characters. An empty string removes the translation. Changing the original label marks translations outdated; they remain visible until updated or removed. Translations do not change filter keys, choice values, matching behavior, or configuration revisions.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
string |
Product filter definition UUID, including a built-in filter. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
object |
Field-keyed string values. Only label is supported. |
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.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_INVALID_RESOURCE_IDA filter ID is not a valid nonzero UUID.
-
400TRANSLATION_RESOURCE_ID_REQUIREDA filter ID is required.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREA filter does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe batch exceeds the translation resource limit.
-
400STORE_API_INVALID_REQUEST_BODYMalformed JSON, an unknown body field, or a non-string translation value.
-
400TRANSLATION_NO_WRITES_PROVIDEDAt least one translation row is required.
-
400TRANSLATION_FIELDS_REQUIREDEach row must contain at least one field.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEOnly label is translatable.
-
400TRANSLATION_TOO_MANY_FIELDSThe request exceeds the translation field limit.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA value exceeds the allowed length.
-
400TRANSLATION_FIELD_EXCEEDS_BYTE_LIMITThe label exceeds 100 characters.
-
400TRANSLATION_STAGING_INVALID_CONTROL_CHARSThe label contains invalid control characters.
-
409TRANSLATION_MUTATION_CONFLICTThe idempotency key was already used with a different request.
Batch get filter translations
Read several filter labels in one locale.
Each resources entry is keyed by product_filter_definition:{id}. A filter with no stored translation has an empty object. Every requested filter must belong to the token's store.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Query parameters
| Name | Type | Description |
|---|---|---|
ids
required
|
string |
Comma-separated filter definition UUIDs. |
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.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_INVALID_RESOURCE_IDA filter ID is not a valid nonzero UUID.
-
400TRANSLATION_RESOURCE_ID_REQUIREDA filter ID is required.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREA filter does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe batch exceeds the translation resource limit.
Batch set filter translations
Update several filter labels atomically.
Each row contains a filter UUID and fields with label. The entire request succeeds or fails together. Empty label strings remove existing translations. Omitted filters keep their translations.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
array<object> |
Rows containing id (UUID) and fields. Only label is translatable. |
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.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_INVALID_RESOURCE_IDA filter ID is not a valid nonzero UUID.
-
400TRANSLATION_RESOURCE_ID_REQUIREDA filter ID is required.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREA filter does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe batch exceeds the translation resource limit.
-
400STORE_API_INVALID_REQUEST_BODYMalformed JSON, an unknown body field, or a non-string translation value.
-
400TRANSLATION_NO_WRITES_PROVIDEDAt least one translation row is required.
-
400TRANSLATION_FIELDS_REQUIREDEach row must contain at least one field.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEOnly label is translatable.
-
400TRANSLATION_TOO_MANY_FIELDSThe request exceeds the translation field limit.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA value exceeds the allowed length.
-
400TRANSLATION_FIELD_EXCEEDS_BYTE_LIMITThe label exceeds 100 characters.
-
400TRANSLATION_STAGING_INVALID_CONTROL_CHARSThe label contains invalid control characters.
-
409TRANSLATION_MUTATION_CONFLICTThe idempotency key was already used with a different request.