diff --git a/src/main/scala/de/thm/arsnova/api/QuestionApi.scala b/src/main/scala/de/thm/arsnova/api/QuestionApi.scala
index e97a64f7bdc118addd5a816b34f336399222bde9..56aee07b570a63a93cebee744527c16fdb19c1ac 100644
--- a/src/main/scala/de/thm/arsnova/api/QuestionApi.scala
+++ b/src/main/scala/de/thm/arsnova/api/QuestionApi.scala
@@ -64,5 +64,28 @@ trait QuestionApi {
         }
       }
     }
+  } ~
+  pathPrefix(ApiRoutes.getRoute("session")) {
+    pathPrefix(IntNumber) { sessionId =>
+      pathPrefix(ApiRoutes.getRoute("question")) {
+        pathEndOrSingleSlash {
+          get {
+            parameters("variant".?) { variant =>
+              variant match {
+                case Some(v) => complete(QuestionService.findQuestionsBySessionIdAndVariant(sessionId, v)
+                  .map(questionAdapter.toResources(_)))
+                case None => complete {QuestionService.findAllBySessionId(sessionId)
+                  .map(questionAdapter.toResources(_))}
+              }
+            }
+          } ~
+          post {
+            entity(as[Question]) { question =>
+              complete (QuestionService.create(question.copy(sessionId = sessionId)).map(_.toJson))
+            }
+          }
+        }
+      }
+    }
   }
 }
diff --git a/src/test/scala/de/thm/arsnova/QuestionApiSpec.scala b/src/test/scala/de/thm/arsnova/QuestionApiSpec.scala
index 487fced5b6dd9f0f0288873351672f3e117d537f..5fdaadb35804ca99d9ffeaf817e0208fcdc1e692 100644
--- a/src/test/scala/de/thm/arsnova/QuestionApiSpec.scala
+++ b/src/test/scala/de/thm/arsnova/QuestionApiSpec.scala
@@ -121,6 +121,22 @@ trait QuestionApiSpec extends FunSpec with Matchers with ScalaFutures with BaseS
         }
       }
     }
+    it("create question for session properly") {
+      val sessionId = 2
+      val newFreetext = Question(None, 0, "session question", "session question content", "preparation", "freetext",
+          None, None, true, true, false, true, true, None, None)
+      val requestEntity = HttpEntity(MediaTypes.`application/json`, newFreetext.toJson.toString)
+      Post(s"/session/${sessionId}/question", requestEntity) ~> questionApi ~> check {
+        response.status should be(OK)
+        val newQuestionId: Future[String] = Unmarshal(response.entity).to[String]
+        newQuestionId.onSuccess { case newId =>
+          val checkFreetext = newFreetext.copy(id = Some(newId.toLong), sessionId = sessionId)
+          Get("/question/" + newId.toString) ~> questionApi ~> check {
+            responseAs[JsObject] should be(questionAdapter.toResource(checkFreetext.asInstanceOf[Question]))
+          }
+        }
+      }
+    }
     it("update answer options properly") {
       val question = preparationQuestions.last
       val updatedAnswerOptions: Seq[AnswerOption] = question.answerOptions.get