diff --git a/server/app/apis/alternatives.py b/server/app/apis/alternatives.py
index ce7b4e7d3bb8a550aa52cbc0b2492c1118999876..2adad553ddb34bbd43e1405223c7c45962d66e19 100644
--- a/server/app/apis/alternatives.py
+++ b/server/app/apis/alternatives.py
@@ -1,17 +1,18 @@
 import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
-from app.core.dto import QuestionAlternativeDTO, QuestionDTO
-from app.core.parsers import question_alternative_parser
-from app.core.schemas import QuestionAlternativeSchema
-from app.database.models import Question, QuestionAlternative
-from flask_jwt_extended import jwt_required
+from app.core.dto import QuestionAlternativeDTO
 from flask_restx import Resource
+from flask_restx import reqparse
 
 api = QuestionAlternativeDTO.api
 schema = QuestionAlternativeDTO.schema
 list_schema = QuestionAlternativeDTO.list_schema
 
+question_alternative_parser = reqparse.RequestParser()
+question_alternative_parser.add_argument("text", type=str, default=None, location="json")
+question_alternative_parser.add_argument("value", type=int, default=None, location="json")
+
 
 @api.route("")
 @api.param("competition_id, slide_id, question_id")
diff --git a/server/app/apis/answers.py b/server/app/apis/answers.py
index 0ef3003931d52d304d66cff1cedb36b0c8cfa777..6bb30ddbcef8b4bf11b2921feba5bb074069481a 100644
--- a/server/app/apis/answers.py
+++ b/server/app/apis/answers.py
@@ -2,16 +2,22 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import QuestionAnswerDTO
-from app.core.parsers import question_answer_edit_parser, question_answer_parser
-from app.core.schemas import QuestionAlternativeSchema
-from app.database.models import Question, QuestionAlternative, QuestionAnswer
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource
+from flask_restx import reqparse
 
 api = QuestionAnswerDTO.api
 schema = QuestionAnswerDTO.schema
 list_schema = QuestionAnswerDTO.list_schema
 
+question_answer_parser = reqparse.RequestParser()
+question_answer_parser.add_argument("data", type=dict, required=True, location="json")
+question_answer_parser.add_argument("score", type=int, required=True, location="json")
+question_answer_parser.add_argument("question_id", type=int, required=True, location="json")
+
+question_answer_edit_parser = reqparse.RequestParser()
+question_answer_edit_parser.add_argument("data", type=dict, default=None, location="json")
+question_answer_edit_parser.add_argument("score", type=int, default=None, location="json")
+
 
 @api.route("")
 @api.param("competition_id, team_id")
diff --git a/server/app/apis/auth.py b/server/app/apis/auth.py
index e043f1b1420fcea2511f73ecd2161071c70b48fb..37da9e98d4b5970cd82b47dd54ad940cc53b6736 100644
--- a/server/app/apis/auth.py
+++ b/server/app/apis/auth.py
@@ -3,22 +3,31 @@ import app.database.controller as dbc
 from app.apis import check_jwt, item_response, text_response
 from app.core.codes import verify_code
 from app.core.dto import AuthDTO, CodeDTO
-from app.core.parsers import create_user_parser, login_code_parser, login_parser
-from app.database.models import User
 from flask_jwt_extended import (
     create_access_token,
     create_refresh_token,
     get_jwt_identity,
     get_raw_jwt,
     jwt_refresh_token_required,
-    jwt_required,
 )
-from flask_restx import Namespace, Resource, cors
+from flask_restx import Resource
+from flask_restx import inputs, reqparse
 
 api = AuthDTO.api
 schema = AuthDTO.schema
 list_schema = AuthDTO.list_schema
 
