diff --git a/src/Umbraco.Web.BackOffice/Controllers/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web.BackOffice/Controllers/UmbracoAuthorizedApiController.cs
new file mode 100644
index 0000000000..071680b325
--- /dev/null
+++ b/src/Umbraco.Web.BackOffice/Controllers/UmbracoAuthorizedApiController.cs
@@ -0,0 +1,28 @@
+using Umbraco.Web.BackOffice.Filters;
+using Umbraco.Web.Common.Attributes;
+using Umbraco.Web.Common.Controllers;
+using Umbraco.Web.Common.Filters;
+
+namespace Umbraco.Web.BackOffice.Controllers
+{
+ ///
+ /// Provides a base class for authorized auto-routed Umbraco API controllers.
+ ///
+ ///
+ /// This controller will also append a custom header to the response if the user
+ /// is logged in using forms authentication which indicates the seconds remaining
+ /// before their timeout expires.
+ ///
+ [IsBackOffice]
+ [UmbracoUserTimeoutFilter]
+ [UmbracoAuthorize]
+ [DisableBrowserCache]
+ [UmbracoWebApiRequireHttps]
+ [CheckIfUserTicketDataIsStale]
+ [UnhandedExceptionLoggerConfiguration]
+ [EnableDetailedErrors]
+ public abstract class UmbracoAuthorizedApiController : UmbracoApiController
+ {
+
+ }
+}
diff --git a/src/Umbraco.Web.BackOffice/Filters/UmbracoWebApiRequireHttpsAttribute.cs b/src/Umbraco.Web.BackOffice/Filters/UmbracoWebApiRequireHttpsAttribute.cs
new file mode 100644
index 0000000000..7c7652c532
--- /dev/null
+++ b/src/Umbraco.Web.BackOffice/Filters/UmbracoWebApiRequireHttpsAttribute.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Net;
+using System.Net.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Web.BackOffice.Filters
+{
+ ///
+ /// If Umbraco.Core.UseHttps property in web.config is set to true, this filter will redirect any http access to https.
+ ///
+ ///
+ /// This will only redirect Head/Get requests, otherwise will respond with text
+ ///
+ /// References:
+ /// http://issues.umbraco.org/issue/U4-8542
+ /// https://blogs.msdn.microsoft.com/carlosfigueira/2012/03/09/implementing-requirehttps-with-asp-net-web-api/
+ ///
+ public class UmbracoWebApiRequireHttpsAttribute : TypeFilterAttribute
+ {
+ public UmbracoWebApiRequireHttpsAttribute() : base(typeof(UmbracoWebApiRequireHttpsFilter))
+ {
+ Arguments = Array.Empty