diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala
index 472b11e90806b2c7797ba87e9fc6a38b7fe71ef4..469b8294a88c9fa2910c94e819479a5cff917210 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala
@@ -19,7 +19,9 @@ class WebSocketHandler {
 		"project-current" -> new ProjectCurrentMethod,
 		"project-open" -> new ProjectOpenMethod,
 		"pad-status-change" -> new PadStatusChangeMethod,
-		"cart-action" -> new CartActionMethod
+		"cart-action" -> new CartActionMethod,
+		"page-action" -> new PageActionMethod,
+		"navigate-action" -> new NavigateActionMethod
 	)
 
 	@OnWebSocketConnect def connected(session: Session): Unit = {
diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/NavigateActionMethod.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/NavigateActionMethod.scala
new file mode 100644
index 0000000000000000000000000000000000000000..e349be8bf4272ffc69caa11bf06d1ff06b8a2dcd
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/NavigateActionMethod.scala
@@ -0,0 +1,24 @@
+package de.tobias.playpad.plugin.api.websocket.methods
+
+import com.google.gson.JsonObject
+import de.tobias.playpad.PlayPadPlugin
+import de.tobias.playpad.plugin.api.websocket.MethodExecutable
+import de.tobias.playpad.plugin.api.websocket.message.Message
+import javafx.application.Platform
+import org.eclipse.jetty.websocket.api.Session
+
+class NavigateActionMethod extends MethodExecutable {
+
+	override def execute(session: Session, message: Message): JsonObject = {
+		val mainViewController = PlayPadPlugin.getInstance.getMainViewController
+
+		message.payload.get("action").getAsString match {
+			case "PREVIOUS" =>
+				Platform.runLater(() => mainViewController.showPage(mainViewController.getPage - 1))
+			case "NEXT" =>
+				Platform.runLater(() => mainViewController.showPage(mainViewController.getPage + 1))
+			case _ =>
+		}
+		null
+	}
+}
diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/PageActionMethod.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/PageActionMethod.scala
new file mode 100644
index 0000000000000000000000000000000000000000..09c89060903d98e410139b6acf3ddc771aae0196
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/PageActionMethod.scala
@@ -0,0 +1,22 @@
+package de.tobias.playpad.plugin.api.websocket.methods
+
+import com.google.gson.JsonObject
+import de.tobias.playpad.PlayPadPlugin
+import de.tobias.playpad.plugin.api.websocket.MethodExecutable
+import de.tobias.playpad.plugin.api.websocket.message.Message
+import javafx.application.Platform
+import org.eclipse.jetty.websocket.api.Session
+
+class PageActionMethod extends MethodExecutable {
+
+	override def execute(session: Session, message: Message): JsonObject = {
+		val project = PlayPadPlugin.getInstance.getCurrentProject
+		val mainViewController = PlayPadPlugin.getInstance.getMainViewController
+		val targetPage = message.payload.get("page").getAsInt
+
+		if (targetPage < 0 || targetPage >= project.getPages.size) return null
+
+		Platform.runLater(() => mainViewController.showPage(targetPage))
+		return null
+	}
+}