diff --git a/src/InternshipSystem.Api/Controllers/AccessController.cs b/src/InternshipSystem.Api/Controllers/AccessController.cs
index 22e10bd..dafd2a7 100644
--- a/src/InternshipSystem.Api/Controllers/AccessController.cs
+++ b/src/InternshipSystem.Api/Controllers/AccessController.cs
@@ -1,12 +1,9 @@
 using System;
-using System.IO;
 using System.Linq;
 using System.Security.Claims;
 using System.Threading;
 using System.Threading.Tasks;
-using FluentValidation;
 using InternshipSystem.Api.Options;
-using InternshipSystem.Api.Queries;
 using InternshipSystem.Api.Security;
 using InternshipSystem.Core;
 using InternshipSystem.Repository;
@@ -14,7 +11,6 @@ using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.Extensions.Options;
-using Serilog;
 
 namespace InternshipSystem.Api.Controllers
 {
@@ -40,8 +36,8 @@ namespace InternshipSystem.Api.Controllers
         }
         
 
-        [HttpGet("login")]
-        public async Task<ActionResult> Authenticate(string code, CancellationToken cancellationToken)
+        [HttpPost("login")]
+        public async Task<ActionResult> Authenticate([FromBody] string code, CancellationToken cancellationToken)
         {
             var token =  await _loginClient.GetCasTokenAsync(code, cancellationToken);
 
@@ -84,7 +80,7 @@ namespace InternshipSystem.Api.Controllers
             return Ok(_tokenService.generateToken(identity));
         }
 
