Sign Customiser

Navigation

Dark mode

Customiser languages

Validate language translations

Copy page

Dry-run a translation write without persisting anything. The request body is the same body the update accepts, and the response on the failing paths is exactly the problem that update would return — the same key allowlist and the same placeholder checks run, only persistence is skipped.

POST/api/v3/customisers/{customiser_id}/languages/{language_code}/translations/validate-update
POSTValidate language translations
POST/api/v3/customisers/{customiser_id}/languages/{language_code}/translations/validate-update

Validate language translations

Dry-run a translation write without persisting anything. The request body is the same body the update accepts, and the response on the failing paths is exactly the problem that update would return — the same key allowlist and the same placeholder checks run, only persistence is skipped. On a body that would apply, the response is a 200 `customiser_language_translations_validation` confirmation. Nothing is written, no caches are touched, no idempotency key is consumed, and no activity is recorded, so the operation is always safe to repeat. The verdict is advisory: nothing binds it to a later update, and the catalogue can legitimately change between the two calls. Requires the `customisers:write` scope, because it is the write dry-run twin. A 400 problem means the body is not valid JSON; 422 problems carry the update own `invalid_translation_key`, `validation_failed`, or `unknown_field` diagnostics. 401, 403, 404, and 429 problems behave as on the update operation.

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.

Body
Validate language translations

Overview

On a body that would apply, the response is a 200 customiser_language_translations_validation confirmation. Nothing is written, no caches are touched, no idempotency key is consumed, and no activity is recorded, so the operation is always safe to repeat. The verdict is advisory: nothing binds it to a later update, and the catalogue can legitimately change between the two calls. Requires the customisers:write scope, because it is the write dry-run twin. A 400 problem means the body is not valid JSON; 422 problems carry the update own invalid_translation_key, validation_failed, or unknown_field diagnostics. 401, 403, 404, and 429 problems behave as on the update operation.

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

Request body

translationsarraybody

Request body example

application/json
{
  "translations": [
    []
  ]
}
Validate language translations
curl https://web.signcustomiser.com/api/v3/customisers/1/languages/fr/translations/validate-update \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "translations": [
    []
  ]
}'
Response
{
  "data": {
    "object": "customiser_language_translations_validation",
    "operation": "update",
    "customiser_id": 42,
    "language_code": "fr",
    "valid": true
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/languages/fr/translations/validate-update",
    "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.