diff --git a/cmd/koralmapper/main.go b/cmd/koralmapper/main.go
index 732cc2b..d8e51a6 100644
--- a/cmd/koralmapper/main.go
+++ b/cmd/koralmapper/main.go
@@ -312,9 +312,9 @@
 	// Static file serving from embedded FS
 	app.Get("/static/*", handleStaticFile())
 
-	// Composite cascade transformation endpoints
-	app.Post("/query", handleCompositeQueryTransform(m, yamlConfig.Lists))
-	app.Post("/response", handleCompositeResponseTransform(m, yamlConfig.Lists))
+	// Composite cascade transformation endpoints (cfg in path)
+	app.Post("/query/:cfg", handleCompositeQueryTransform(m, yamlConfig.Lists))
+	app.Post("/response/:cfg", handleCompositeResponseTransform(m, yamlConfig.Lists))
 
 	// Transformation endpoint
 	app.Post("/:map/query", handleTransform(m))
@@ -406,7 +406,7 @@
 
 func handleCompositeQueryTransform(m *mapper.Mapper, lists []config.MappingList) fiber.Handler {
 	return func(c *fiber.Ctx) error {
-		cfgRaw := c.Query("cfg", "")
+		cfgRaw := c.Params("cfg")
 		if len(cfgRaw) > maxParamLength {
 			return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
 				"error": fmt.Sprintf("cfg too long (max %d bytes)", maxParamLength),
@@ -465,7 +465,7 @@
 
 func handleCompositeResponseTransform(m *mapper.Mapper, lists []config.MappingList) fiber.Handler {
 	return func(c *fiber.Ctx) error {
-		cfgRaw := c.Query("cfg", "")
+		cfgRaw := c.Params("cfg")
 		if len(cfgRaw) > maxParamLength {
 			return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
 				"error": fmt.Sprintf("cfg too long (max %d bytes)", maxParamLength),
diff --git a/cmd/koralmapper/main_test.go b/cmd/koralmapper/main_test.go
index 6121fe3..ecbb5e8 100644
--- a/cmd/koralmapper/main_test.go
+++ b/cmd/koralmapper/main_test.go
@@ -1595,7 +1595,7 @@
 	}{
 		{
 			name:         "cascades two query mappings",
-			url:          "/query?cfg=step1:atob;step2:atob",
+			url:          "/query/step1:atob;step2:atob",
 			expectedCode: http.StatusOK,
 			input: `{
 				"@type": "koral:token",
@@ -1619,33 +1619,8 @@
 			},
 		},
 		{
-			name:         "empty cfg returns input unchanged",
-			url:          "/query?cfg=",
-			expectedCode: http.StatusOK,
-			input: `{
-				"@type": "koral:token",
-				"wrap": {
-					"@type": "koral:term",
-					"foundry": "opennlp",
-					"key": "PIDAT",
-					"layer": "p",
-					"match": "match:eq"
-				}
-			}`,
-			expected: map[string]any{
-				"@type": "koral:token",
-				"wrap": map[string]any{
-					"@type":   "koral:term",
-					"foundry": "opennlp",
-					"key":     "PIDAT",
-					"layer":   "p",
-					"match":   "match:eq",
-				},
-			},
-		},
-		{
 			name:         "invalid cfg returns bad request",
-			url:          "/query?cfg=missing:atob",
+			url:          "/query/missing:atob",
 			expectedCode: http.StatusBadRequest,
 			input:        `{"@type": "koral:token"}`,
 			expected: map[string]any{
@@ -1703,7 +1678,7 @@
 	}{
 		{
 			name:         "cascades two response mappings",
-			url:          "/response?cfg=resp-step1:atob;resp-step2:atob",
+			url:          "/response/resp-step1:atob;resp-step2:atob",
 			expectedCode: http.StatusOK,
 			input: `{
 				"fields": [{
@@ -1724,27 +1699,8 @@
 			},
 		},
 		{
-			name:         "empty cfg returns input unchanged",
-			url:          "/response?cfg=",
-			expectedCode: http.StatusOK,
-			input: `{
-				"fields": [{
-					"@type": "koral:field",
-					"key": "textClass",
-					"value": "novel",
-					"type": "type:string"
-				}]
-			}`,
-			assertBody: func(t *testing.T, actual map[string]any) {
-				fields := actual["fields"].([]any)
-				require.Len(t, fields, 1)
-				assert.Equal(t, "textClass", fields[0].(map[string]any)["key"])
-				assert.Equal(t, "novel", fields[0].(map[string]any)["value"])
-			},
-		},
-		{
 			name:         "invalid cfg returns bad request",
-			url:          "/response?cfg=resp-step1",
+			url:          "/response/resp-step1",
 			expectedCode: http.StatusBadRequest,
 			input:        `{"fields": []}`,
 			assertBody: func(t *testing.T, actual map[string]any) {
