diff --git a/servicesDistributionDevLocal.json b/servicesDistributionDevLocal.json
index 4fc6d2b..c143d35 100644
--- a/servicesDistributionDevLocal.json
+++ b/servicesDistributionDevLocal.json
@@ -9,6 +9,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
@@ -18,6 +19,7 @@
         "name": "mics-central-service",
         "protocol": "http",
         "host": "localhost",
+        "urlPath": "/mics/central",
         "portApp": "9010",
         "portHealth": "9011",
         "description": "Mics Central Service-Configures and dispatches different service clusters for different modules"
diff --git a/servicesDistributionDevServer.json b/servicesDistributionDevServer.json
index ea0fc9c..823db8c 100644
--- a/servicesDistributionDevServer.json
+++ b/servicesDistributionDevServer.json
@@ -9,6 +9,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
@@ -18,6 +19,7 @@
         "name": "mics-central-service",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/mics/central",
         "portApp": "9010",
         "portHealth": "9011",
         "description": "Mics Central Service-Configures and dispatches different service clusters for different modules"
diff --git a/src/main/java/pta/de/api/ServiceDistributionCluster.java b/src/main/java/pta/de/api/ServiceDistributionCluster.java
index 15e1097..8a37f28 100644
--- a/src/main/java/pta/de/api/ServiceDistributionCluster.java
+++ b/src/main/java/pta/de/api/ServiceDistributionCluster.java
@@ -17,6 +17,9 @@
         private String host;
 
         @NotEmpty
+        private String urlPath;
+
+        @NotEmpty
         private String protocol;
 
         @NotEmpty
@@ -61,6 +64,16 @@
         }
 
         @JsonProperty
+        public String getUrlPath() {
+            return urlPath;
+        }
+
+        @JsonProperty
+        public void setUrlPath(String urlPath) {
+            this.urlPath = urlPath;
+        }
+
+        @JsonProperty
         public String getProtocol() {
             return protocol;
         }
diff --git a/src/test/java/pta/de/api/ServiceDistributionClusterTest.java b/src/test/java/pta/de/api/ServiceDistributionClusterTest.java
index da7d14e..0efe76d 100644
--- a/src/test/java/pta/de/api/ServiceDistributionClusterTest.java
+++ b/src/test/java/pta/de/api/ServiceDistributionClusterTest.java
@@ -12,13 +12,14 @@
 public class ServiceDistributionClusterTest {
 
     private ServiceDistributionCluster.ServiceDistribution createDistribution(
-            boolean active, String name, String host, String protocol,
+            boolean active, String name, String host, String urlPath, String protocol,
             Integer portApp, Integer portHealth, String description) {
 
         ServiceDistributionCluster.ServiceDistribution sd = new ServiceDistributionCluster.ServiceDistribution();
         sd.setActive(true);
         sd.setName(name);
         sd.setHost(host);
+        sd.setUrlPath(urlPath);
         sd.setProtocol(protocol);
         sd.setPortApp(portApp);
         sd.setPortHealth(portHealth);
@@ -30,9 +31,9 @@
     @Test
     public void testPojo() throws IOException {
         List<ServiceDistributionCluster.ServiceDistribution> distList = new ArrayList<>();
-        distList.add(createDistribution(true, "Hugo", "1.2.3.4", "httpx",
+        distList.add(createDistribution(true, "Hugo", "1.2.3.4", "19/eleven", "httpx",
                 1000, 2000, "Hugo ist toll"));
-        distList.add(createDistribution(false, "Bruno Haferkamp", "2.3.4.5", "httpxy",
+        distList.add(createDistribution(false, "Bruno Haferkamp", "2.3.4.5", "seven/of/nine", "httpxy",
                 10, null, "Bruno ist noch toller"));
         ServiceDistributionCluster.ServiceDistribution[] arr
                 = new ServiceDistributionCluster.ServiceDistribution[distList.size()];
@@ -54,6 +55,7 @@
         for (int i = 0; i < cluster.getDistributions().length; i++) {
             assertEquals(cluster.getDistributions()[i].getName(), inCluster.getDistributions()[i].getName());
             assertEquals(cluster.getDistributions()[i].getHost(), inCluster.getDistributions()[i].getHost());
+            assertEquals(cluster.getDistributions()[i].getUrlPath(), inCluster.getDistributions()[i].getUrlPath());
             assertEquals(cluster.getDistributions()[i].isActive(), inCluster.getDistributions()[i].isActive());
             assertEquals(cluster.getDistributions()[i].getPortApp(), inCluster.getDistributions()[i].getPortApp());
             assertEquals(cluster.getDistributions()[i].getPortHealth(), inCluster.getDistributions()[i].getPortHealth());
diff --git a/src/test/resources/servicesDistributionTest.json b/src/test/resources/servicesDistributionTest.json
index ed508c4..d17b741 100644
--- a/src/test/resources/servicesDistributionTest.json
+++ b/src/test/resources/servicesDistributionTest.json
@@ -9,6 +9,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
diff --git a/src/test/resources/testServiceDist_False.json b/src/test/resources/testServiceDist_False.json
index 759fd24..bf87303 100644
--- a/src/test/resources/testServiceDist_False.json
+++ b/src/test/resources/testServiceDist_False.json
@@ -9,6 +9,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
diff --git a/src/test/resources/testServiceDistributions.json b/src/test/resources/testServiceDistributions.json
index 40d8558..bee259c 100644
--- a/src/test/resources/testServiceDistributions.json
+++ b/src/test/resources/testServiceDistributions.json
@@ -9,6 +9,7 @@
       "name": "auth-n-auth.mics",
       "protocol": "http",
       "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
       "portApp": "9002",
       "portHealth": "9003",
       "description": "Authentication Service"
diff --git a/src/test/resources/testServiceDistributionsTwo_OneIsInactive.json b/src/test/resources/testServiceDistributionsTwo_OneIsInactive.json
index fe36fee..afce6a9 100644
--- a/src/test/resources/testServiceDistributionsTwo_OneIsInactive.json
+++ b/src/test/resources/testServiceDistributionsTwo_OneIsInactive.json
@@ -9,6 +9,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
@@ -18,6 +19,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "localhost",
+        "urlPath": "/mics/central",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
@@ -34,6 +36,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "172.18.22.160",
+        "urlPath": "/authNAuth",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
@@ -43,6 +46,7 @@
         "name": "auth-n-auth.mics",
         "protocol": "http",
         "host": "localhost",
+        "urlPath": "/mics/central",
         "portApp": "9002",
         "portHealth": "9003",
         "description": "Authentication Service"
