Index: binary-improvements2/WebServer/src/WebAPI/APIs/Item.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/APIs/Item.cs	(revision 432)
+++ binary-improvements2/WebServer/src/WebAPI/APIs/Item.cs	(revision 432)
@@ -0,0 +1,63 @@
+﻿using JetBrains.Annotations;
+using Utf8Json;
+using Webserver.Permissions;
+
+namespace Webserver.WebAPI.APIs {
+	[UsedImplicitly]
+	internal class Item : AbsRestApi {
+		private static readonly byte[] jsonKeyName = JsonWriter.GetEncodedPropertyNameWithBeginObject ("name");
+		private static readonly byte[] jsonKeyLocalizedName = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("localizedName");
+		private static readonly byte[] jsonKeyIsBlock = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("isBlock");
+
+		private readonly byte[] allItemsSerialized;
+
+		public Item (Web _parent) {
+			JsonWriter writer = new JsonWriter ();
+			
+			writer.WriteBeginArray ();
+
+			int written = 0;
+			for (int i = 0; i < ItemClass.list.Length; i++) {
+				ItemClass item = ItemClass.list [i];
+				if (item == null) {
+					continue;
+				}
+				
+				if (written > 0) {
+					writer.WriteValueSeparator ();
+				}
+
+				written++;
+
+				string name = item.Name;
+				string localizedName = item.GetLocalizedItemName ();
+				bool isBlock = item.IsBlock ();
+				
+				writer.WriteRaw (jsonKeyName);
+				writer.WriteString (name);
+
+				writer.WriteRaw (jsonKeyLocalizedName);
+				writer.WriteString (localizedName);
+
+				writer.WriteRaw (jsonKeyIsBlock);
+				writer.WriteBoolean (isBlock);
+				
+				writer.WriteEndObject ();
+			}
+
+			writer.WriteEndArray ();
+
+			allItemsSerialized = writer.ToUtf8ByteArray ();
+		}
+
+		protected override void HandleRestGet (RequestContext _context) {
+			PrepareEnvelopedResult (out JsonWriter writer);
+			writer.WriteRaw (allItemsSerialized);
+			SendEnvelopedResult (_context, ref writer);
+		}
+
+		public override int DefaultPermissionLevel () {
+			return AdminWebModules.PermissionLevelGuest;
+		}
+	}
+}
Index: binary-improvements2/WebServer/src/WebAPI/APIs/Mods.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/APIs/Mods.cs	(revision 426)
+++ binary-improvements2/WebServer/src/WebAPI/APIs/Mods.cs	(revision 432)
@@ -56,12 +56,4 @@
 		}
 
-		protected override void HandleRestGet (RequestContext _context) {
-			PrepareEnvelopedResult (out JsonWriter writer);
-			writer.WriteRaw (loadedWebMods);
-			SendEnvelopedResult (_context, ref writer);
-		}
-
-		public override int DefaultPermissionLevel () => AdminWebModules.PermissionLevelGuest;
-
 		private void writeModJson (ref JsonWriter _writer, WebMod _webMod) {
 			_writer.WritePropertyName ("name");
@@ -88,4 +80,12 @@
 			JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.Website);
 		}
+
+		protected override void HandleRestGet (RequestContext _context) {
+			PrepareEnvelopedResult (out JsonWriter writer);
+			writer.WriteRaw (loadedWebMods);
+			SendEnvelopedResult (_context, ref writer);
+		}
+
+		public override int DefaultPermissionLevel () => AdminWebModules.PermissionLevelGuest;
 	}
 }