+login_parser = reqparse.RequestParser()
+login_parser.add_argument("email", type=inputs.email(), required=True, location="json")
+login_parser.add_argument("password", required=True, location="json")
+
+create_user_parser = login_parser.copy()
+create_user_parser.add_argument("city_id", type=int, required=True, location="json")
+create_user_parser.add_argument("role_id", type=int, required=True, location="json")
+
+login_code_parser = reqparse.RequestParser()
+login_code_parser.add_argument("code", type=str, location="json")
+
 
 def get_user_claims(item_user):
     return {"role": item_user.role.name, "city_id": item_user.city_id}
diff --git a/server/app/apis/codes.py b/server/app/apis/codes.py
index 7d58aef05e77aa50da40a753685dd4b32d3e055e..8a4105d24a77f07b04da1e1e2ed477746ea7a932 100644
--- a/server/app/apis/codes.py
+++ b/server/app/apis/codes.py
@@ -2,9 +2,7 @@ import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core import http_codes as codes
 from app.core.dto import CodeDTO
-from app.core.parsers import code_parser
-from app.database.models import Code, Competition
-from flask_jwt_extended import jwt_required
+from app.database.models import Code
 from flask_restx import Resource
 
 api = CodeDTO.api
diff --git a/server/app/apis/competitions.py b/server/app/apis/competitions.py
index 6421ba34811ac964575df5acd4680133191a5556..e806f34a08a1b29b70cf95ff8887f349703da0f4 100644
--- a/server/app/apis/competitions.py
+++ b/server/app/apis/competitions.py
@@ -2,18 +2,27 @@ import time
 
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
-from app.core import rich_schemas
 from app.core.dto import CompetitionDTO
-from app.core.parsers import competition_parser, competition_search_parser
 from app.database.models import Competition
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource
+from flask_restx import reqparse
+from app.core.parsers import search_parser
 
 api = CompetitionDTO.api
 schema = CompetitionDTO.schema
 rich_schema = CompetitionDTO.rich_schema
 list_schema = CompetitionDTO.list_schema
 
+competition_parser = reqparse.RequestParser()
+competition_parser.add_argument("name", type=str, location="json")
+competition_parser.add_argument("year", type=int, location="json")
+competition_parser.add_argument("city_id", type=int, location="json")
+
+competition_search_parser = search_parser.copy()
+competition_search_parser.add_argument("name", type=str, default=None, location="args")
+competition_search_parser.add_argument("year", type=int, default=None, location="args")
+competition_search_parser.add_argument("city_id", type=int, default=None, location="args")
+
 
 @api.route("")
 class CompetitionsList(Resource):
diff --git a/server/app/apis/components.py b/server/app/apis/components.py
index 806e65e99ac67bc8aaa0a2004f4a458be63d83fd..8ab67b8cb8bd001c9641b6331325f328639b581e 100644
--- a/server/app/apis/components.py
+++ b/server/app/apis/components.py
@@ -2,17 +2,28 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import ComponentDTO
-from app.core.parsers import component_create_parser, component_edit_parser, component_parser
-from app.database.models import Competition, Component
-from flask.globals import request
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource
+from flask_restx import reqparse
 
 api = ComponentDTO.api
 schema = ComponentDTO.schema
 list_schema = ComponentDTO.list_schema
 
 
+component_parser = reqparse.RequestParser()
+component_parser.add_argument("x", type=str, default=None, location="json")
+component_parser.add_argument("y", type=int, default=None, location="json")
+component_parser.add_argument("w", type=int, default=None, location="json")
+component_parser.add_argument("h", type=int, default=None, location="json")
+
+component_edit_parser = component_parser.copy()
+component_edit_parser.add_argument("text", type=str, location="json")
+component_edit_parser.add_argument("media_id", type=str, location="json")
+
+component_create_parser = component_edit_parser.copy()
+component_create_parser.add_argument("type_id", type=int, required=True, location="json")
+
+
 @api.route("/<component_id>")
 @api.param("competition_id, slide_id, component_id")
 class ComponentByID(Resource):
