localization
GET /v1/i18n/slugs
Get translated URL slugs for every locale.
Аутентификација
Пошаљите API кључ као bearer токен. Ова крајња тачка не наводи конкретну дозволу у спецификацији, па свом кључу доделите најмања неопходна овлашћења и проверите одговор уместо да претпостављате.
Ова крајња тачка не прихвата id организације. Ваш кључ већ идентификује организацију којој припада, а одговор је ограничен на њу.
Испробајте
Замените све што је у угластим заградама сопственим вредностима, а чувар места кључа кључем са своје контролне табле.
curl -X GET https://api.zinndigital.com/v1/i18n/slugs \
-H "Authorization: Bearer zdk_live_…"Пријављени сте? API конзола на вашој контролној табли попуњава ваш прави id организације и ваш сопствени кључ, и покреће захтев према живом API-ју како бисте могли да видите стварни одговор. Отворите ову крајњу тачку у 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. |
limit (query) | integer | Не | Page size, in slug ROWS (one per object_ref × locale). Sending this (or cursor) opts into paging; send neither and the response is the whole map, with a 422 when it… |
cursor (query) | string | Не | The next_cursor from the previous page, passed back verbatim. Opaque; a cursor this endpoint did not issue is a 422. Keyset over (object_ref, locale), so rows written while… |
Одговор
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
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… |
next_cursor | object | Не | Present only in paged mode (limit or cursor sent): the cursor for the next page, or null when this was the last one. |
Грешке које ова крајња тачка може вратити
401 · 403 · 422 · 429