diff --git a/src/nbi/service/tfs_api/Resources.py b/src/nbi/service/tfs_api/Resources.py
index ab608f2d746a2faffc819f25cc026ce9b949aff7..294a06e6e27aba3c1fbb8fe7eff27c1c22169a86 100644
--- a/src/nbi/service/tfs_api/Resources.py
+++ b/src/nbi/service/tfs_api/Resources.py
@@ -55,10 +55,10 @@ class Contexts(_Resource):
         json_requests = request.get_json()
         if 'contexts' in json_requests:
             json_requests = json_requests['contexts']
-        return [
-            format_grpc_to_json(self.context_client.SetContext(grpc_context(context)))
+        return jsonify([
+            grpc_message_to_json(self.context_client.SetContext(grpc_context(context)))
             for context in json_requests
-        ]
+        ])
 
 class Context(_Resource):
     def get(self, context_uuid : str):
@@ -157,10 +157,10 @@ class Topologies(_Resource):
         for topology in json_requests:
             if context_uuid != topology['topology_id']['context_id']['context_uuid']['uuid']:
                 raise BadRequest('Mismatching context_uuid')
-        return [
-            format_grpc_to_json(self.context_client.SetTopology(grpc_topology(**topology)))
+        return jsonify([
+            grpc_message_to_json(self.context_client.SetTopology(grpc_topology(topology)))
             for topology in json_requests
-        ]
+        ])
 
 class Topology(_Resource):
     def get(self, context_uuid : str, topology_uuid : str):
@@ -194,13 +194,15 @@ class Services(_Resource):
         json_requests = request.get_json()
         if 'services' in json_requests:
             json_requests = json_requests['services']
+        if isinstance(json_requests, dict):
+            json_requests = [json_requests]
         for service in json_requests:
             if context_uuid != service['service_id']['context_id']['context_uuid']['uuid']:
                 raise BadRequest('Mismatching context_uuid')
-        return [
-            format_grpc_to_json(self.service_client.CreateService(grpc_service(**service)))
+        return jsonify([
+            grpc_message_to_json(self.service_client.CreateService(grpc_service(service)))
             for service in json_requests
-        ]
+        ])
 
 class Service(_Resource):
     def get(self, context_uuid : str, service_uuid : str):
@@ -232,10 +234,10 @@ class Slices(_Resource):
         for slice_ in json_requests:
             if context_uuid != slice_['slice_id']['context_id']['context_uuid']['uuid']:
                 raise BadRequest('Mismatching context_uuid')
-        return [
-            format_grpc_to_json(self.slice_client.CreateSlice(grpc_slice(**slice_)))
+        return jsonify([
+            grpc_message_to_json(self.slice_client.CreateSlice(grpc_slice(slice_)))
             for slice_ in json_requests
-        ]
+        ])
 
 class Slice(_Resource):
     def get(self, context_uuid : str, slice_uuid : str):
@@ -264,10 +266,10 @@ class Devices(_Resource):
         json_requests = request.get_json()
         if 'devices' in json_requests:
             json_requests = json_requests['devices']
-        return [
-            format_grpc_to_json(self.device_client.AddDevice(grpc_device(device)))
+        return jsonify([
+            grpc_message_to_json(self.device_client.AddDevice(grpc_device(device)))
             for device in json_requests
-        ]
+        ])
 
 class Device(_Resource):
     def get(self, device_uuid : str):
@@ -294,10 +296,10 @@ class Links(_Resource):
         json_requests = request.get_json()
         if 'links' in json_requests:
             json_requests = json_requests['links']
-        return [
-            format_grpc_to_json(self.context_client.SetLink(grpc_link(link)))
+        return jsonify([
+            grpc_message_to_json(self.context_client.SetLink(grpc_link(link)))
             for link in json_requests
-        ]
+        ])
 
 class Link(_Resource):
     def get(self, link_uuid : str):