---
title: API replacement map
slug: cms-13/docs/api-replacement-map
docTags: 
createdAt: 2026-07-30T20:22:06.928Z
---

This article provides a quick-reference map of API replacements when upgrading from CMS 12 to CMS 13. Use it alongside the detailed [breaking changes articles](docId\:byC7COq00R-mLmWVV9_eE) to locate the CMS 13 equivalent for each deprecated or removed API.

## Type replacements

| CMS 12                            | CMS 13                                 | Notes                                                             |
| --------------------------------- | -------------------------------------- | ----------------------------------------------------------------- |
| `PageReference`                   | `ContentReference`                     | Throughout all usages                                             |
| `BlockTypeRepository`             | `IContentTypeRepository`               | Non-generic                                                       |
| `PageTypeRepository`              | `IContentTypeRepository`               | Non-generic                                                       |
| `IContentTypeRepository<T>`       | `IContentTypeRepository`               | Non-generic                                                       |
| `ContentCoreData`                 | `ContentNode`                          | Direct replacement                                                |
| `IContentCoreDataLoader`          | `IContentNodeLoader`                   | Direct replacement                                                |
| `IContentGroup`                   | `IPersonalizedGroup`                   | Direct replacement                                                |
| `ISecuredFragmentMarkupGenerator` | `IPersonalizedFragmentMarkupGenerator` | Direct replacement                                                |
| `IRoleSecurityDescriptor`         | `IEnumerable<string>`                  | For role identities                                               |
| `DynamicProperty`                 | (removed)                              | Feature removed entirely                                          |
| `PlugInAttribute`                 | (removed)                              | Plugin system removed                                             |
| `ScheduledPlugInAttribute`        | `ScheduledJobAttribute`                | From `EPiServer.Scheduler`                                        |
| `DojoWidgetAttribute`             | `CriterionPropertyEditor`              | Visitor group criteria                                            |
| `ISiteDefinitionResolver`         | `IApplicationResolver`                 | Application model                                                 |
| `ISiteDefinitionRepository`       | `IApplicationRepository`               | Application model                                                 |
| `SiteDefinition`                  | `Application`                          | Type name only. `SiteDefinition.Current` requires DI refactoring. |
| `VirtualPathResolver`             | `VirtualPathUtilityEx`                 | Public static class; same namespace `EPiServer.Web`               |

## Method and property replacements

| CMS 12                                  | CMS 13                                            | Notes                                                                              |
| --------------------------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `ContentArea.FilteredItems`             | `ContentArea.Items`                               | Or use `IContentAreaItemsRenderingFilter`                                          |
| `IContentAreaLoader.Get()`              | `IContentAreaLoader.LoadContent()`                | Direct replacement                                                                 |
| `XhtmlString.ToHtmlString(IPrincipal)`  | `XhtmlString.ToHtmlString()`                      | Parameter removed                                                                  |
| `PropertyString.PublicString`           | `PropertyString.String`                           | Now public                                                                         |
| `PropertyLongString.PublicLongString`   | `PropertyLongString.LongString`                   | Now public                                                                         |
| `PropertyUrl.String`                    | `PropertyUrl.LongString`                          | Base class changed                                                                 |
| `PropertyDefinition.Searchable`         | `PropertyDefinition.IndexingType`                 | Direct replacement                                                                 |
| `PropertyData.Clear()` (override)       | `PropertyData.ClearImplementation()`              | Direct replacement                                                                 |
| `PrincipalInfo.HasEditAccess()`         | `user.IsInRole(Roles.CmsEditors)`                 | Direct replacement                                                                 |
| `PrincipalInfo.IsPermitted()`           | `PermissionService.IsPermitted()`                 | Direct replacement                                                                 |
| `SoftLink.LinkStatus`                   | `SoftLink.HttpStatusCode`                         | Direct replacement                                                                 |
| `SaveAction.None`                       | `SaveAction.Default`                              | Direct replacement                                                                 |
| `SaveAction.DelayedPublish`             | `SaveAction.Schedule`                             | Direct replacement                                                                 |
| `RenderSettings.CustomTag`              | `RenderSettings.CustomTagName`                    | Direct replacement                                                                 |
| `RenderSettings.ChildrenCustomTag`      | `RenderSettings.ChildrenCustomTagName`            | Direct replacement                                                                 |
| `VirtualPathResolver.Instance.Method()` | `VirtualPathUtilityEx.Method()`                   | Static class, no `.Instance`                                                       |
| `SiteDefinition.Current.StartPage`      | `IApplicationResolver.GetByContext()?.EntryPoint` | Inject `IApplicationResolver` and call `GetByContext()` for `IRoutableApplication` |
| `SiteDefinition.Current.RootPage`       | `ContentReference.RootPage`                       | Direct replacement                                                                 |
| `UIPathResolver.Instance`               | Inject `UIPathResolver`                           | Use service container                                                              |
| `ConstructorParameterResolver.Instance` | Inject from service container                     | Use service container                                                              |
| `PropertyData.Locate`                   | Inject services via constructor                   |                                                                                    |
| `Html.CreatePlatformNavigationMenu()`   | `<platform-navigation />`                         | Tag helper                                                                         |

