hosting
PATCH /v1/sites/{site_id}/translation
Choose which languages this site serves to visitors.
Autenticación
Envía una clave de API como token de portador. La clave debe tener el permiso sites.manage; una clave que no lo tenga se rechazará con un código 403, no 404.
Este endpoint no requiere ningún id de organización. Su clave ya identifica la organización a la que pertenece, y la respuesta está delimitada a ella.
Pruébalo
Reemplaza cualquier elemento entre corchetes angulares por tus propios valores, y el marcador de posición key con una clave de tu panel de control.
curl -X PATCH https://api.zinndigital.com/v1/sites/{site_id}/translation \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "served_locales": <LocaleCode[]> }'¿Has iniciado sesión? La consola de la API en tu panel de control rellena el ID de tu organización real y tu propia clave, y ejecuta la solicitud contra la API en vivo para que puedas ver la respuesta real. Abre este endpoint en la consola de la API
Detalles
Sets `served_locales` — the languages whose URLs the site publishes. **This does not buy or spend anything.** Every language is translated already: the tier includes all of them and the words were paid for at extraction, so switching one on is instant and switching one off costs nothing and destroys nothing. It is a publishing decision, not a purchase, which is why it needs `sites.manage` and not a billing scope. ⛔ An empty list means the site serves **no** translated URLs — it does not mean "all". Publishing 57 new indexed URL trees on someone's domain because a field was empty is an SEO event they did not ask for and cannot easily undo. A locale that is not in the platform's registry is a `422` naming it, never a silent drop: a typo that vanishes is how a customer waits a week for a language they believe they enabled. Requires `sites.manage`.
Parámetros
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
site_id (path) | Uuid | Sí | — |
Cuerpo de la solicitud
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
served_locales | LocaleCode[] | Sí | The languages this site publishes. An empty list means none — never "all". |
Respuesta
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
site_id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
state | string<disabled, active, paused_standing, over_allowance> | Sí | ⛔ `paused_standing` is its own state, not a flavour of `disabled` — the remedies differ and only one of them is the customer's to act on. |
tier | SiteTranslationTier | Sí | — |
available_tiers | SiteTranslationTier[] | Sí | The ladder, so the screen never hardcodes a price. |
word_count | integer | Sí | Translatable words measured at the last read. |
document_count | integer | Sí | — |
last_extracted_at | string | No | When we last successfully read the site. ⛔ Distinct from the attempt cursor the sweep keeps: a failed pass advances that and must not move this, or the screen would report a sit… |
last_error | string | No | Why the last pass did nothing, in words the customer can act on. |
locales | SiteTranslationLocale[] | Sí | — |
Errores que este endpoint puede devolver
401 · 403 · 404 · 422