diff --git a/src/server/api/endpoints/users/groups/show.ts b/src/server/api/endpoints/users/groups/show.ts
index 5f2c839881..4f8374a222 100644
--- a/src/server/api/endpoints/users/groups/show.ts
+++ b/src/server/api/endpoints/users/groups/show.ts
@@ -2,7 +2,7 @@ import $ from 'cafy';
 import { ID } from '../../../../../misc/cafy-id';
 import define from '../../../define';
 import { ApiError } from '../../../error';
-import { UserGroups } from '../../../../../models';
+import { UserGroups, UserGroupJoinings } from '../../../../../models';
 import { types, bool } from '../../../../../misc/schema';
 
 export const meta = {
@@ -42,12 +42,20 @@ export default define(meta, async (ps, me) => {
 	// Fetch the group
 	const userGroup = await UserGroups.findOne({
 		id: ps.groupId,
-		userId: me.id,
 	});
 
 	if (userGroup == null) {
 		throw new ApiError(meta.errors.noSuchGroup);
 	}
 
+	const joining = await UserGroupJoinings.findOne({
+		userId: me.id,
+		userGroupId: userGroup.id
+	});
+
+	if (joining == null && userGroup.userId !== me.id) {
+		throw new ApiError(meta.errors.noSuchGroup);
+	}
+
 	return await UserGroups.pack(userGroup);
 });