diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs
index 38200615365e0890f550c14f98992407d486fb8c..1c15566862d246c184c30bbc6e51721e90254956 100644
--- a/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs
+++ b/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs
@@ -36,20 +36,6 @@ namespace Tsi1.Api.Controllers
             return Ok(result.Data);
         }
 
-        //[Authorize(Roles = UserTypes.Professor)]
-        //[HttpPost("Create")]
-        //public async Task<IActionResult> Create(ForumCreateDto newForum)
-        //{
-        //    var result = await _forumService.Create(newForum);
-
-        //    if (result.HasError)
-        //    {
-        //        return BadRequest(result.Message);
-        //    }
-
-        //    return Ok(result.Data);
-        //}
-
         [Authorize(Roles = UserTypes.Professor)]
         [HttpPut("{id}")]
         public async Task<IActionResult> Modify(int id, ForumModifyDto forum)
@@ -99,5 +85,19 @@ namespace Tsi1.Api.Controllers
             return Ok();
         }
 
+        [Authorize(Roles = UserTypes.Professor + ", " + UserTypes.Student + ", " + UserTypes.FacultyAdmin)]
+        [HttpGet("GetById/{forumId}")]
+        public async Task<IActionResult> GetById(int forumId)
+        {
+            var result = await _forumService.GetById(forumId);
+
+            if (result.HasError)
+            {
+                return BadRequest(result.Message);
+            }
+
+            return Ok(result.Data);
+        }
+
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs
index 3c581da3db87ab3e8899467d5b9d2332f3b4b7f7..3fad38a21a0b3176162448e4c16424da66f1b345 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs
@@ -16,5 +16,6 @@ namespace Tsi1.BusinessLayer.Interfaces
         Task<ServiceResult<Forum>> Delete(int forumId);
         Task<ServiceResult<List<string>>> GetSubscribedUsers(int forumId);
         Task<ServiceResult<List<bool>>> Subscribe(int forumId, int userId);
+        Task<ServiceResult<ForumPreviewDto>> GetById(int forumId);
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs
index 70eae1917c7c48c32dac30bb52003071c4c1c46d..7d8be8f56d7833a393e6f84cdf541c45d72289e9 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs
@@ -190,5 +190,23 @@ namespace Tsi1.BusinessLayer.Services
 
             return result;
         }
+
+        public async Task<ServiceResult<ForumPreviewDto>> GetById(int forumId)
+        {
+            var result = new ServiceResult<ForumPreviewDto>();
+
+            var forum = await _context.Forums.AsNoTracking().FirstOrDefaultAsync(x => x.Id == forumId);
+
+            if (forum == null)
+            {
+                result.HasError = true;
+                result.Message = string.Format(ErrorMessages.ForumDoesNotExist, forumId);
+                return result;
+            }
+
+            result.Data = _mapper.Map<ForumPreviewDto>(forum);
+
+            return result;
+        }
     }
 }