Index: binary-improvements2/WebServer/src/WebAPI/AbsRestApi.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/AbsRestApi.cs	(revision 409)
+++ binary-improvements2/WebServer/src/WebAPI/AbsRestApi.cs	(revision 410)
@@ -8,4 +8,10 @@
 	public abstract class AbsRestApi : AbsWebAPI {
 		private static readonly UnityEngine.Profiling.CustomSampler jsonDeserializeSampler = UnityEngine.Profiling.CustomSampler.Create ("JSON_Deserialize");
+
+		protected AbsRestApi (string _name = null) : this(null, _name) {
+		}
+
+		protected AbsRestApi (Web _parentWeb, string _name = null) : base(_parentWeb, _name) {
+		}
 
 		public sealed override void HandleRequest (RequestContext _context) {
Index: binary-improvements2/WebServer/src/WebAPI/AbsWebAPI.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/AbsWebAPI.cs	(revision 409)
+++ binary-improvements2/WebServer/src/WebAPI/AbsWebAPI.cs	(revision 410)
@@ -2,14 +2,17 @@
 	public abstract class AbsWebAPI {
 		public readonly string Name;
+		protected readonly Web ParentWeb;
 
-		protected AbsWebAPI (string _name = null) {
+		protected AbsWebAPI (string _name = null) : this(null, _name) {
+		}
+
+		protected AbsWebAPI (Web _parentWeb, string _name = null) {
 			Name = _name ?? GetType ().Name;
+			ParentWeb = _parentWeb;
 		}
 
 		public abstract void HandleRequest (RequestContext _context);
 
-		public virtual int DefaultPermissionLevel () {
-			return 0;
-		}
+		public virtual int DefaultPermissionLevel () => 0;
 	}
 }
