localization
GET /v1/i18n/slugs
Get translated URL slugs for every locale.
Упълномощаване
Изпратете API ключ като носител (bearer token). Тази точка за достъп не указва конкретно разрешение в спецификацията, затова дайте на ключа си най-малкото необходимо и проверете отговора, вместо да правите предположения.
Този ендпойнт не изисква идентификатор на организация. Вашият ключ вече идентифицира организацията, към която принадлежи, и отговорът е ограничен до нея.
Опитайте
Заменете всичко в квадратни скоби със собствени стойности, а ключовия заместващ символ – с ключ от вашето табло за управление.
curl -X GET https://api.zinndigital.com/v1/i18n/slugs \
-H "Authorization: Bearer zdk_live_…"Влязохте ли в профила си? API конзолата във вашето табло за управление попълва действителното идентификационно число на вашата организация и вашия собствен ключ и изпълнява заявката спрямо реалното API, за да можете да видите действителния отговор. Отворете този крайpoint в API конзолата
Детайли
Returns the calling organization's translated public URL slugs, keyed by the canonical (source-locale) identifier then by locale — what the public frontend needs to build locale-routed URLs and `hreflang` alternates (CLAUDE.md §2.19, docs/28, docs/30). Reads the `slug` surface only. **Every emitted value is a valid URL path.** The stored translation is normalised on the way out — case-folded to lower case, inner whitespace and underscores collapsed to single hyphens, NFC — and a value that is still not a usable path after that (most often a model answer that lost one of the source's `/` separators, so it names a different route) is **omitted rather than emitted broken**. The caller then falls back to the canonical URL, which is a live, indexable page; publishing the broken form would advertise a URL the router cannot resolve. This was added by W24-B on 2026-08-20 (`docs/72` D12010) after measuring that **694 of 4,043** settled page slugs were values the public site's own validator refused — `"Über uns"`, `"Относно"` — every one `up_to_date`, every one counted complete on the admin Translation Status dashboard, and not one of them reachable by any reader in any language. **A locale's slug is emitted ONLY when its status is `up_to_date`.** This is stricter than `GET /v1/i18n/bundles/{locale}`, and deliberately so: a URL is not a string on a page, it is an identity. Publishing a slug that is still `stale`/`translating` means publishing a URL that will change again within minutes — every link, share and crawl against the interim URL then 404s or bounces through a redirect, which costs real link equity and manufactures redirect churn on exactly the pages SEO cares about. A locale whose slug is not yet settled is simply absent from the response, and the caller falls back to the canonical URL until it is.
Параметри
| Име | Тип | Задължително | Какво представлява |
|---|---|---|---|
object_ref_prefix (query) | string | Не | Only include slugs whose canonical id starts with this prefix. |
Отговор
| Име | Тип | Задължително | Какво представлява |
|---|---|---|---|
slugs | object | Да | Canonical `object_ref` -> locale -> translated slug. A locale appears only when its slug is `up_to_date`; anything less settled is omitted and the caller falls back to the canon… |
Грешки, които този крайpoint може да върне
401 · 403 · 422 · 429