diff --git a/server/app/apis/media.py b/server/app/apis/media.py
index 8f0b28f7b332184f043f3f79562c02b6a001f7ca..5d89550ac19aaff78643a34ae0a3059c011aed23 100644
--- a/server/app/apis/media.py
+++ b/server/app/apis/media.py
@@ -2,11 +2,11 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import MediaDTO
-from app.core.parsers import media_parser_search
-from app.database.models import City, Media, MediaType, QuestionType, Role
+from app.core.parsers import search_parser
+from app.database.models import Media
 from flask import request
-from flask_jwt_extended import get_jwt_identity, jwt_required
-from flask_restx import Resource, reqparse
+from flask_jwt_extended import get_jwt_identity
+from flask_restx import Resource
 from flask_uploads import UploadNotAllowed
 from sqlalchemy import exc
 import app.core.files as files
@@ -16,6 +16,9 @@ image_set = MediaDTO.image_set
 schema = MediaDTO.schema
 list_schema = MediaDTO.list_schema
 
+media_parser_search = search_parser.copy()
+media_parser_search.add_argument("filename", type=str, default=None, location="args")
+
 
 @api.route("/images")
 class ImageList(Resource):
diff --git a/server/app/apis/misc.py b/server/app/apis/misc.py
index 8b3bd5e57e5b877fdaed85f3e6a372b4984d8ef8..ab52362d46d026d8483c52f5c4d8384f32de755d 100644
--- a/server/app/apis/misc.py
+++ b/server/app/apis/misc.py
@@ -1,10 +1,10 @@
 import app.database.controller as dbc
-from app.apis import check_jwt, item_response, list_response
+from app.apis import check_jwt, list_response
 from app.core import http_codes
 from app.core.dto import MiscDTO
 from app.database.models import City, Competition, ComponentType, MediaType, QuestionType, Role, User, ViewType
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource, reqparse
+from flask_restx import reqparse
 
 api = MiscDTO.api
 
diff --git a/server/app/apis/questions.py b/server/app/apis/questions.py
index 5797872a9865bd693989eb0322d8a9818796e86b..aaefafc40608d14bf3a4e8a2a3b7fdfbda559f2c 100644
--- a/server/app/apis/questions.py
+++ b/server/app/apis/questions.py
@@ -2,15 +2,18 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import QuestionDTO
-from app.core.parsers import question_parser
-from app.database.models import Question
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource
+from flask_restx import reqparse
 
 api = QuestionDTO.api
 schema = QuestionDTO.schema
 list_schema = QuestionDTO.list_schema
 
+question_parser = reqparse.RequestParser()
+question_parser.add_argument("name", type=str, default=None, location="json")
+question_parser.add_argument("total_score", type=int, default=None, location="json")
+question_parser.add_argument("type_id", type=int, default=None, location="json")
+
 
 @api.route("/questions")
 @api.param("competition_id")
diff --git a/server/app/apis/slides.py b/server/app/apis/slides.py
index 9ca4a5f229488e03931ec544dd3ccf43406e5b9e..1823531e183f3dbb4e8daaae91c6d9efd22b263e 100644
--- a/server/app/apis/slides.py
+++ b/server/app/apis/slides.py
@@ -2,15 +2,18 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import SlideDTO
-from app.core.parsers import slide_parser
-from app.database.models import Competition, Slide
-from flask_jwt_extended import jwt_required
 from flask_restx import Resource
+from flask_restx import reqparse
 
 api = SlideDTO.api
 schema = SlideDTO.schema
 list_schema = SlideDTO.list_schema
 
+slide_parser = reqparse.RequestParser()
+slide_parser.add_argument("order", type=int, default=None, location="json")
+slide_parser.add_argument("title", type=str, default=None, location="json")
+slide_parser.add_argument("timer", type=int, default=None, location="json")
+
 
 @api.route("")
 @api.param("competition_id")
