Refresh localizations

Asks Stash to refresh the shop's localizations from its enabled localization source, for example after the source file changes. The request body is the empty JSON object {}. This method accepts only the versioned x-stash-hmac-signature header, signed over the request body exactly as sent ({}); the legacy stash-hmac-signature header is rejected with UNAUTHENTICATED, because it carries no timestamp and a captured request could be replayed. The shop in the signature header must equal the shop_id in the path. A successful response means the refresh is durably queued, not that the import has completed or that the storefront shows the result. Repeated calls are safe, so retry after UNAVAILABLE or a timeout with a fresh timestamp and signature. Returns UNAUTHENTICATED when the signature is missing, invalid, outside the time window, sent in the legacy header, or names a different shop or one Stash does not know; FAILED_PRECONDITION when the shop has no enabled localization source; and UNAVAILABLE when the refresh could not be queued, in which case retry.

POST
/sdk/studio/{shopId}/localizations/refresh
x-stash-hmac-signature<token>

Versioned HMAC-SHA256 signature authenticating server-to-server SDK requests (your backend calling Stash), as opposed to client-side SDK operations. Recommended over the deprecated X-Stash-Api-Key for the best security. Header format: v1;{appId};{unixMillisTimestamp};{base64Signature} (semicolon-delimited). {base64Signature} is the base64-encoded HMAC-SHA256 of the string {unixMillisTimestamp}.{requestBody} using your app ingress secret (the ingress secret is shown base64-encoded in Studio; base64-decode it to the raw bytes used as the HMAC key), where {requestBody} is the compact canonical request JSON for POST requests and empty for GET requests. The timestamp must be within 5 minutes of Stash server time. Your appId is your immutable app identifier, shown in Stash Studio under Project Settings > App details; your ingress secret is under Project Settings > API Secrets.

In: header

Path Parameters

shopId*string

Shop identifier from Stash Studio. Must equal the shop in the x-stash-hmac-signature header.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to refresh a shop's localizations. The shop is taken from the path, so the JSON body is the empty object {}. Signed over the request body.

Response Body

application/json

application/json

curl -X POST "https://example.com/sdk/studio/string/localizations/refresh" \  -H "Content-Type: application/json" \  -d '{}'
{  "accepted": true}

How is this guide?