diff --git a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
index 89f8ee6c860e11dd7167d474cb93d56b47b8a0ae..3f42d627ea2b0e22d214a206d0695875313b3d26 100644
--- a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
@@ -20,8 +20,6 @@ package de.thm.arsnova.controller;
 
 import java.util.List;
 
-import javax.servlet.http.HttpServletResponse;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +37,7 @@ import de.thm.arsnova.entities.InterposedReadingCount;
 import de.thm.arsnova.exceptions.BadRequestException;
 import de.thm.arsnova.exceptions.PreconditionFailedException;
 import de.thm.arsnova.services.IQuestionService;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @RestController
 @RequestMapping("/audiencequestion")
@@ -50,38 +49,24 @@ public class AudienceQuestionController extends AbstractController {
 	private IQuestionService questionService;
 
 	@RequestMapping(value = "/count", method = RequestMethod.GET)
-	public final int getInterposedCount(
-			@RequestParam final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	@DeprecatedApi
+	public final int getInterposedCount(@RequestParam final String sessionkey) {
 		return questionService.getInterposedCount(sessionkey);
 	}
 
 	@RequestMapping(value = "/readcount", method = RequestMethod.GET)
-	public final InterposedReadingCount getUnreadInterposedCount(
-			@RequestParam("sessionkey") final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	@DeprecatedApi
+	public final InterposedReadingCount getUnreadInterposedCount(@RequestParam("sessionkey") final String sessionkey) {
 		return questionService.getInterposedReadingCount(sessionkey);
 	}
 
 	@RequestMapping(value = "/", method = RequestMethod.GET)
-	public final List<InterposedQuestion> getInterposedQuestions(
-			@RequestParam final String sessionkey,
-			final HttpServletResponse response
-			) {
+	public final List<InterposedQuestion> getInterposedQuestions(@RequestParam final String sessionkey) {
 		return questionService.getInterposedQuestions(sessionkey);
 	}
 
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.GET)
-	public final InterposedQuestion getInterposedQuestion(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
-			) {
+	public final InterposedQuestion getInterposedQuestion(@PathVariable final String questionId) {
 		return questionService.readInterposedQuestion(questionId);
 	}
 
@@ -89,8 +74,7 @@ public class AudienceQuestionController extends AbstractController {
 	@ResponseStatus(HttpStatus.CREATED)
 	public final void postInterposedQuestion(
 			@RequestParam final String sessionkey,
-			@RequestBody final InterposedQuestion question,
-			final HttpServletResponse response
+			@RequestBody final InterposedQuestion question
 			) {
 		if (!sessionkey.equals(question.getSessionId())) {
 			throw new PreconditionFailedException();
@@ -104,11 +88,7 @@ public class AudienceQuestionController extends AbstractController {
 	}
 
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.DELETE)
-	public final void deleteInterposedQuestion(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
-			) {
+	public final void deleteInterposedQuestion(@PathVariable final String questionId) {
 		questionService.deleteInterposedQuestion(questionId);
 	}
-
 }
diff --git a/src/main/java/de/thm/arsnova/controller/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/FeedbackController.java
index e1e8b29db2b0549aa32b26fa975d76fd72b69f8f..74cc2f7dc886c5d62faff3d430f443aa427d97a5 100644
--- a/src/main/java/de/thm/arsnova/controller/FeedbackController.java
+++ b/src/main/java/de/thm/arsnova/controller/FeedbackController.java
@@ -18,8 +18,6 @@
  */
 package de.thm.arsnova.controller;
 
-import javax.servlet.http.HttpServletResponse;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +34,7 @@ import de.thm.arsnova.entities.User;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.services.IFeedbackService;
 import de.thm.arsnova.services.IUserService;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @RestController
 public class FeedbackController extends AbstractController {
@@ -48,58 +47,47 @@ public class FeedbackController extends AbstractController {
 	@Autowired
 	private IUserService userService;
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/feedback", method = RequestMethod.GET)
-	public final Feedback getFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final Feedback getFeedback(@PathVariable final String sessionkey) {
 		return feedbackService.getFeedback(sessionkey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/myfeedback", method = RequestMethod.GET)
-	public final Integer getMyFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) {
+	public final Integer getMyFeedback(@PathVariable final String sessionkey) {
 		Integer value = feedbackService.getMyFeedback(sessionkey, userService.getCurrentUser());
-
-		response.addHeader(X_DEPRECATED_API, "1");
-
 		if (value != null && value >= Feedback.MIN_FEEDBACK_TYPE && value <= Feedback.MAX_FEEDBACK_TYPE) {
 			return value;
 		}
 		throw new NotFoundException();
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/feedbackcount", method = RequestMethod.GET)
-	public final int getFeedbackCount(@PathVariable final String sessionkey, final HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final int getFeedbackCount(@PathVariable final String sessionkey) {
 		return feedbackService.getFeedbackCount(sessionkey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/roundedaveragefeedback", method = RequestMethod.GET)
-	public final long getAverageFeedbackRounded(
-			@PathVariable final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final long getAverageFeedbackRounded(@PathVariable final String sessionkey) {
 		return feedbackService.getAverageFeedbackRounded(sessionkey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/averagefeedback", method = RequestMethod.GET)
-	public final double getAverageFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final double getAverageFeedback(@PathVariable final String sessionkey) {
 		return feedbackService.getAverageFeedback(sessionkey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionkey}/feedback", method = RequestMethod.POST)
 	@ResponseStatus(HttpStatus.CREATED)
 	public final Feedback postFeedback(
 			@PathVariable final String sessionkey,
-			@RequestBody final int value,
-			final HttpServletResponse response
+			@RequestBody final int value
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
 		User user = userService.getCurrentUser();
 		if (feedbackService.saveFeedback(sessionkey, value, user)) {
 			Feedback feedback = feedbackService.getFeedback(sessionkey);
diff --git a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
index ce5f97cac1095bb068d325dd6a1cd6333bdceda5..ec70bfd4e681f92ef4b893f03402648756b9adc9 100644
--- a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
@@ -42,6 +42,7 @@ import de.thm.arsnova.exceptions.ForbiddenException;
 import de.thm.arsnova.exceptions.NoContentException;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.services.IQuestionService;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @RestController
 @RequestMapping("/lecturerquestion")
@@ -53,10 +54,7 @@ public class LecturerQuestionController extends AbstractController {
 	private IQuestionService questionService;
 
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.GET)
-	public final Question getQuestion(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
-			) {
+	public final Question getQuestion(@PathVariable final String questionId) {
 		Question question = questionService.getQuestion(questionId);
 		if (question != null) {
 			return question;
@@ -67,7 +65,7 @@ public class LecturerQuestionController extends AbstractController {
 
 	@RequestMapping(value = "/", method = RequestMethod.POST)
 	@ResponseStatus(HttpStatus.CREATED)
-	public final Question postQuestion(@RequestBody final Question question, final HttpServletResponse response) {
+	public final Question postQuestion(@RequestBody final Question question) {
 		if (questionService.saveQuestion(question) != null) {
 			return question;
 		}
@@ -77,8 +75,7 @@ public class LecturerQuestionController extends AbstractController {
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.PUT)
 	public final Question updateQuestion(
 			@PathVariable final String questionId,
-			@RequestBody final Question question,
-			final HttpServletResponse response
+			@RequestBody final Question question
 			) {
 		try {
 			return this.questionService.update(question);
@@ -90,8 +87,7 @@ public class LecturerQuestionController extends AbstractController {
 	public final void publishQuestion(
 			@PathVariable final String questionId,
 			@RequestParam(required = false) final Boolean publish,
-			@RequestBody final Question question,
-			final HttpServletResponse response
+			@RequestBody final Question question
 			) {
 		if (publish != null) {
 			question.setActive(publish);
@@ -102,8 +98,7 @@ public class LecturerQuestionController extends AbstractController {
 	@RequestMapping(value = "/publish", method = RequestMethod.POST)
 	public final void publishAllQuestions(
 			@RequestParam final String sessionkey,
-			@RequestParam(required = false) final Boolean publish,
-			final HttpServletResponse response
+			@RequestParam(required = false) final Boolean publish
 			) {
 		boolean p = true;
 		if (publish != null) {
@@ -116,8 +111,7 @@ public class LecturerQuestionController extends AbstractController {
 	public final void publishStatistics(
 			@PathVariable final String questionId,
 			@RequestParam(required = false) final Boolean showStatistics,
-			@RequestBody final Question question,
-			final HttpServletResponse response
+			@RequestBody final Question question
 			) {
 		if (showStatistics != null) {
 			question.setShowStatistic(showStatistics);
@@ -129,8 +123,7 @@ public class LecturerQuestionController extends AbstractController {
 	public final void publishCorrectAnswer(
 			@PathVariable final String questionId,
 			@RequestParam(required = false) final Boolean showCorrectAnswer,
-			@RequestBody final Question question,
-			final HttpServletResponse response
+			@RequestBody final Question question
 			) {
 		if (showCorrectAnswer != null) {
 			question.setShowAnswer(showCorrectAnswer);
@@ -182,15 +175,14 @@ public class LecturerQuestionController extends AbstractController {
 		}
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/count", method = RequestMethod.GET)
 	public final int getSkillQuestionCount(
 			@RequestParam final String sessionkey,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureQuestionsOnly,
 			@RequestParam(value = "flashcardsonly", defaultValue = "false") final boolean flashcardsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly,
-			final HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly
+			) {
 		if (lectureQuestionsOnly) {
 			return questionService.getLectureQuestionCount(sessionkey);
 		} else if (flashcardsOnly) {
@@ -204,18 +196,17 @@ public class LecturerQuestionController extends AbstractController {
 
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.DELETE)
 	public final void deleteAnswersAndQuestion(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
+			@PathVariable final String questionId
 			) {
 		questionService.deleteQuestion(questionId);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/unanswered", method = RequestMethod.GET)
 	public final List<String> getUnAnsweredSkillQuestionIds(
 			@RequestParam final String sessionkey,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureQuestionsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly,
-			final HttpServletResponse response
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly
 			) {
 		List<String> answers;
 		if (lectureQuestionsOnly) {
@@ -228,7 +219,6 @@ public class LecturerQuestionController extends AbstractController {
 		if (answers == null || answers.isEmpty()) {
 			throw new NoContentException();
 		}
-		response.addHeader(X_DEPRECATED_API, "1");
 
 		return answers;
 	}
@@ -248,6 +238,7 @@ public class LecturerQuestionController extends AbstractController {
 	 * @throws ForbiddenException
 	 *             if not logged in
 	 */
+	@DeprecatedApi
 	@RequestMapping(value = "/{questionId}/myanswer", method = RequestMethod.GET)
 	public final Answer getMyAnswer(
 			@PathVariable final String questionId,
@@ -259,8 +250,6 @@ public class LecturerQuestionController extends AbstractController {
 			return null;
 		}
 
-		response.addHeader(X_DEPRECATED_API, "1");
-
 		return answer;
 	}
 
@@ -361,43 +350,30 @@ public class LecturerQuestionController extends AbstractController {
 	 * @throws ForbiddenException
 	 *             if not logged in
 	 */
+	@DeprecatedApi
 	@RequestMapping(value = "/{questionId}/answercount", method = RequestMethod.GET)
-	public final int getAnswerCount(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final int getAnswerCount(@PathVariable final String questionId) {
 		return questionService.getAnswerCount(questionId);
 	}
 
 	@RequestMapping(value = "/{questionId}/freetextanswer/", method = RequestMethod.GET)
-	public final List<Answer> getFreetextAnswers(
-			@PathVariable final String questionId,
-			final HttpServletResponse response
-			) {
+	public final List<Answer> getFreetextAnswers(@PathVariable final String questionId) {
 		return questionService.getFreetextAnswers(questionId);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/myanswers", method = RequestMethod.GET)
-	public final List<Answer> getMyAnswers(
-			@RequestParam final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final List<Answer> getMyAnswers(@RequestParam final String sessionkey) {
 		return questionService.getMyAnswers(sessionkey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/answercount", method = RequestMethod.GET)
 	public final int getTotalAnswerCount(
 			@RequestParam final String sessionkey,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureQuestionsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly,
-			final HttpServletResponse response
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationQuestionsOnly
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
 		if (lectureQuestionsOnly) {
 			return questionService.countLectureQuestionAnswers(sessionkey);
 		} else if (preparationQuestionsOnly) {
@@ -406,5 +382,4 @@ public class LecturerQuestionController extends AbstractController {
 			return questionService.getTotalAnswerCount(sessionkey);
 		}
 	}
-
 }
diff --git a/src/main/java/de/thm/arsnova/controller/LegacyController.java b/src/main/java/de/thm/arsnova/controller/LegacyController.java
index acd93535000cda5d6dd889ba2532fb1f2d98bb27..d0a724d2156a534bdc085d426bfcbdaa771ec227 100644
--- a/src/main/java/de/thm/arsnova/controller/LegacyController.java
+++ b/src/main/java/de/thm/arsnova/controller/LegacyController.java
@@ -18,8 +18,6 @@
  */
 package de.thm.arsnova.controller;
 
-import javax.servlet.http.HttpServletResponse;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import de.thm.arsnova.services.IQuestionService;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @Controller
 public class LegacyController extends AbstractController {
@@ -41,158 +40,118 @@ public class LegacyController extends AbstractController {
 
 	/* specific routes */
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/mysessions", method = RequestMethod.GET)
-	public final String redirectSessionMy(
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final String redirectSessionMy() {
 		return "forward:/session/?ownedonly=true";
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/visitedsessions", method = RequestMethod.GET)
-	public final String redirectSessionVisited(
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final String redirectSessionVisited() {
 		return "forward:/session/?visitedonly=true";
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/question")
-	public final String redirectQuestionByLecturer(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturer(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/skillquestions", method = RequestMethod.GET)
-	public final String redirectQuestionByLecturerList(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturerList(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/skillquestioncount", method = RequestMethod.GET)
-	public final String redirectQuestionByLecturerCount(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturerCount(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/count?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/answercount", method = RequestMethod.GET)
-	public final String redirectQuestionByLecturerAnswerCount(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturerAnswerCount(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/answercount?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/unanswered", method = RequestMethod.GET)
-	public final String redirectQuestionByLecturerUnnsweredCount(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturerUnnsweredCount(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/answercount?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/myanswers", method = RequestMethod.GET)
-	public final String redirectQuestionByLecturerMyAnswers(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByLecturerMyAnswers(@PathVariable final String sessionKey) {
 		return String.format("forward:/lecturerquestion/myanswers?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposed")
-	public final String redirectQuestionByAudience(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByAudience(@PathVariable final String sessionKey) {
 		return String.format("forward:/audiencequestion/?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposed", method = RequestMethod.DELETE)
 	@ResponseBody
-	public final void deleteAllInterposedQuestions(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
+	public final void deleteAllInterposedQuestions(@PathVariable final String sessionKey) {
 		questionService.deleteAllInterposedQuestions(sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposedcount", method = RequestMethod.GET)
-	public final String redirectQuestionByAudienceCount(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByAudienceCount(@PathVariable final String sessionKey) {
 		return String.format("forward:/audiencequestion/count?sessionkey=%s", sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposedreadingcount", method = RequestMethod.GET)
-	public final String redirectQuestionByAudienceReadCount(
-			@PathVariable final String sessionKey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
+	public final String redirectQuestionByAudienceReadCount(@PathVariable final String sessionKey) {
 		return String.format("forward:/audiencequestion/readcount?sessionkey=%s", sessionKey);
 	}
 
 	/* generalized routes */
 
+	@DeprecatedApi
 	@RequestMapping(value = { "/session/{sessionKey}/question/{arg1}", "/session/{sessionKey}/questions/{arg1}" })
 	public final String redirectQuestionByLecturerWithOneArgument(
 			@PathVariable final String sessionKey,
-			@PathVariable final String arg1,
-			final HttpServletResponse response
+			@PathVariable final String arg1
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
 		return String.format("forward:/lecturerquestion/%s/?sessionkey=%s", arg1, sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(
 			value = { "/session/{sessionKey}/question/{arg1}/{arg2}", "/session/{sessionKey}/questions/{arg1}/{arg2}" }
 			)
 	public final String redirectQuestionByLecturerWithTwoArguments(
 			@PathVariable final String sessionKey,
 			@PathVariable final String arg1,
-			@PathVariable final String arg2,
-			final HttpServletResponse response
+			@PathVariable final String arg2
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
 		return String.format("forward:/lecturerquestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposed/{arg1}")
 	public final String redirectQuestionByAudienceWithOneArgument(
 			@PathVariable final String sessionKey,
-			@PathVariable final String arg1,
-			final HttpServletResponse response
+			@PathVariable final String arg1
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
 		return String.format("forward:/audiencequestion/%s/?sessionkey=%s", arg1, sessionKey);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/session/{sessionKey}/interposed/{arg1}/{arg2}")
 	public final String redirectQuestionByAudienceWithTwoArguments(
 			@PathVariable final String sessionKey,
 			@PathVariable final String arg1,
-			@PathVariable final String arg2,
-			final HttpServletResponse response
+			@PathVariable final String arg2
 			) {
-		response.addHeader(X_DEPRECATED_API, "1");
 		return String.format("forward:/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
 	}
-
 }
diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java
index 47da7bbbe202009cfcb4a96eb5df0045adad8f31..6a0120a4751d3959a5cccf3f302d9a3f6b136ddb 100644
--- a/src/main/java/de/thm/arsnova/controller/SessionController.java
+++ b/src/main/java/de/thm/arsnova/controller/SessionController.java
@@ -44,6 +44,7 @@ import de.thm.arsnova.services.ISessionService;
 import de.thm.arsnova.services.IUserService;
 import de.thm.arsnova.services.SessionService.SessionNameComperator;
 import de.thm.arsnova.services.SessionService.SessionShortNameComperator;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @RestController
 @RequestMapping("/session")
@@ -68,14 +69,10 @@ public class SessionController extends AbstractController {
 		sessionService.deleteSession(sessionkey, user);
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/{sessionkey}/online", method = RequestMethod.POST)
 	@ResponseStatus(HttpStatus.CREATED)
-	public final LoggedIn registerAsOnlineUser(
-			@PathVariable final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final LoggedIn registerAsOnlineUser(@PathVariable final String sessionkey) {
 		User user = userService.getCurrentUser();
 		LoggedIn loggedIn = sessionService.registerAsOnlineUser(user, sessionkey);
 		if (loggedIn != null) {
@@ -85,13 +82,9 @@ public class SessionController extends AbstractController {
 		throw new RuntimeException();
 	}
 
+	@DeprecatedApi
 	@RequestMapping(value = "/{sessionkey}/activeusercount", method = RequestMethod.GET)
-	public final int countActiveUsers(
-			@PathVariable final String sessionkey,
-			final HttpServletResponse response
-			) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final int countActiveUsers(@PathVariable final String sessionkey) {
 		return userService.getUsersInSessionCount(sessionkey);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/controller/StatisticsController.java b/src/main/java/de/thm/arsnova/controller/StatisticsController.java
index 3da7445638713721075c4a48ee5c3b9907ac9810..9a584b06978b4ad0fca5ced8c702e1d6bbd94603 100644
--- a/src/main/java/de/thm/arsnova/controller/StatisticsController.java
+++ b/src/main/java/de/thm/arsnova/controller/StatisticsController.java
@@ -2,8 +2,6 @@ package de.thm.arsnova.controller;
 
 import java.util.concurrent.Callable;
 
-import javax.servlet.http.HttpServletResponse;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -12,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
 import de.thm.arsnova.entities.Statistics;
 import de.thm.arsnova.services.IStatisticsService;
 import de.thm.arsnova.web.CacheControl;
+import de.thm.arsnova.web.DeprecatedApi;
 
 @RestController
 public class StatisticsController extends AbstractController {
@@ -36,24 +35,21 @@ public class StatisticsController extends AbstractController {
 		};
 	}
 
+	@DeprecatedApi
 	@RequestMapping(method = RequestMethod.GET, value = "/statistics/activeusercount", produces = "text/plain")
-	public final String countActiveUsers(HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final String countActiveUsers() {
 		return Integer.toString(statisticsService.countActiveUsers());
 	}
 
+	@DeprecatedApi
 	@RequestMapping(method = RequestMethod.GET, value = "/statistics/loggedinusercount", produces = "text/plain")
-	public final String countLoggedInUsers(HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final String countLoggedInUsers() {
 		return Integer.toString(statisticsService.countLoggedInUsers());
 	}
 
+	@DeprecatedApi
 	@RequestMapping(method = RequestMethod.GET, value = "/statistics/sessioncount", produces = "text/plain")
-	public final String countSessions(HttpServletResponse response) {
-		response.addHeader(X_DEPRECATED_API, "1");
-
+	public final String countSessions() {
 		return Integer.toString(statisticsService.getStatistics().getOpenSessions()
 				+ statisticsService.getStatistics().getClosedSessions());
 	}
diff --git a/src/main/webapp/WEB-INF/spring/arsnova-servlet.xml b/src/main/webapp/WEB-INF/spring/arsnova-servlet.xml
index 38376efa62b44004079815c276a2f8f1e50c6593..586f28e30963bf90cfa9dc2477ed7d9d3f38a754 100644
--- a/src/main/webapp/WEB-INF/spring/arsnova-servlet.xml
+++ b/src/main/webapp/WEB-INF/spring/arsnova-servlet.xml
@@ -15,6 +15,7 @@
 
 	<mvc:interceptors>
 		<bean class="de.thm.arsnova.web.CacheControlInterceptorHandler" />
+		<bean class="de.thm.arsnova.web.DeprecatedApiInterceptorHandler" />
 	</mvc:interceptors>
 
 	<bean id="contentNegotiationManager"