diff --git a/server/app/apis/teams.py b/server/app/apis/teams.py
index 514748ae27c7ff685d2b1099d1bf710610928860..3fcb276c959c8880be30713bf08869d6b30b8dbb 100644
--- a/server/app/apis/teams.py
+++ b/server/app/apis/teams.py
@@ -2,15 +2,16 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import TeamDTO
-from app.core.parsers import team_parser
-from app.database.models import Competition, Team
-from flask_jwt_extended import get_jwt_identity, jwt_required
-from flask_restx import Namespace, Resource, reqparse
+from flask_restx import Resource, reqparse
+from flask_restx import reqparse
 
 api = TeamDTO.api
 schema = TeamDTO.schema
 list_schema = TeamDTO.list_schema
 
+team_parser = reqparse.RequestParser()
+team_parser.add_argument("name", type=str, location="json")
+
 
 @api.route("")
 @api.param("competition_id")
diff --git a/server/app/apis/users.py b/server/app/apis/users.py
index 1bae000bc6821ff7c7ac3dde82474bd351c2fe4d..a5b2d58b01f9ce8931fd29cba3af9d1d8b825cc0 100644
--- a/server/app/apis/users.py
+++ b/server/app/apis/users.py
@@ -2,18 +2,29 @@ import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.apis import check_jwt, item_response, list_response
 from app.core.dto import UserDTO
-from app.core.parsers import user_parser, user_search_parser
-from app.database.models import User
-from flask import request
-from flask_jwt_extended import get_jwt_identity, jwt_required
-from flask_restx import Namespace, Resource
+from flask_jwt_extended import get_jwt_identity
+from flask_restx import Resource
+from flask_restx import inputs, reqparse
+from app.core.parsers import search_parser
 
 api = UserDTO.api
 schema = UserDTO.schema
 list_schema = UserDTO.list_schema
 
+user_parser = reqparse.RequestParser()
+user_parser.add_argument("email", type=inputs.email(), location="json")
+user_parser.add_argument("name", type=str, location="json")
+user_parser.add_argument("city_id", type=int, location="json")
+user_parser.add_argument("role_id", type=int, location="json")
 
-def edit_user(item_user, args):
+user_search_parser = search_parser.copy()
+user_search_parser.add_argument("name", type=str, default=None, location="args")
+user_search_parser.add_argument("email", type=str, default=None, location="args")
+user_search_parser.add_argument("city_id", type=int, default=None, location="args")
+user_search_parser.add_argument("role_id", type=int, default=None, location="args")
+
+
+def _edit_user(item_user, args):
     email = args.get("email")
     name = args.get("name")
 
@@ -38,7 +49,7 @@ class UsersList(Resource):
     def put(self):
         args = user_parser.parse_args(strict=True)
         item = dbc.get.user(get_jwt_identity())
-        item = edit_user(item, args)
+        item = _edit_user(item, args)
         return item_response(schema.dump(item))
 
 
@@ -54,7 +65,7 @@ class Users(Resource):
     def put(self, ID):
         args = user_parser.parse_args(strict=True)
         item = dbc.get.user(ID)
-        item = edit_user(item, args)
+        item = _edit_user(item, args)
         return item_response(schema.dump(item))
 
 
diff --git a/server/app/core/parsers.py b/server/app/core/parsers.py
index 3420e99e74f0da49cae94703acad4ef09f7994e3..c695dd230b208d95fff4eaba14f12c9732042376 100644
--- a/server/app/core/parsers.py
+++ b/server/app/core/parsers.py
@@ -6,104 +6,3 @@ search_parser.add_argument("page", type=int, default=0, location="args")
 search_parser.add_argument("page_size", type=int, default=15, location="args")
 search_parser.add_argument("order", type=int, default=1, location="args")
 search_parser.add_argument("order_by", type=str, default=None, location="args")
