diff --git a/python/tools/http_server.py b/python/tools/http_server.py
index 3d450dcdc456c93d4101f82daae8a662b09c6cf5..0498eff3220f0d2e5d1a70f8132bb74647843759 100755
--- a/python/tools/http_server.py
+++ b/python/tools/http_server.py
@@ -42,13 +42,22 @@ class DhtServer(resource.Resource):
     def render_POST(self, req):
         uri = req.uri[1:]
         data = req.args[b'data'][0] if b'data' in req.args else None
+        user_type = req.args[b'user_type'][0].decode() if b'user_type' in req.args else ""
+        try:
+            vid = int(req.args[b'id'][0].decode()) if b'id' in req.args else 0
+        except ValueError:
+            vid = 0
         if not data and b'base64' in req.args:
             data = base64.b64decode(req.args[b'base64'][0])
         h = dht.InfoHash(uri) if len(uri) == 40 else dht.InfoHash.get(uri.decode())
         print('POST', h, data)
         req.setHeader(b"content-type", b"application/json")
         if data:
-            self.node.put(h, dht.Value(data))
+            v = dht.Value(data)
+            if vid != 0:
+                v.id = vid
+            v.user_type = user_type
+            self.node.put(h, v)
             return json.dumps({'success':True}).encode()
         else:
             req.setResponseCode(400)