diff --git a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
index 64bb096b83695fc3cd83d4f6fb5784416fd54c56..1f4b24dda8f0934a467d7d854a8f67ea59998f62 100644
--- a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
+++ b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
@@ -60,7 +60,8 @@ object PlayPadServer extends App {
 	webSocket("/project", new ProjectSyncHandler(sessionDao, databaseConnection))
 
 	// Project
-	get("/projects", new ProjectGet(databaseConnection, sessionDao), new JsonTransformer)
+	get("/projects/:id", new ProjectGet(databaseConnection, sessionDao), new JsonTransformer)
+	get("/projects", new ProjectList(databaseConnection, sessionDao), new JsonTransformer)
 	post("/projects", new ProjectPost(databaseConnection, sessionDao), new JsonTransformer)
 	delete("/projects", new ProjectDelete(databaseConnection, sessionDao), new JsonTransformer)
 
diff --git a/src/main/scala/de/tobias/playpad/server/project/Pad.scala b/src/main/scala/de/tobias/playpad/server/project/Pad.scala
index d0a03da4021b42aecb8d3e24aec39b52b518a1d7..009b866beb32c032f53acb583ae24bde4042003e 100644
--- a/src/main/scala/de/tobias/playpad/server/project/Pad.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/Pad.scala
@@ -13,6 +13,5 @@ class Pad() {
 	var position: Int = _
 	var pageIndex: Int = _
 
-	var design: Design = _
 	var page: Page = _
 }
diff --git a/src/main/scala/de/tobias/playpad/server/project/ProjectReference.scala b/src/main/scala/de/tobias/playpad/server/project/ProjectReference.scala
new file mode 100644
index 0000000000000000000000000000000000000000..469faaad85b0e1c1fa5a15214dd1e500f532c3ca
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/project/ProjectReference.scala
@@ -0,0 +1,13 @@
+package de.tobias.playpad.server.project
+
+import java.util.UUID
+
+/**
+  * Created by tobias on 19.02.17.
+  */
+class ProjectReference {
+
+	var id: UUID = UUID.randomUUID()
+	var name: String = _
+
+}
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
index 7504c623b47d9b6b4f6db0ca592b37ee97f2a5c8..4f7e823628804c66513d590da00965a6f90fcc42 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
@@ -3,7 +3,7 @@ package de.tobias.playpad.server.project.loader.sql
 import java.sql.Connection
 import java.util.UUID
 
-import de.tobias.playpad.server.project.Project
+import de.tobias.playpad.server.project.{Project, ProjectReference}
 import de.tobias.playpad.server.project.utils.SqlDef._
 
 /**
@@ -36,6 +36,28 @@ class ProjectLoader(val connection: Connection) {
 		projects
 	}
 
+	def list(accountId: Int): List[ProjectReference] = {
+		val sql = s"SELECT * FROM $PROJECT WHERE $PROJECT_ACCOUNT_ID = ?"
+		val preparedStatement = connection.prepareStatement(sql)
+		preparedStatement.setInt(1, accountId)
+		val result = preparedStatement.executeQuery()
+
+		var projects: List[ProjectReference] = List()
+
+		while (result.next()) {
+			val project = new ProjectReference()
+			project.id = UUID.fromString(result.getString(PROJECT_ID))
+			project.name = result.getString(PROJECT_NAME)
+
+			projects = project :: projects
+		}
+
+		result.close()
+		preparedStatement.close()
+
+		projects
+	}
+
 	def getAccountId(id: UUID): Int = {
 		val sql = s"SELECT account_id FROM $PROJECT WHERE $PROJECT_ID = ?"
 
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/ProjectList.scala b/src/main/scala/de/tobias/playpad/server/server/project/ProjectList.scala
new file mode 100644
index 0000000000000000000000000000000000000000..99f506e09c9de8d39abdc7f263a9bd2c9388602f
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/ProjectList.scala
@@ -0,0 +1,43 @@
+package de.tobias.playpad.server.server.project
+
+import java.sql.Connection
+import java.util.UUID
+
+import com.google.gson.{JsonArray, JsonObject}
+import com.j256.ormlite.dao.Dao
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.loader.sql.ProjectLoader
+import de.tobias.playpad.server.project.saver.json.ProjectSaver
+import de.tobias.playpad.server.server.{Result, Status}
+import spark.{Request, Response, Route}
+
+/**
+  * Created by tobias on 17.02.17.
+  */
+class ProjectList(connection: Connection, sessionDao: Dao[Session, Int]) extends Route {
+
+	override def handle(request: Request, response: Response): AnyRef = {
+		val sessionKey = request.queryParams("session")
+
+		val session = Session.getSession(sessionKey, sessionDao)
+
+		session match {
+			case Some(s) =>
+				val projectLoader = new ProjectLoader(connection)
+				val projects = projectLoader.list(s.getAccount.id)
+
+				val array = new JsonArray()
+				projects.foreach(project => {
+					val json = new JsonObject()
+					json.addProperty("uuid", project.id.toString)
+					json.addProperty("name", project.name)
+					array.add(json)
+				})
+
+				array
+			case None =>
+				new Result(Status.ERROR, "Session invalid")
+		}
+	}
+
+}