diff --git a/src/client/assets/redoc.html b/src/client/assets/redoc.html
new file mode 100644
index 000000000..9803464cb
--- /dev/null
+++ b/src/client/assets/redoc.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>Misskey API</title>
+		<!-- needed for adaptive design -->
+		<meta charset="utf-8"/>
+		<meta name="viewport" content="width=device-width, initial-scale=1">
+		<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
+
+		<!--
+		ReDoc doesn't change outer page styles
+		-->
+		<style>
+			body {
+				margin: 0;
+				padding: 0;
+			}
+		</style>
+	</head>
+	<body>
+		<redoc spec-url='/api.json'></redoc>
+		<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
+	</body>
+</html>
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts
index 9006dfbfa..a4b79d950 100644
--- a/src/server/api/openapi/description.ts
+++ b/src/server/api/openapi/description.ts
@@ -16,7 +16,7 @@ export function kinds() {
 					endpoints: [],
 					descs: fromEntries(
 						Object.keys(locale)
-							.map(l => [l, locale[l].common.permissions[k] as string] as [string, string])
+							.map(l => [l, locale[l]._permissions[k] as string] as [string, string])
 						) as { [x: string]: string; }
 				}] as [ string, IKindInfo ])
 			) as { [x: string]: IKindInfo; };