Localization with the CMS API
Webflow localization provides an end-to-end solution for adapting your site for a global audience. The API gives you programmatic control over localizing both dynamic CMS Content and Static Page Content.
- CMS content localization enables you to create variants of a single CMS item for each locale.
- Static content localization uses the Pages API to update DOM elements and localize SEO metadata. Learn more about localizing pages →.
This guide covers the core concepts of CMS localization.
Key concepts
Understanding a few key concepts is essential for working with localization via the API. At its core, a single CMS item becomes a group of item variants when you add locales.
When you create an item in multiple locales, all variants are linked by a shared itemId
, which represents the entire item group.
The cmsLocaleId
is a unique locale identifier when working with CMS resources. Always include it when creating, updating, and retrieving localized CMS items.
Getting locale identifiers
To get the localeId
and cmsLocaleId
for your site’s configured locales, use the Get Site endpoint. The response will include a locales
object containing the primary locale and any secondary locales. Before using these endpoints, you must first enable localization in the Site settings within the Designer.
Managing localized content
You can create and update localized CMS items via the API, as well as independently publish items in each locale.
Creating localized items
Creating a new localized item is a two-step process:
-
Create items across all locales
Call the
Create Items
endpoint with an array ofcmsLocaleIds
for every locale you want to target. Provide a singlefieldData
object containing the content for the primary locale. The API creates a unique item variant for each specified locale, all linked by a shareditemId
and populated with the initial content. -
Update each variant with translated content
After creating the locale-specific variants, make a request to the
Update Item
endpoint. In the request, pass the shareditemId
, the specificcmsLocaleId
for the variants you are updating, and its unique, translatedfieldData
.
Adding secondary locales to existing items is not supported via the API
For any Collection items that already exist, you must add the desired secondary locales in the CMS panel within the Designer. You can’t add a new locale to an existing item via the API.
Retrieving localized items
To get localized items, use the List Items endpoint and pass the desired cmsLocaleId
as a query parameter. If you omit the cmsLocaleId
, the API will return items from the primary locale.
Locale-specific publishing
Each locale maintains its own independent publishing state. This means you can have a version of an item live in your primary locale while the version for a secondary locale is still in a draft state. Publishing changes in one locale doesn’t affect the status of that item in any other locale. See the publishing guide for more details →.
Next steps
To ensure your site is completely localized, follow the guides for localizing pages and components.