diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py
index 39e940a25b43b03ff194857aeb49b772f2819441..26fcb4785cf0e2ed4d01c88d3d50ff23138b320d 100644
--- a/inventory_provider/routes/poller.py
+++ b/inventory_provider/routes/poller.py
@@ -1278,8 +1278,7 @@ def get_service_types():
     return Response(service_types, mimetype='application/json')
 
 
-
-@routes.route("/gws/direct-config", methods=['GET', 'POST'])
+@routes.route('/gws/direct-config', methods=['GET', 'POST'])
 def gws_direct_config():
     """
     Handler for `/poller/gws/direct-config` which returns
@@ -1320,9 +1319,9 @@ def gws_direct_config():
         elems = ['<tr>']
         for name in _columns:
             if header:
-                elems.append(f"<td>{counter['name']}</td>")
-            else:
                 elems.append(f'<th>{name}</th>')
+            else:
+                elems.append(f'<td>{counter[name]}</td>')
         elems.append('</tr>')
         return ''.join(elems)
 
@@ -1343,7 +1342,7 @@ def gws_direct_config():
 
     elems = ['<html>', '<body>', '<table>']
     elems.append(_to_row(None, header=True))
-    elems += map(_to_row, _counters)
+    elems += map(_to_row, _counters())
     elems += ['</table>', '</body>', '</html>']
 
     return Response(
diff --git a/test/test_general_poller_routes.py b/test/test_general_poller_routes.py
index 571875bbeb6b0bb40c0ebf5727fd885fa5df57f3..26e9a4c646790b8c7ec86acdf1a941c36e440750 100644
--- a/test/test_general_poller_routes.py
+++ b/test/test_general_poller_routes.py
@@ -4,7 +4,6 @@ import pytest
 from inventory_provider.routes import poller
 
 DEFAULT_REQUEST_HEADERS = {
-    # 'Content-type': 'application/json',
     'Accept': ['application/json']
 }
 
@@ -315,3 +314,27 @@ def test_description_dashboard_parsing(interface, dashboard_info):
     updated = poller._get_dashboard_data(interface)
     info = updated['dashboard_info']
     assert info == dashboard_info
+
+
+def test_gws_config_json(client):
+    rv = client.get(
+        '/poller/gws/direct-config',
+        headers={'Accept': ['application/json']})
+    assert rv.status_code == 200
+    assert rv.is_json
+    response_data = json.loads(rv.data.decode('utf-8'))
+    # just a sanity check, no validation
+    # ... for now, this isn't an important interface
+    assert response_data
+
+
+def test_gws_config_html(client):
+    rv = client.get(
+        '/poller/gws/direct-config?format=html',
+        headers={'Accept': ['text/html']})
+    assert rv.status_code == 200
+    response_data = rv.data.decode('utf-8')
+    # just a sanity check, no validation
+    # ... for now, this isn't an important interface
+    assert response_data.startswith('<html>')
+    assert response_data.endswith('</html>')