Sign Customiser

Navigation

Dark mode

Customiser languages

Delete a customiser language

Copy page

Remove a language and every translation row it holds, and return a receipt: the language exactly as it was immediately before deletion. The copy is gone from the storefront as soon as the customiser cached configuration clears.

DELETE/api/v3/customisers/{customiser_id}/languages/{language_code}
DELETEDelete a customiser language
DELETE/api/v3/customisers/{customiser_id}/languages/{language_code}

Delete a customiser language

Remove a language and every translation row it holds, and return a receipt: the language exactly as it was immediately before deletion. The copy is gone from the storefront as soon as the customiser cached configuration clears. These states refuse the delete. A 422 problem with code `language_not_deletable` means it is the customiser default language, or the only published one: a customiser must always keep one published default, because it is the copy the storefront falls back to — publish another language and make it the default first. The same code with `reason` `authoring_language` means that the language is the authoring language (`is_authoring`). Its rows own the option and form text, so you cannot remove it. A 409 problem with code `ai_translation_in_progress` means an AI translation is still writing this language draft copy; wait for it, or cancel it, then retry. A 409 problem with code `resource_in_use` means other records still point at the language, and names them in `referenced_by`. The delete 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: repeating the same key replays the original receipt without deleting anything else. 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

The Authorization header expects a Bearer token. Generate one on the API keys page in your dashboard.

Path

The customiser id, from the list customisers operation.

The language tag, from the list customiser languages operation.

Delete a customiser language

Overview

These states refuse the delete. A 422 problem with code language_not_deletable means it is the customiser default language, or the only published one: a customiser must always keep one published default, because it is the copy the storefront falls back to — publish another language and make it the default first. The same code with reason authoring_language means that the language is the authoring language (is_authoring). Its rows own the option and form text, so you cannot remove it. A 409 problem with code ai_translation_in_progress means an AI translation is still writing this language draft copy; wait for it, or cancel it, then retry. A 409 problem with code resource_in_use means other records still point at the language, and names them in referenced_by. The delete 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: repeating the same key replays the original receipt without deleting anything else. 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 the Authorization 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

Delete a customiser language
curl https://web.signcustomiser.com/api/v3/customisers/1/languages/fr \
  --request DELETE \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
Response
{
  "data": {
    "object": "customiser_language_deletion_receipt",
    "language_code": "fr",
    "customiser_id": 42,
    "deleted": true,
    "resource": {
      "object": "customiser_language",
      "customiser_id": 42,
      "language_code": "fr",
      "source_language_code": "en",
      "display_name": "French",
      "status": "draft",
      "is_default": false,
      "is_authoring": false,
      "translation_summary": {
        "key_count": 184,
        "required_key_count": 96,
        "translated_key_count": 12,
        "retired_key_count": 0,
        "missing_required_key_count": 84,
        "publishable": false
      },
      "ai_translation": null,
      "published_at": null,
      "created_at": "2026-05-04T09:09:00Z",
      "updated_at": "2026-05-04T09:11:20Z"
    }
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/languages/fr",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}

Type a question and press Enter. Use the arrow keys to move between the results.