diff --git a/duniterpy/api/client.py b/duniterpy/api/client.py
index d3864f9a0f4981178031f2a306e58f0051bdb974..072d71ddf68de5cd8d6607a0c5a1c04cc50a99bb 100644
--- a/duniterpy/api/client.py
+++ b/duniterpy/api/client.py
@@ -232,11 +232,14 @@ class API:
                 api_path=self.connection_handler.path,
             )
         else:
-            url = "{scheme}://{server}:{port}/".format(
+            url = "{scheme}://{server}:{port}".format(
                 scheme=scheme, server=server, port=port
             )
 
-        return url + path
+        if len(path.strip()) > 0:
+            return f"{url}/{path}"
+
+        return url
 
     async def requests_get(self, path: str, **kwargs: Any) -> ClientResponse:
         """
diff --git a/tests/api/bma/test_bma.py b/tests/api/bma/test_bma.py
index 85e2bcbdb60059adff53f53a4180951eb873e6b1..41f54d9a75554128fa9403257cb03490d642c1d5 100644
--- a/tests/api/bma/test_bma.py
+++ b/tests/api/bma/test_bma.py
@@ -21,7 +21,7 @@ import unittest
 import aiohttp
 
 from duniterpy.api.client import API, parse_error
-from duniterpy.api.endpoint import BMAEndpoint
+from duniterpy.api.endpoint import BMAEndpoint, SecuredBMAEndpoint, GVAEndpoint
 
 
 class TestBmaApi(unittest.TestCase):
@@ -53,6 +53,42 @@ class TestBmaApi(unittest.TestCase):
 
         self.loop.run_until_complete(go())
 
+    def test_reverse_url_complete_bmas(self):
+        async def go():
+            endpoint = SecuredBMAEndpoint(
+                "test.com",
+                "124.2.2.1",
+                "2001:0db8:0000:85a3:0000:0000:ac1f:8001 ",
+                9092,
+                "api_path",
+            )
+            session = aiohttp.ClientSession()
+            api = API(endpoint.conn_handler(session))
+            self.assertEqual(
+                api.reverse_url("http", "/test/url"),
+                "http://test.com:9092/api_path/test/url",
+            )
+            await session.close()
+
+        self.loop.run_until_complete(go())
+
+    def test_reverse_url_complete_gva(self):
+        async def go():
+            endpoint = GVAEndpoint(
+                "S",
+                "test.com",
+                "124.2.2.1",
+                "2001:0db8:0000:85a3:0000:0000:ac1f:8001 ",
+                9092,
+                "gva",
+            )
+            session = aiohttp.ClientSession()
+            api = API(endpoint.conn_handler(session))
+            self.assertEqual(api.reverse_url("https", ""), "https://test.com:9092/gva")
+            await session.close()
+
+        self.loop.run_until_complete(go())
+
     def test_reverse_url_only_ipv4(self):
         async def go():
             endpoint = BMAEndpoint("", "124.2.2.1", "", 9092)