diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index 71f21fdf47..ba366cdeb8 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -3,6 +3,7 @@ import $ from 'cafy';
 import define from '../../define';
 import { Apps } from '../../../../models';
 import { genId } from '../../../../misc/gen-id';
+import { unique } from '../../../../prelude/array';
 
 export const meta = {
 	tags: ['app'],
@@ -34,6 +35,9 @@ export default define(meta, async (ps, user) => {
 	// Generate secret
 	const secret = rndstr('a-zA-Z0-9', 32);
 
+	// for backward compatibility
+	const permission = unique(ps.permission.map(v => v.replace(/^(.+)(\/|-)(read|write)$/, '$3:$1')));
+
 	// Create account
 	const app = await Apps.save({
 		id: genId(),
@@ -41,7 +45,7 @@ export default define(meta, async (ps, user) => {
 		userId: user ? user.id : null,
 		name: ps.name,
 		description: ps.description,
-		permission: ps.permission,
+		permission,
 		callbackUrl: ps.callbackUrl,
 		secret: secret
 	});