Sign Customiser

Stop the AI translation currently writing this language draft copy. The job is marked cancelled, the provider batch behind it is cancelled too, and a language left in the translating status returns to draft.

POST/api/v3/customisers/{customiser_id}/languages/{language_code}/cancel-ai-translation

Overview

Draft values the translation had already written are kept: cancelling stops further work, it does not undo work already done. This is the only AI translation operation on the API. Starting and retrying a translation are deferred, because each call spends money with an external provider on an unbounded amount of copy — so this operation exists to stop a translation the merchant admin started, which is what unblocks a publish or a delete refused with ai_translation_in_progress. A 422 problem with code ai_translation_not_cancellable means there is nothing to cancel: reason is no_translation when the language has never had one, or not_running when its most recent translation has already finished, failed, or been cancelled. Read the language ai_translation to see which. The write clears the customiser cached storefront configuration and runs the advisory language sync. It never regenerates your Shopify products, product images, or product cache. An Idempotency-Key header is required. Requires the customisers:write scope. A 400 problem means the Idempotency-Key header is missing or malformed. 401, 403, 404, and 429 problems behave as on the read operation, with customisers:write as the required scope.

Authorisation

Bearer token required. Include it in theAuthorization header.

Required scope: customisers:write

Path parameters

customiser_idstringpathrequired

The customiser id, from the list customisers operation.

Example: 1

language_codestringpathrequired

The language tag, from the list customiser languages operation.

Example: fr

Cancel an AI translation
curl https://web.signcustomiser.com/api/v3/customisers/1/languages/fr/cancel-ai-translation \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
Response
{
  "data": {
    "object": "customiser_language",
    "customiser_id": 42,
    "language_code": "fr",
    "source_language_code": "en",
    "display_name": "French",
    "status": "draft",
    "is_default": false,
    "translation_summary": {
      "key_count": 184,
      "required_key_count": 96,
      "translated_key_count": 64,
      "retired_key_count": 0,
      "missing_required_key_count": 32,
      "publishable": false
    },
    "ai_translation": {
      "object": "language_ai_translation",
      "status": "cancelled",
      "cancellable": false,
      "chunks_total": 8,
      "keys_targeted": 184,
      "error_summary": null,
      "started_at": "2026-05-04T09:10:00Z",
      "finished_at": "2026-05-04T09:11:45Z",
      "created_at": "2026-05-04T09:09:58Z",
      "updated_at": "2026-05-04T09:11:45Z"
    },
    "published_at": null,
    "created_at": "2026-05-04T09:09:00Z",
    "updated_at": "2026-05-04T09:11:45Z"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/languages/fr/cancel-ai-translation",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}