diff --git a/src/endpoints.ts b/src/endpoints.ts
index dfc4a0d0058f9741afce79a6452e62f9240629a4..b1df2c5298a30ed5500a49e64cae1a82a7df06ad 100644
--- a/src/endpoints.ts
+++ b/src/endpoints.ts
@@ -364,13 +364,13 @@ export type Endpoints = {
 	'users/groups/show': { req: TODO; res: TODO; };
 	'users/groups/transfer': { req: TODO; res: TODO; };
 	'users/groups/update': { req: TODO; res: TODO; };
-	'users/lists/create': { req: TODO; res: TODO; };
-	'users/lists/delete': { req: { listId: UserList['id'] }; res: null; };
-	'users/lists/list': { req: TODO; res: TODO; };
-	'users/lists/pull': { req: TODO; res: TODO; };
-	'users/lists/push': { req: TODO; res: TODO; };
-	'users/lists/show': { req: TODO; res: TODO; };
-	'users/lists/update': { req: TODO; res: TODO; };
+	'users/lists/create': { req: { name: string; }; res: UserList; };
+	'users/lists/delete': { req: { listId: UserList['id']; }; res: null; };
+	'users/lists/list': { req: null; res: UserList[]; };
+	'users/lists/pull': { req: { listId: UserList['id']; userId: User['id']; }; res: null; };
+	'users/lists/push': { req: { listId: UserList['id']; userId: User['id']; }; res: null; };
+	'users/lists/show': { req: { listId: UserList['id']; }; res: UserList; };
+	'users/lists/update': { req: { listId: UserList['id']; name: string; }; res: UserList; };
 	'users/notes': { req: TODO; res: TODO; };
 	'users/pages': { req: TODO; res: TODO; };
 	'users/recommendation': { req: TODO; res: TODO; };
diff --git a/src/entities.ts b/src/entities.ts
index a4fe7afae0664b0aa2744b82354810db2c7c837a..9c4b9250c9bcee72b58e52f57d2230b6873e5c77 100644
--- a/src/entities.ts
+++ b/src/entities.ts
@@ -19,7 +19,12 @@ export type User = {
 
 export type UserGroup = TODO;
 
-export type UserList = TODO;
+export type UserList = {
+	id: ID;
+	createdAt: DateString;
+	name: string;
+	userIds: User['id'][];
+};
 
 export type MeDetailed = User & {
 	avatarId: DriveFile['id'];