diff --git a/src/server/api/endpoints/clips/notes.ts b/src/server/api/endpoints/clips/notes.ts
index 3d66623d63..13983d99f7 100644
--- a/src/server/api/endpoints/clips/notes.ts
+++ b/src/server/api/endpoints/clips/notes.ts
@@ -10,7 +10,7 @@ import { ApiError } from '../../error';
 export const meta = {
 	tags: ['account', 'notes', 'clips'],
 
-	requireCredential: true as const,
+	requireCredential: false as const,
 
 	kind: 'read:account',
 
@@ -51,7 +51,7 @@ export default define(meta, async (ps, user) => {
 		throw new ApiError(meta.errors.noSuchClip);
 	}
 
-	if (!clip.isPublic && (clip.userId !== user.id)) {
+	if (!clip.isPublic && (user == null || (clip.userId !== user.id))) {
 		throw new ApiError(meta.errors.noSuchClip);
 	}
 
@@ -64,8 +64,10 @@ export default define(meta, async (ps, user) => {
 		.leftJoinAndSelect('note.user', 'user')
 		.setParameters(clipQuery.getParameters());
 
-	generateVisibilityQuery(query, user);
-	generateMutedUserQuery(query, user);
+	if (user) {
+		generateVisibilityQuery(query, user);
+		generateMutedUserQuery(query, user);
+	}
 
 	const notes = await query
 		.take(ps.limit!)
diff --git a/src/server/api/endpoints/clips/show.ts b/src/server/api/endpoints/clips/show.ts
index 1d4947528a..dc730d64a3 100644
--- a/src/server/api/endpoints/clips/show.ts
+++ b/src/server/api/endpoints/clips/show.ts
@@ -7,7 +7,7 @@ import { Clips } from '../../../../models';
 export const meta = {
 	tags: ['clips', 'account'],
 
-	requireCredential: true as const,
+	requireCredential: false as const,
 
 	kind: 'read:account',
 
@@ -36,7 +36,7 @@ export default define(meta, async (ps, me) => {
 		throw new ApiError(meta.errors.noSuchClip);
 	}
 
-	if (!clip.isPublic && (clip.userId !== me.id)) {
+	if (!clip.isPublic && (me == null || (clip.userId !== me.id))) {
 		throw new ApiError(meta.errors.noSuchClip);
 	}