diff --git a/src/providers/views.py b/src/providers/views.py
index a8d233f84f08db96458178e7439ab5960ae70e0e..cd3d1408805e8100d746ce419cbe081e095c8bd1 100644
--- a/src/providers/views.py
+++ b/src/providers/views.py
@@ -367,6 +367,20 @@ def get_system_statements(collection, providers=[]):
     return collection.find(system_statement_query)
 
 
+def replace_provider_id(statement, providers):
+    if statement.get("actor", {}).get("mbox", "").startswith("system:"):
+        provider_id = int((statement.get("actor", {}).get("mbox", "").split("system:"))[1])
+        provider = next((x for x in providers if x.id == provider_id), None)
+        if provider:
+            statement["actor"]["mbox"] = "system:" + provider.name
+        else:
+            # fallback - return unmodified statement
+            return statement
+    else:
+        return statement
+
+
+
 class GetProviderData(APIView):
     """
     Endpoint that allows an analytics engine to obtain provider statements from the lrs.
@@ -477,7 +491,7 @@ class GetProviderData(APIView):
             cursor = collection.find(query).limit(page_size)
             data = {
                 "verbs": list(set(active_verbs)),
-                "statements": list(cursor),
+                "statements": list(map(replace_provider_id, list(cursor))),
                 "page_size": page_size,
             }