diff --git a/src/core/models/links.py b/src/core/models/links.py
index b349a28fe9e7688104f4af556f6c63ffd6f35239..65ded766dd94077ea2e2c23e69fe18d70a3f5a38 100644
--- a/src/core/models/links.py
+++ b/src/core/models/links.py
@@ -5,7 +5,7 @@ from django.core.validators import URLValidator
 from django.db import models
 from django.utils.translation import gettext_lazy as _
 
-from core.utils import resolve_link
+from core.utils import resolve_internal_url, resolve_link
 
 
 class Link(models.Model):
@@ -67,7 +67,7 @@ class Link(models.Model):
             'type': self.link_type,
             'name': self.name,
             'uri': self.link,
-            'url': self.link,
+            'url': resolve_internal_url(self.link),
         }
 
     def __str__(self) -> str:
diff --git a/src/core/models/rooms.py b/src/core/models/rooms.py
index cd783c94a17d384867d3469171009f9d41ee4a49..cef75f46a77b2b89f46a675ac1a6e2c22217d303 100644
--- a/src/core/models/rooms.py
+++ b/src/core/models/rooms.py
@@ -511,7 +511,7 @@ class RoomLink(models.Model):
             'type': self.link_type,
             'name': self.name,
             'uri': self.link,
-            'url': self.link,  # TODO rendered URL without local hub specific prefixes
+            'url': resolve_internal_url(self.link),
         }
 
     def __str__(self):