diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
index ca095458defe4ea9600e1a631c316f57983528c0..5f66154fad53532ad69321e88a93b2004146af0f 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
@@ -40,7 +40,9 @@ public class Endpoints {
 
     private static final Logger log = LoggerFactory.getLogger(Endpoints.class);
 
-    public static final String EP_END_REGEXP = "(?: ([a-z0-9_ÄŸÄž][a-z0-9-_.ÄŸÄž]*))?(?: ([0-9.]+))?(?: ([0-9a-f:]+)(?:%[a-z0-9]+)?)?(?: ([0-9]+))(?: (/[^/]*))?$";
+    // Path regexp (can have no starting slash - see issue https://git.duniter.org/clients/cesium-grp/cesium-plus-pod/-/issues/41)
+    public static final String PATH_REGEXP = "\\/?[^\\/\\s]+(?:\\/[^\\/\\s]+)*";
+    public static final String EP_END_REGEXP = "(?: ([a-z0-9_ÄŸÄž][a-z0-9-_.ÄŸÄž]*))?(?: ([0-9.]+))?(?: ([0-9a-f:]+)(?:%[a-z0-9]+)?)?(?: ([0-9]+))(?: ("+PATH_REGEXP + "))?$";
     public static final String BMA_API_REGEXP = "^BASIC_MERKLED_API" + EP_END_REGEXP;
     public static final String BMAS_API_REGEXP = "^BMAS" + EP_END_REGEXP;
     public static final String WS2P_API_REGEXP = "^(WS2P(?:TOR)?) ([a-f0-9]{7,8})" + EP_END_REGEXP;
@@ -63,7 +65,7 @@ public class Endpoints {
         // BMA API
         Matcher mather = bmaPattern.matcher(raw);
         if (mather.matches()) {
-            endpoint.api = EndpointApi.BASIC_MERKLED_API;
+            endpoint.api = EndpointApi.BASIC_MERKLED_API.name();
             parseDefaultFormatEndPoint(mather, endpoint, 1);
             return Optional.of(endpoint);
         }
@@ -71,7 +73,7 @@ public class Endpoints {
         // BMAS API
         mather = bmasPattern.matcher(raw);
         if (mather.matches()) {
-            endpoint.api = EndpointApi.BMAS;
+            endpoint.api = EndpointApi.BMAS.name();
             parseDefaultFormatEndPoint(mather, endpoint, 1);
             return Optional.of(endpoint);
         }
@@ -81,7 +83,7 @@ public class Endpoints {
         if (mather.matches()) {
             String api = mather.group(1);
             try {
-                endpoint.api = EndpointApi.valueOf(api);
+                endpoint.api = EndpointApi.valueOf(api).name();
                 endpoint.id = mather.group(2);
                 parseDefaultFormatEndPoint(mather, endpoint, 3);
                 return Optional.of(endpoint);
@@ -96,7 +98,7 @@ public class Endpoints {
         if (mather.matches()) {
             String api = mather.group(1);
             try {
-                endpoint.api = EndpointApi.valueOf(api);
+                endpoint.api = api;
                 parseDefaultFormatEndPoint(mather, endpoint, 2);
                 return Optional.of(endpoint);
             } catch(Exception e) {
@@ -120,9 +122,13 @@ public class Endpoints {
                     endpoint.ipv6 = word;
                 } else if ((i == matcher.groupCount() || i == matcher.groupCount() -1) && word.matches("^\\d+$")){
                     endpoint.port = Integer.parseInt(word);
-                } else if (i == matcher.groupCount() && word.startsWith("/")) {
-                    endpoint.path = word;
-                } else {
+                } else if (i == matcher.groupCount()) {
+                    // Path without starting slash must e accepted - fix issue https://git.duniter.org/clients/cesium-grp/cesium-plus-pod/-/issues/41
+                    if (word.startsWith("/") || word.matches(PATH_REGEXP)) {
+                        endpoint.path = word;
+                    }
+                }
+                else {
                     endpoint.dns = word;
                 }
             }
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/NetworkPeering.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/NetworkPeering.java
index 3568093d430d247b1a910760bdf965c74ed1dd6a..a8a6c8b2360913fea540b656ea44cce915c7b5ee 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/NetworkPeering.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/NetworkPeering.java
@@ -138,7 +138,7 @@ public class NetworkPeering implements Serializable {
     }
 
     public static class Endpoint implements Serializable {
-        public EndpointApi api;
+        public String api;
         public String dns;
         public String ipv4;
         public String ipv6;
@@ -147,11 +147,11 @@ public class NetworkPeering implements Serializable {
         public String path;
         public String raw;
 
-        public EndpointApi getApi() {
+        public String getApi() {
             return api;
         }
 
-        public void setApi(EndpointApi api) {
+        public void setApi(String api) {
             this.api = api;
         }
 
@@ -220,7 +220,7 @@ public class NetworkPeering implements Serializable {
             StringJoiner joiner = new StringJoiner(" ");
             // API
             if (api != null) {
-                joiner.add(api.name());
+                joiner.add(api);
             }
             // Id (use for WS2P)
             if (StringUtils.isNotBlank(id)) {
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
index 0cfb79eaef1a3f30cf0d371ad917f69a58a0923a..100812e6046e12bc31499568f3d78e71d7d51469 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
@@ -128,7 +128,7 @@ public class Peer implements LocalEntity<String>, Serializable {
         public Builder setEndpoint(NetworkPeering.Endpoint source) {
             Preconditions.checkNotNull(source);
             if (source.api != null) {
-               setApi(source.api.name());
+               setApi(source.api);
             }
             if (StringUtils.isNotBlank(source.id)) {
                 setEpId(source.id);
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java
index 5c4f28a8cae932a94eb68829ade62bd0377a0212..83655d0b94fd5ee8f6d83074dd759ddbb02a5eb7 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java
@@ -191,7 +191,7 @@ public final class Peers {
 
     public static NetworkPeering.Endpoint toBmaEndpoint(Peer ep) {
         NetworkPeering.Endpoint bmaEp = new NetworkPeering.Endpoint();
-        bmaEp.setApi(EndpointApi.valueOf(ep.getApi()));
+        bmaEp.setApi(ep.getApi());
         bmaEp.setId(ep.getEpId());
         bmaEp.setDns(ep.getDns());
         bmaEp.setPort(ep.getPort());
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteService.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteService.java
index bf7956eb283affe2a68da3c3220d510978f617c7..117ac8d03e942278e06f4f239d5edcf2d311a14e 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteService.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteService.java
@@ -44,7 +44,7 @@ public interface NetworkRemoteService extends Service {
 
     List<Ws2pHead> getWs2pHeads(Peer peer);
 
-    List<Peer> findPeers(Peer peer, String status, EndpointApi endpointApi, Integer currentBlockNumber, String currentBlockHash);
+    List<Peer> findPeers(Peer peer, String status, String endpointApi, Integer currentBlockNumber, String currentBlockHash);
 
     WebsocketClientEndpoint addPeerListener(String currencyId, WebsocketClientEndpoint.MessageListener listener, boolean autoReconnect);
 
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteServiceImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteServiceImpl.java
index 069388faf71664fe5582f8c68bc68d93e9fa7b32..a7a8816cb9b3cd63836b4ba6f9b67c1ee43db83b 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteServiceImpl.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/NetworkRemoteServiceImpl.java
@@ -126,7 +126,7 @@ public class NetworkRemoteServiceImpl extends BaseRemoteServiceImpl implements N
     }
 
     @Override
-    public List<Peer> findPeers(Peer peer, String status, EndpointApi endpointApi, Integer currentBlockNumber, String currentBlockHash) {
+    public List<Peer> findPeers(Peer peer, String status, String endpointApi, Integer currentBlockNumber, String currentBlockHash) {
         Preconditions.checkNotNull(peer);
 
         List<Peer> result = Lists.newArrayList();
@@ -142,7 +142,7 @@ public class NetworkRemoteServiceImpl extends BaseRemoteServiceImpl implements N
 
                 for (NetworkPeering.Endpoint endpoint : remotePeer.endpoints) {
 
-                    match = endpointApi == null || (endpoint != null && endpointApi == endpoint.api);
+                    match = endpointApi == null || (endpoint != null && endpointApi.equals(endpoint.api));
 
                     if (match && endpoint != null) {
                         Peer childPeer = Peer.newBuilder()
diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/EndpointsTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/EndpointsTest.java
index ec1da27f243fd4ed0ce1fe5282978cb1d83d8c71..56bbf6645b6247f8f932e4f5647848c5d8de1619 100644
--- a/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/EndpointsTest.java
+++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/EndpointsTest.java
@@ -11,7 +11,7 @@ public class EndpointsTest {
         // Parse valid endpoints
         NetworkPeering.Endpoint ep = Endpoints.parse("BASIC_MERKLED_API g1.duniter.fr 81.81.81.81 80").orElse(null);
         Assert.assertNotNull(ep);
-        Assert.assertEquals(EndpointApi.BASIC_MERKLED_API, ep.api);
+        Assert.assertEquals(EndpointApi.BASIC_MERKLED_API.name(), ep.api);
         Assert.assertEquals("g1.duniter.fr", ep.dns);
         Assert.assertEquals("81.81.81.81", ep.ipv4);
         Assert.assertNotNull(ep.port);
@@ -19,28 +19,37 @@ public class EndpointsTest {
         Assert.assertNull(ep.id);
         Assert.assertNull(ep.path);
 
-        ep = Endpoints.parse("BMAS g1.duniter.fr 443").orElse(null);
+        ep = Endpoints.parse("BMAS g1.duniter.org 443").orElse(null);
         Assert.assertNotNull(ep);
-        Assert.assertEquals(EndpointApi.BMAS, ep.api);
-        Assert.assertEquals("g1.duniter.fr", ep.dns);
+        Assert.assertEquals(EndpointApi.BMAS.name(), ep.api);
+        Assert.assertEquals("g1.duniter.org", ep.dns);
         Assert.assertNotNull(ep.port);
         Assert.assertEquals(443, ep.port.intValue());
         Assert.assertNull(ep.id);
         Assert.assertNull(ep.path);
 
-        ep = Endpoints.parse("WS2P fb17fcd4 g1.duniter.fr 443 /ws2p").orElse(null);
+        ep = Endpoints.parse("WS2P fb17fcd4 g1.duniter.org 443 /ws2p").orElse(null);
+        Assert.assertNotNull(ep);
+        Assert.assertNotNull("fb17fcd4", ep.id);
+        Assert.assertEquals("g1.duniter.org", ep.dns);
+        Assert.assertEquals(EndpointApi.WS2P.name(), ep.api);
+        Assert.assertNotNull(ep.port);
+        Assert.assertEquals(443, ep.port.intValue());
+        Assert.assertEquals("/ws2p", ep.path);
+
+        ep = Endpoints.parse("WS2P fb17fcd4 g1.duniter.org 443 ws2p").orElse(null);
         Assert.assertNotNull(ep);
         Assert.assertNotNull(ep.id);
-        Assert.assertNotNull(ep.path);
-        Assert.assertEquals(EndpointApi.WS2P, ep.api);
-        Assert.assertEquals("g1.duniter.fr", ep.dns);
+        Assert.assertEquals(EndpointApi.WS2P.name(), ep.api);
+        Assert.assertEquals("g1.duniter.org", ep.dns);
         Assert.assertNotNull(ep.port);
         Assert.assertEquals(443, ep.port.intValue());
+        Assert.assertEquals("ws2p", ep.path);
 
         // ws2pId on 7 characters
         ep = Endpoints.parse("WS2P 90e9b12 duniter.g1.1000i100.fr 443 /ws2p").orElse(null);
         Assert.assertNotNull(ep);
-        Assert.assertEquals(ep.api, EndpointApi.WS2P);
+        Assert.assertEquals(ep.api, EndpointApi.WS2P.name());
         Assert.assertNotNull(ep.id);
         Assert.assertNotNull(ep.path);
 
@@ -48,14 +57,14 @@ public class EndpointsTest {
         Assert.assertNotNull(ep);
         Assert.assertNotNull(ep.id);
         Assert.assertNull(ep.path);
-        Assert.assertEquals(EndpointApi.WS2PTOR, ep.api);
+        Assert.assertEquals(EndpointApi.WS2PTOR.name(), ep.api);
         Assert.assertEquals("3k2zovlpihbt3j3g.onion", ep.dns);
         Assert.assertNotNull(ep.port);
         Assert.assertEquals(20901, ep.port.intValue());
 
         ep = Endpoints.parse("GCHANGE_API data.gchange.fr 443").orElse(null);
         Assert.assertNotNull(ep);
-        Assert.assertEquals(ep.api, EndpointApi.GCHANGE_API);
+        Assert.assertEquals(ep.api, EndpointApi.GCHANGE_API.name());
         Assert.assertNull(ep.id);
         Assert.assertNull(ep.path);
 
@@ -69,9 +78,6 @@ public class EndpointsTest {
         ep = Endpoints.parse("WS2P R8t2sg7w g1.ambau.ovh 443").orElse(null);
         Assert.assertNull(ep);
 
-        // This must failed (missing path first '/')
-        ep = Endpoints.parse("WS2P 90e9b12 duniter.g1.1000i100.fr 443 ws2p").orElse(null);
-        Assert.assertNull(ep);
     }
 
 }
diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/NetworkPeeringTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/NetworkPeeringTest.java
index 6bac181a26d237d50a149cf8af138128d6948c02..926b375fbb81acd19fdde4e9a0895dd9ce6e627e 100644
--- a/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/NetworkPeeringTest.java
+++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/model/bma/NetworkPeeringTest.java
@@ -21,12 +21,12 @@ public class NetworkPeeringTest {
         peering.setStatus("UP");
 
         NetworkPeering.Endpoint epBma = new NetworkPeering.Endpoint();
-        epBma.setApi(EndpointApi.BASIC_MERKLED_API);
+        epBma.setApi(EndpointApi.BASIC_MERKLED_API.name());
         epBma.setDns("g1.duniter.fr");
         epBma.setPort(80);
 
         NetworkPeering.Endpoint epWs2p = new NetworkPeering.Endpoint();
-        epWs2p.setApi(EndpointApi.WS2P);
+        epWs2p.setApi(EndpointApi.WS2P.name());
         epWs2p.setDns("g1.duniter.fr");
         epWs2p.setPath("/ws2p");
         epWs2p.setId("fb17fcd4");
diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/NetworkRemoteServiceTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/NetworkRemoteServiceTest.java
index de4c8891bff095c8896c695cf92965f4803a7f0d..adabf28c2032a48e6e6420c4eb6aba4e33da8cb1 100644
--- a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/NetworkRemoteServiceTest.java
+++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/NetworkRemoteServiceTest.java
@@ -70,7 +70,7 @@ public class NetworkRemoteServiceTest {
 	@Test
 	public void findPeers() throws Exception {
 
-		List<Peer> result = service.findPeers(peer, null, EndpointApi.BASIC_MERKLED_API, null, null);
+		List<Peer> result = service.findPeers(peer, null, EndpointApi.BASIC_MERKLED_API.name(), null, null);
 
 		Assert.assertNotNull(result);
 		Assert.assertTrue(result.size() > 0);
@@ -94,9 +94,7 @@ public class NetworkRemoteServiceTest {
 		Assert.assertTrue(result.size() > 0);
 
 		// log
-		//result.stream().forEach(head ->
-		//		System.out.println(head.toString())
-		//);
+		result.stream().forEach(head -> log.debug(head.toString()));
 	}
 
 	/* -- internal methods */
diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/local/NetworkServiceTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/local/NetworkServiceTest.java
index 5bddbdba984eced626d7e742e1d7ecf3451e4500..4f004f55e4eaef3070a27adcd4287346e989fe22 100644
--- a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/local/NetworkServiceTest.java
+++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/local/NetworkServiceTest.java
@@ -59,6 +59,8 @@ public class NetworkServiceTest {
 
 		Assert.assertNotNull(peers);
 		Assert.assertTrue(peers.size() > 0);
+
+		peers.forEach(p -> log.debug(" Found peer: " + p.toString()));
 	}
 
 	/* -- internal methods */
diff --git a/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties b/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties
index 5d010a60aa627012851a0e62ba36d5233f756f9d..de6f268f00007ff207b88204433c68c0192e0f09 100644
--- a/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties
+++ b/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties
@@ -1,5 +1,5 @@
 duniter4j.node.host=g1-test.duniter.org
-duniter4j.node.port=443
+duniter4j.node.port=10900
 
 duniter4j.node.elasticsearch.host=localhost
 duniter4j.node.elasticsearch.port=9200
diff --git a/duniter4j-core-client/src/test/resources/log4j.properties b/duniter4j-core-client/src/test/resources/log4j.properties
index 8da8615b1a31f1d8bcbdf847dcde5b616f6930c6..6116de18fff8c9eeb0a69ef2fdcfff2bd23a52be 100644
--- a/duniter4j-core-client/src/test/resources/log4j.properties
+++ b/duniter4j-core-client/src/test/resources/log4j.properties
@@ -18,7 +18,7 @@ log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p %c - %m%n
 
 # duniter4j levels
 log4j.logger.org.duniter=INFO
-#log4j.logger.org.duniter.core.client.service=DEBUG
+log4j.logger.org.duniter.core.client.service=DEBUG
 #log4j.logger.org.duniter.core.client.service.bma=DEBUG
 log4j.logger.org.duniter.core.beans=WARN
 #log4j.logger.org.duniter.core.client.service=TRACE