diff --git a/Cargo.lock b/Cargo.lock
index 33b9250007983a0d0b84bcb792033f96c66e168f..e539c0ca5f3db25b696f21f8e3e46f9d4e82a314 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -592,8 +592,7 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 [[package]]
 name = "schmfy"
 version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258529f4dfcece66eff7179d53246cdf5eab89acf586d76ec129b13ab827f0c"
+source = "git+https://gitlab.fachschaften.org/skadic/schmfy#2a7a7768c6377d03cd59d5e7a661d89957e5868e"
 
 [[package]]
 name = "schmfy_express"
diff --git a/Cargo.toml b/Cargo.toml
index bfb8982ab49e5e021732b77d7b964676030aa02b..52797104908ef7062431f43fc3f1e937b493a51c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "schmfy_express"
-version = "0.2.0"
+version = "0.2.1"
 edition = "2021"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -10,7 +10,7 @@ axum = "0.7.5"
 dotenvy = "0.15.7"
 futures = "0.3.30"
 miette = { version = "7.2.0", features = ["fancy"] }
-schmfy = "0.2.1"
+schmfy = { git = "https://gitlab.fachschaften.org/skadic/schmfy"}
 serde = { version = "1.0.200", features = ["derive"] }
 tokio = { version = "1.37.0", features = ["rt-multi-thread", "macros", "signal"] }
 tracing = "0.1.40"
diff --git a/src/main.rs b/src/main.rs
index cb32bbbe9bd93d6b006fa34143c2179982a1b8c5..9062108996fc33af3b6d1ddbea4cb154748be1c1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,4 @@
-use axum::{extract::Query, response::Html, routing::get, Router};
+use axum::{extract::Query, response::Html, routing::get, Json, Router};
 use dotenvy::dotenv;
 use miette::{Context, IntoDiagnostic};
 use std::net::Ipv4Addr;
@@ -18,7 +18,7 @@ async fn main() -> miette::Result<()> {
     }
     let router = Router::<()>::new()
         .route("/", get(home))
-        .route("/schmfy", get(schmfy));
+        .route("/schmfy", get(schmfy).post(schmfy_post));
 
     let address = std::env::var(SCHMFY_HOST)
         .into_diagnostic()
@@ -64,6 +64,10 @@ async fn schmfy(Query(Input { input }): Query<Input>) -> String {
     schmfy::schmfy(input.as_str())
 }
 
+async fn schmfy_post(Json(Input { input }): Json<Input>) -> String {
+    schmfy::schmfy(input.as_str())
+}
+
 async fn shutdown_signal() {
     let ctrl_c = async {
         signal::ctrl_c()