## Event replacements

| CMS 12                                    | CMS 13                                     |
| ----------------------------------------- | ------------------------------------------ |
| `IContentRouteEvents.CreatingVirtualPath` | `IContentUrlGeneratorEvents.GeneratingUrl` |
| `IContentRouteEvents.CreatedVirtualPath`  | `IContentUrlGeneratorEvents.GeneratedUrl`  |
| `IContentRouteEvents.RoutingContent`      | `IContentUrlResolverEvents.ResolvingUrl`   |
| `IContentRouteEvents.RoutedContent`       | `IContentUrlResolverEvents.ResolvedUrl`    |

## Namespace migrations

| CMS 12 Namespace                           | CMS 13 Namespace                | Affected Methods                                                                                                                                                                                                                                   |
| ------------------------------------------ | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Microsoft.Extensions.DependencyInjection` | `EPiServer.DependencyInjection` | `AddCmsCore()`, `AddCmsData()`, `AddCmsFramework()`, `AddTinyMce()`, `AddAdmin()`, `AddCmsUI()`, `AddCmsShell()`, `AddCmsShellUI()`, `AddCmsBlobs()`, `AddCmsCache()`, `AddCmsGeolocation()`, `AddCmsChangeNotification()`, `AddCmsLinkAnalyzer()` |

## Extracted packages

The following packages require an explicit `PackageReference` in CMS 13. They were transitive dependencies in CMS 12.

| Namespace in Code                     | Required Package                      | Notes                                                                                                       |
| ------------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `EPiServer.Cms.UI.AspNetIdentity`     | `EPiServer.CMS.UI.AspNetIdentity`     | Was transitive in CMS 12                                                                                    |
| `EPiServer.Cms.UI.VisitorGroups`      | `EPiServer.CMS.UI.VisitorGroups`      | No longer included by `EPiServer.Cms` metapackage. Call `AddVisitorGroupsMvc()` and `AddVisitorGroupsUI()`. |
| `EPiServer.Personalization`           | `EPiServer.Geolocation`               | Call `AddCmsGeolocation()`                                                                                  |
| `EPiServer.Events.ChangeNotification` | `EPiServer.Events.ChangeNotification` | Call `AddCmsChangeNotification()`                                                                           |
| `EPiServer.Framework.Blobs`           | `EPiServer.Blobs`                     | Call `AddCmsBlobs()`                                                                                        |
| `EPiServer.Framework.Cache`           | `EPiServer.Cache`                     | Call `AddCmsCache()`                                                                                        |

## Removed APIs

The following APIs are removed in CMS 13 with no direct replacement.

| CMS 12                                             | Notes                                                                                                                                             |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `EPiServer.Shell.Telemetry` and `TelemetryOptions` | Entirely removed in CMS 13                                                                                                                        |
| `SearchProvidersManager`                           | Made internal                                                                                                                                     |
| `SiteDefinition.Current.StartPage`                 | Static singleton removed. Inject `IApplicationResolver` via constructor, call `GetByContext()` for `IRoutableApplication`, and use `.EntryPoint`. |