-        [HttpGet("loginEdition")]
+        [HttpPost("loginEdition")]
         [Authorize]
         public async Task<ActionResult> LoginIntoEdition([FromBody] Guid editionId, [FromServices] User user, CancellationToken token)
         {
diff --git a/src/InternshipSystem.Api/Controllers/CompaniesController.cs b/src/InternshipSystem.Api/Controllers/CompaniesController.cs
index 9502fac..2d21d60 100644
--- a/src/InternshipSystem.Api/Controllers/CompaniesController.cs
+++ b/src/InternshipSystem.Api/Controllers/CompaniesController.cs
@@ -73,11 +73,13 @@ namespace InternshipSystem.Api.Controllers
         /// <param name="companyForm"></param>
         /// <response code="200">Successfully updated company</response>
         /// <response code="400">Company form was malformed</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         /// <response code="404">Company not found</response>
         /// <returns></returns>
         [HttpPut]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult> UpdateCompany([FromBody] CompanyForm companyForm, CancellationToken cancellationToken)
@@ -124,11 +126,13 @@ namespace InternshipSystem.Api.Controllers
         /// <param name="companyId"></param>
         /// <response code="200">Successfully deleted company</response>
         /// <response code="400">Company id is empty</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         /// <response code="404">Company not found</response>
         /// <returns></returns>
         [HttpDelete("{companyId}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult> DeleteCompany(long companyId, CancellationToken cancellationToken)
@@ -154,12 +158,14 @@ namespace InternshipSystem.Api.Controllers
         /// <param name="branchOfficeForm"></param>
         /// <param name="companyId"></param>
         /// <response code="200">Successfully updated company branch office</response>
-        /// <response code="400">Branch office was malformed/response>
+        /// <response code="400">Branch office was malformed</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         /// <response code="404">Company or branch office not found</response>
         /// <returns></returns>
         [HttpPut("branchOffice/{companyId}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult> UpdateBranch([FromBody] BranchOfficeForm branchOfficeForm, long companyId, CancellationToken cancellationToken) 
@@ -222,11 +228,12 @@ namespace InternshipSystem.Api.Controllers
         /// <param name="branchOfficeId"></param>
         /// <response code="200">Successfully deleted company branch office</response>
         /// <response code="400">Branch office id is empty</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         /// <response code="404">Company or branch office not found</response>
-        /// <returns></returns>
         [HttpDelete("branchOffice/{branchOfficeId}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult> DeleteBranch(long branchOfficeId, CancellationToken cancellationToken)
diff --git a/src/InternshipSystem.Api/Controllers/DocumentsController.cs b/src/InternshipSystem.Api/Controllers/DocumentsController.cs
index b21af33..c88113b 100644
--- a/src/InternshipSystem.Api/Controllers/DocumentsController.cs
+++ b/src/InternshipSystem.Api/Controllers/DocumentsController.cs
@@ -24,7 +24,6 @@ namespace InternshipSystem.Api.Controllers
         /// Fill out required document, 
         /// </summary>
         /// <param name="documentRequest">Documents Scan and description, and Id of filled document</param>
-        /// <returns></returns>
         /// <response code="200">If change was successfully registered</response>
         /// <response code="400">If the provided query was malformed</response>
         /// <response code="404">Id doesn't match any required document</response>
diff --git a/src/InternshipSystem.Api/Controllers/InternshipRegistrationController.cs b/src/InternshipSystem.Api/Controllers/InternshipRegistrationController.cs
index 89a14b0..d2a98e9 100644
--- a/src/InternshipSystem.Api/Controllers/InternshipRegistrationController.cs
+++ b/src/InternshipSystem.Api/Controllers/InternshipRegistrationController.cs
@@ -83,7 +83,12 @@ namespace InternshipSystem.Api.Controllers
             }
 
         }
-
+        
+        /// <summary>
+        /// Get internship for current edition
+        /// </summary>
+        /// <response code="200">If current internship returned successfully</response>
+        /// <response code="401">This action is only available for authorized student registered for current edition</response>
         [HttpGet]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
diff --git a/src/InternshipSystem.Api/Controllers/InternshipTypesController.cs b/src/InternshipSystem.Api/Controllers/InternshipTypesController.cs
index de96fb6..f6f01ae 100644
--- a/src/InternshipSystem.Api/Controllers/InternshipTypesController.cs
+++ b/src/InternshipSystem.Api/Controllers/InternshipTypesController.cs
@@ -25,10 +25,10 @@ namespace InternshipSystem.Api.Controllers
         }
         
         /// <summary>
-        /// Get static page
+        /// Get internship types available for current edition
         /// </summary>
-        /// <returns>List of internship types for edition</returns>
-        [HttpGet("forCurrentEdition")]
+        /// <returns>List of internship types for current edition</returns>
+        [HttpGet("current")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
@@ -49,6 +49,13 @@ namespace InternshipSystem.Api.Controllers
             return Ok(edition.AvailableInternshipTypes.Select(e => e.InternshipType));
         }
 
+        /// <summary>
+        /// Get internship type by id
+        /// </summary>
+        /// <returns>Internship type</returns>
+        /// <response code="200">Internship type returned successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Internship type not found</response>
         [HttpGet("{internshipTypeId}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status401Unauthorized)]
@@ -59,12 +66,17 @@ namespace InternshipSystem.Api.Controllers
             return await Context.InternshipTypes.FindAsync(internshipTypeId);
         }
         
+        /// <summary>
+        /// Get internship type list
+        /// </summary>
+        /// <returns>Internship type</returns>
+        /// <response code="200">Internship type list returned successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         [HttpGet]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
-        public async Task<ActionResult<IEnumerable<InternshipType>>> SearchInternshipTypes([FromBody] InternshipTypeSearchQuery searchQuery, CancellationToken cancellationToken)
+        public async Task<ActionResult<IEnumerable<InternshipType>>> SearchInternshipTypes([FromQuery] InternshipTypeSearchQuery searchQuery, CancellationToken cancellationToken)
         {
             return await Context.InternshipTypes
                 .Where(t => string.IsNullOrEmpty(searchQuery.Type) || t.Type.Contains(searchQuery.Type))
@@ -74,6 +86,13 @@ namespace InternshipSystem.Api.Controllers
                 .ToListAsync(cancellationToken);
         }
 
+        /// <summary>
+        /// Add or update internship type
+        /// </summary>
+        /// <response code="200">Internship type updated successfully</response>
+        /// <response code="400">Invalid internship type form</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Internship type with selected id do not exist</response>
         [HttpPut]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
@@ -119,9 +138,14 @@ namespace InternshipSystem.Api.Controllers
             return Ok($"Internship type updated successfully");
         }
 
+        /// <summary>
+        /// Add or update internship type
+        /// </summary>
+        /// <response code="200">Internship type deleted successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Internship type with selected id do not exist</response>
         [HttpDelete("{internshipTypeId}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
         [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
diff --git a/src/InternshipSystem.Api/Controllers/StaticPagesController.cs b/src/InternshipSystem.Api/Controllers/StaticPagesController.cs
index 6eecde2..e9b602f 100644
--- a/src/InternshipSystem.Api/Controllers/StaticPagesController.cs
+++ b/src/InternshipSystem.Api/Controllers/StaticPagesController.cs
@@ -21,11 +21,12 @@ namespace InternshipSystem.Api.Controllers
             Context = context;
         }
         private InternshipDbContext Context { get; }
-        
+
         /// <summary>
         /// Get all static pages
         /// </summary>
         /// <returns>List of static pages with titles and content</returns>
+        /// <response code="200">Static pages list returned successfully</response>
         [HttpGet]
         [ProducesResponseType(StatusCodes.Status200OK)]
         public async Task<ActionResult<IList<StaticPage>>> GetStaticPages(CancellationToken cancellationToken) =>
@@ -37,6 +38,8 @@ namespace InternshipSystem.Api.Controllers
         /// </summary>
         /// <param name="accessName">Name of page</param>
         /// <returns>Static page title and content</returns>
+        /// <response code="200">Static page returned successfully</response>
+        /// <response code="404">Static page with given access name do not exist</response>
         [HttpGet("{accessName}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
@@ -55,6 +58,13 @@ namespace InternshipSystem.Api.Controllers
             return Ok(page);
         }
 
+        /// <summary>
+        /// Add or update static page
+        /// </summary>
+        /// <response code="200">Static page updated successfully</response>
+        /// <response code="400">Static page form is not valid</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Static page with given id do not exist</response>
         [HttpPut]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
@@ -122,8 +132,13 @@ namespace InternshipSystem.Api.Controllers
             
             return Ok($"Static page updated successfully");
         }
-
-
+        
+        /// <summary>
+        /// Delete static page
+        /// </summary>
+        /// <response code="200">Static page deleted successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Static page with given access name do not exist</response>
         [HttpDelete("{accessName}")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
diff --git a/src/InternshipSystem.Api/Controllers/StudentsController.cs b/src/InternshipSystem.Api/Controllers/StudentsController.cs
index a125f84..5897dbb 100644
--- a/src/InternshipSystem.Api/Controllers/StudentsController.cs
+++ b/src/InternshipSystem.Api/Controllers/StudentsController.cs
@@ -7,6 +7,7 @@ using InternshipSystem.Api.Security;
 using InternshipSystem.Core;
 using InternshipSystem.Repository;
 using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.EntityFrameworkCore;
 
@@ -23,14 +24,29 @@ namespace InternshipSystem.Api.Controllers
             _context = context;
         }
 
+        /// <summary>
+        /// Get current student personal data
+        /// </summary>
+        /// <returns>Current student data</returns>
+        /// <response code="200">Current student data returned successfully</response>
+        /// <response code="401">his action is only available for authorized student</response>
         [HttpGet("current")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [Authorize]
         public async Task<ActionResult<Student>> GetCurrentStudentData([FromServices] User user, CancellationToken cancellationToken)
         {
             return await _context.Students.FindAsync(user.PersonNumber);
         }
-        
+
+        /// <summary>
+        /// Update current student personal data
+        /// </summary>
+        /// <response code="200">Current student data updated successfully</response>
+        /// <response code="401">his action is only available for authorized student</response>
         [HttpPut("current")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [Authorize]
         public async Task<ActionResult> UpdateCurrentStudentData([FromBody] CurrentStudentForm studentNewData, [FromServices] User user, CancellationToken cancellationToken)
         {
@@ -47,15 +63,33 @@ namespace InternshipSystem.Api.Controllers
             
             return Ok($"Student updated successfully");
         }
-
+        
+        /// <summary>
+        /// Get student personal data
+        /// </summary>
+        /// <returns>Student personal data</returns>
+        /// <response code="200">Student data returned successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Student with given id do not exist</response>
         [HttpGet("{studentPersonNumber}")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult<Student>> GetStudentByPersonNumber(long studentPersonNumber, CancellationToken cancellationToken) => 
             await _context.Students.FindAsync(studentPersonNumber);
 
+        /// <summary>
+        /// Search students personal data
+        /// </summary>
+        /// <returns>List of students personal data</returns>
+        /// <response code="200">List of student data</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
         [HttpGet]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
         [Authorize]
-        public async Task<ActionResult<IReadOnlyCollection<Student>>> GetStudents([FromBody] StudentSearchQuery searchQuery, CancellationToken cancellationToken) =>
+        public async Task<ActionResult<IReadOnlyCollection<Student>>> GetStudents([FromQuery] StudentSearchQuery searchQuery, CancellationToken cancellationToken) =>
             await _context.Students
                 .Where(s => !searchQuery.AlbumNumber.HasValue || s.AlbumNumber.Equals(searchQuery.AlbumNumber))
                 .Where(s => string.IsNullOrEmpty(searchQuery.FirstName) || s.FirstName.ToLower().Contains(searchQuery.FirstName.ToLower()))
@@ -64,8 +98,18 @@ namespace InternshipSystem.Api.Controllers
                 .Skip(searchQuery.Page * searchQuery.PerPage)
                 .Take(searchQuery.PerPage)
                 .ToListAsync(cancellationToken);
-
+        
+        /// <summary>
+        /// Updates student personal data
+        /// </summary>
+        /// <response code="200">Student data updated successfully</response>
+        /// <response code="401">This action is only available for authorized internship admin</response>
+        /// <response code="404">Student with given id do not exist</response>
         [HttpPut]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
         [Authorize]
         public async Task<ActionResult> UpdateStudentData([FromBody] StudentForm studentNewData, CancellationToken cancellationToken)
         {
diff --git a/src/InternshipSystem.Api/InternshipSystem.Api.csproj b/src/InternshipSystem.Api/InternshipSystem.Api.csproj
index 81e1ed3..00db90f 100644
--- a/src/InternshipSystem.Api/InternshipSystem.Api.csproj
+++ b/src/InternshipSystem.Api/InternshipSystem.Api.csproj
@@ -12,7 +12,7 @@
     <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.0.1" />
     <PackageReference Include="FluentValidation" Version="9.1.2" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.6" />
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.8"/>
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.8" />
     <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
     <PackageReference Include="Serilog" Version="2.9.0" />
     <PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />