diff --git a/api-doc/reference/Admin-API.v1.yaml b/api-doc/reference/Admin-API.v1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2065345f5b46c6b7de2d57a20c74c7fba81bda20
--- /dev/null
+++ b/api-doc/reference/Admin-API.v1.yaml
@@ -0,0 +1,81 @@
+openapi: 3.0.0
+info:
+  title: Admin API
+  version: '1.0'
+servers:
+  - url: 'http://localhost:8080'
+paths:
+  /api/admin/device:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-admin-device
+    put:
+      summary: ''
+      operationId: put-api-admin-device
+      responses:
+        '200':
+          description: OK
+    delete:
+      summary: ''
+      operationId: delete-api-admin-device
+      responses:
+        '200':
+          description: OK
+  /api/admin/devices:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-admin-devices
+  /api/admin/directory/entry:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-admin-directory-entry
+    put:
+      summary: ''
+      operationId: put-api-admin-directory-entry
+      responses:
+        '200':
+          description: OK
+    post:
+      summary: ''
+      operationId: post-api-admin-directory-entry
+      responses:
+        '200':
+          description: OK
+  /api/admin/user:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-admin-user
+    post:
+      summary: ''
+      operationId: post-api-admin-user
+      responses:
+        '200':
+          description: OK
+    delete:
+      summary: ''
+      operationId: delete-api-admin-user
+      responses:
+        '200':
+          description: OK
+    put:
+      summary: ''
+      operationId: put-api-admin-user
+      responses:
+        '200':
+          description: OK
+  /api/admin/users:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-admin-users
+components:
+  schemas: {}
diff --git a/api-doc/reference/Install-API.v1.yaml b/api-doc/reference/Install-API.v1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6427c94b8bfe999db84a8eb63bd80b06f7c47a4e
--- /dev/null
+++ b/api-doc/reference/Install-API.v1.yaml
@@ -0,0 +1,33 @@
+openapi: 3.0.0
+info:
+  title: Install API
+  version: '1.0'
+servers:
+  - url: 'http://localhost:3000'
+paths:
+  /api/install/auth:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-install-auth
+  /api/install/ca:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-install-ca
+  /api/install/settings:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-install-settings
+  /api/install/start:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-install-start
+components:
+  schemas: {}
diff --git a/api-doc/reference/Nameserver-API.v1.yaml b/api-doc/reference/Nameserver-API.v1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1b754e9c81733283d84f3e540207c9f6c567c42c
--- /dev/null
+++ b/api-doc/reference/Nameserver-API.v1.yaml
@@ -0,0 +1,33 @@
+openapi: 3.0.0
+info:
+  title: Nameserver API
+  version: '1.0'
+servers:
+  - url: 'http://localhost:8080'
+paths:
+  '/api/nameserver/addr/{addr}':
+    parameters:
+      - schema:
+          type: string
+        name: addr
+        in: path
+        required: true
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-nameserver-addr-addr
+  '/api/nameserver/name/{name}':
+    parameters:
+      - schema:
+          type: string
+        name: name
+        in: path
+        required: true
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-nameserver-name-name
+components:
+  schemas: {}
diff --git a/api-doc/reference/Security-API.v1.yaml b/api-doc/reference/Security-API.v1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9c0239ade852b977835c69d2ecf6c7c61951154c
--- /dev/null
+++ b/api-doc/reference/Security-API.v1.yaml
@@ -0,0 +1,16 @@
+openapi: 3.0.0
+info:
+  title: Security API
+  version: '1.0'
+servers:
+  - url: 'http://localhost:8080'
+paths:
+  /api/auth/login:
+    post:
+      summary: ''
+      operationId: post-api-auth-login
+      responses:
+        '200':
+          description: OK
+components:
+  schemas: {}
diff --git a/api-doc/reference/User-API.v1.yaml b/api-doc/reference/User-API.v1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..347dd6ff7598a988432405a9b5c336c37b6579e0
--- /dev/null
+++ b/api-doc/reference/User-API.v1.yaml
@@ -0,0 +1,62 @@
+openapi: 3.0.0
+info:
+  title: User API
+  version: '1.0'
+servers:
+  - url: 'http://localhost:8080'
+paths:
+  /api/auth/contacts:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-contacts
+  '/api/auth/device/{deviceId}':
+    parameters:
+      - schema:
+          type: string
+        name: deviceId
+        in: path
+        required: true
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-device-deviceId
+  /api/auth/devices:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-devices
+  /api/auth/directories:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-directories
+  /api/auth/directory/entry:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-directory-entry
+  /api/auth/directory/search:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-directory-search
+  /api/auth/user:
+    get:
+      summary: Your GET endpoint
+      tags: []
+      responses: {}
+      operationId: get-api-auth-user
+components:
+  schemas: {}
+  securitySchemes:
+    API Key - 1:
+      name: API Key
+      type: apiKey
+      in: query
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
index 898b7fc10ed09cbbf36b1b6a1ea5beee90c22790..622956d68d5e17e18b40786032a5005dcfa15494 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
@@ -45,7 +45,7 @@ public class DeviceServlet extends HttpServlet {
     @Override
     protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         String username = req.getAttribute("username").toString();
-        String deviceId = req.getParameter("deviceId");
+        String deviceId = req.getPathInfo().replace("/","");
         String deviceName = req.getParameter("deviceName");
         StatementList update = new StatementList();
         StatementElement st0 = new StatementElement("deviceName","=",deviceName,"");
@@ -61,8 +61,8 @@ public class DeviceServlet extends HttpServlet {
 
     @Override
     protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        super.doDelete(req, resp);
-        DeviceRevocationResponse devResponse = RevokeDeviceFlow.revokeDevice(req.getAttribute("username").toString(),req.getParameter("deviceId"));
+        String deviceId = req.getPathInfo().replace("/","");
+        DeviceRevocationResponse devResponse = RevokeDeviceFlow.revokeDevice(req.getAttribute("username").toString(),deviceId);
         if(devResponse != null) resp.getOutputStream().write(JsonStream.serialize(devResponse).getBytes());
         else resp.sendError(500,"An exception has occurred while trying to revoke a device!");
     }