-
-###LOGIN####
-login_parser = reqparse.RequestParser()
-login_parser.add_argument("email", type=inputs.email(), required=True, location="json")
-login_parser.add_argument("password", required=True, location="json")
-
-###CREATE_USER####
-create_user_parser = login_parser.copy()
-create_user_parser.add_argument("city_id", type=int, required=True, location="json")
-create_user_parser.add_argument("role_id", type=int, required=True, location="json")
-
-###USER####
-user_parser = reqparse.RequestParser()
-user_parser.add_argument("email", type=inputs.email(), location="json")
-user_parser.add_argument("name", type=str, location="json")
-user_parser.add_argument("city_id", type=int, location="json")
-user_parser.add_argument("role_id", type=int, location="json")
-
-###SEARCH_USER####
-user_search_parser = search_parser.copy()
-user_search_parser.add_argument("name", type=str, default=None, location="args")
-user_search_parser.add_argument("email", type=str, default=None, location="args")
-user_search_parser.add_argument("city_id", type=int, default=None, location="args")
-user_search_parser.add_argument("role_id", type=int, default=None, location="args")
-
-
-###COMPETITION####
-competition_parser = reqparse.RequestParser()
-competition_parser.add_argument("name", type=str, location="json")
-competition_parser.add_argument("year", type=int, location="json")
-competition_parser.add_argument("city_id", type=int, location="json")
-
-
-###SEARCH_COMPETITION####
-competition_search_parser = search_parser.copy()
-competition_search_parser.add_argument("name", type=str, default=None, location="args")
-competition_search_parser.add_argument("year", type=int, default=None, location="args")
-competition_search_parser.add_argument("city_id", type=int, default=None, location="args")
-
-
-###SLIDER_PARSER####
-slide_parser = reqparse.RequestParser()
-slide_parser.add_argument("order", type=int, default=None, location="json")
-slide_parser.add_argument("title", type=str, default=None, location="json")
-slide_parser.add_argument("timer", type=int, default=None, location="json")
-
-
-###QUESTION####
-question_parser = reqparse.RequestParser()
-question_parser.add_argument("name", type=str, default=None, location="json")
-question_parser.add_argument("total_score", type=int, default=None, location="json")
-question_parser.add_argument("type_id", type=int, default=None, location="json")
-
-
-###QUESTION ALTERNATIVES####
-question_alternative_parser = reqparse.RequestParser()
-question_alternative_parser.add_argument("text", type=str, default=None, location="json")
-question_alternative_parser.add_argument("value", type=int, default=None, location="json")
-
-###QUESTION ANSWERS####
-question_answer_parser = reqparse.RequestParser()
-question_answer_parser.add_argument("data", type=dict, required=True, location="json")
-question_answer_parser.add_argument("score", type=int, required=True, location="json")
-question_answer_parser.add_argument("question_id", type=int, required=True, location="json")
-
-###QUESTION ANSWERS EDIT####
-question_answer_edit_parser = reqparse.RequestParser()
-question_answer_edit_parser.add_argument("data", type=dict, default=None, location="json")
-question_answer_edit_parser.add_argument("score", type=int, default=None, location="json")
-
-###CODE####
-code_parser = reqparse.RequestParser()
-code_parser.add_argument("pointer", type=str, default=None, location="json")
-code_parser.add_argument("view_type_id", type=int, default=None, location="json")
-
-
-###TEAM####
-team_parser = reqparse.RequestParser()
-team_parser.add_argument("name", type=str, location="json")
-
-###SEARCH_COMPETITION####
-media_parser_search = search_parser.copy()
-media_parser_search.add_argument("filename", type=str, default=None, location="args")
-
-
-###COMPONENT###
-component_parser = reqparse.RequestParser()
-component_parser.add_argument("x", type=str, default=None, location="json")
-component_parser.add_argument("y", type=int, default=None, location="json")
-component_parser.add_argument("w", type=int, default=None, location="json")
-component_parser.add_argument("h", type=int, default=None, location="json")
-
-component_edit_parser = component_parser.copy()
-component_edit_parser.add_argument("text", type=str, location="json")
-component_edit_parser.add_argument("media_id", type=str, location="json")
-
-component_create_parser = component_edit_parser.copy()
-component_create_parser.add_argument("type_id", type=int, required=True, location="json")
-
-login_code_parser = reqparse.RequestParser()
-login_code_parser.add_argument("code", type=str, location="json")