Index: ChapterX.API/Controllers/ReadingListsController.cs
===================================================================
--- ChapterX.API/Controllers/ReadingListsController.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.API/Controllers/ReadingListsController.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -1,4 +1,5 @@
 using ChapterX.Application.ReadingList.Commands;
 using ChapterX.Application.ReadingList.Queries;
+using ChapterX.Domain.Repositories;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
@@ -13,10 +14,22 @@
     {
         private readonly IMediator _mediator;
+        private readonly IReadingListRepository _readingListRepository;
         private readonly ILogger<ReadingListsController> _logger;
 
-        public ReadingListsController(IMediator mediator, ILogger<ReadingListsController> logger)
+        public ReadingListsController(IMediator mediator, IReadingListRepository readingListRepository, ILogger<ReadingListsController> logger)
         {
             _mediator = mediator;
+            _readingListRepository = readingListRepository;
             _logger = logger;
+        }
+
+        [HttpGet("user/{userId:int}")]
+        [Authorize]
+        public async Task<ActionResult> GetByUser(int userId)
+        {
+            _logger.LogInformation("Fetching reading lists for user {UserId}", userId);
+            var lists = await _readingListRepository.GetByUserIdAsync(userId);
+            var result = lists.Select(l => MapList(l));
+            return Ok(result);
         }
 
@@ -26,7 +39,28 @@
         {
             _logger.LogInformation("Fetching all reading lists");
-            var response = await _mediator.Send(new GetAllRequest());
-            return Ok(response);
+            var lists = await _readingListRepository.GetAllAsync();
+            var result = lists.Select(l => MapList(l));
+            return Ok(result);
         }
+
+        private static object MapList(Domain.Entities.ReadingList l) => new
+        {
+            id = l.Id,
+            name = l.Name,
+            content = l.Content,
+            isPublic = l.IsPublic,
+            userId = l.UserId,
+            createdAt = l.CreatedAt,
+            username = l.User?.Username ?? "",
+            readingListItems = l.ReadingListItems.Select(i => new
+            {
+                listId = i.ListId,
+                storyId = i.StoryId,
+                addedAt = i.AddedAt,
+                storyTitle = i.Story?.ShortDescription ?? "",
+                authorUsername = i.Story?.Writer?.User?.Username ?? "",
+                genres = i.Story?.HasGenres.Select(hg => hg.Genre?.Name).Where(n => n != null).ToList() ?? []
+            }).ToList()
+        };
 
         [HttpGet("{id:int}")]
