diff --git a/inventory_provider/routes/jobs.py b/inventory_provider/routes/jobs.py
index fc07171113483ca7af59850b8af23ec98dcf1f1b..ac117e84e5057202bbc46f188a09e93efeef4cd8 100644
--- a/inventory_provider/routes/jobs.py
+++ b/inventory_provider/routes/jobs.py
@@ -1,10 +1,14 @@
+import json
+import logging
 from distutils.util import strtobool
+import jsonschema
 from flask import Blueprint, current_app, jsonify, Response, request
 from inventory_provider.tasks import worker
 from inventory_provider.routes import common
 from inventory_provider.tasks.common import get_current_redis, get_latch
 
 routes = Blueprint("inventory-data-job-routes", __name__)
+logger = logging.getLogger(__name__)
 
 
 @routes.after_request
@@ -65,3 +69,45 @@ def check_update_status():
 
     task_id = task_id.decode('utf-8')
     return jsonify(list(worker.check_task_status(task_id)))
+
+
+LOG_ENTRY_SCHEMA = {
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "type": "object",
+    "properties": {
+        "uuid": {"type": "string"},
+        "type": {"type": "string"},
+        "clock": {"type": "integer"}
+    },
+    "required": ["uuid", "type"],
+    "additionalProperties": True
+}
+
+
+@routes.route("log", methods=['GET', 'POST'])
+@common.require_accepts_json
+def load_task_log():
+
+    tasks = {}
+    # r = common.get_current_redis()
+    r = common.get_next_redis()
+
+    for k in r.scan_iter('joblog:*'):
+        value = r.get(k)
+        if not value:
+            logger.error(f'no data for log entry: {k.decode("utf-8")}')
+            continue
+        try:
+            value = json.loads(value.decode('utf-8'))
+            jsonschema.validate(value, LOG_ENTRY_SCHEMA)
+        except (json.JSONDecodeError, jsonschema.ValidationError):
+            logger.exception('error decoding entry for {k.decode("utf-8")}')
+            continue
+
+        info = tasks.setdefault(value['uuid'], {})
+        if value['type'] in ['task-info', 'task-warning', 'task-error']:
+            info.setdefault(value['type'], []).append(value)
+        else:
+            info[value['type']] = value
+
+    return jsonify(tasks)