diff --git a/e2e/src/api/specs/shared-link.e2e-spec.ts b/e2e/src/api/specs/shared-link.e2e-spec.ts
index 45c906578d..5da6765d20 100644
--- a/e2e/src/api/specs/shared-link.e2e-spec.ts
+++ b/e2e/src/api/specs/shared-link.e2e-spec.ts
@@ -89,7 +89,7 @@ describe('/shared-links', () => {
     await deleteUserAdmin({ id: user2.userId, userAdminDeleteDto: {} }, { headers: asBearerAuth(admin.accessToken) });
   });
 
-  describe('GET /share/${key}', () => {
+  describe('GET /share/:key', () => {
     it('should have correct asset count in meta tag for non-empty album', async () => {
       const resp = await request(shareUrl).get(`/${linkWithMetadata.key}`);
       expect(resp.status).toBe(200);
@@ -139,7 +139,10 @@ describe('/shared-links', () => {
       expect(body).toEqual(
         expect.arrayContaining([
           expect.objectContaining({ id: linkWithAlbum.id }),
-          expect.objectContaining({ id: linkWithAssets.id }),
+          expect.objectContaining({
+            id: linkWithAssets.id,
+            assets: expect.arrayContaining([expect.objectContaining({ id: asset1.id })]),
+          }),
           expect.objectContaining({ id: linkWithPassword.id }),
           expect.objectContaining({ id: linkWithMetadata.id }),
           expect.objectContaining({ id: linkWithoutMetadata.id }),
diff --git a/server/src/queries/shared.link.repository.sql b/server/src/queries/shared.link.repository.sql
index 1861ed86e4..e1f6af3383 100644
--- a/server/src/queries/shared.link.repository.sql
+++ b/server/src/queries/shared.link.repository.sql
@@ -100,13 +100,14 @@ order by
 -- SharedLinkRepository.getAll
 select distinct
   on ("shared_links"."createdAt") "shared_links".*,
+  to_json("assets") as "assets",
   to_json("album") as "album"
 from
   "shared_links"
   left join "shared_link__asset" on "shared_link__asset"."sharedLinksId" = "shared_links"."id"
   left join lateral (
     select
-      "assets".*
+      json_agg("assets") as "assets"
     from
       "assets"
     where
diff --git a/server/src/repositories/shared-link.repository.ts b/server/src/repositories/shared-link.repository.ts
index 6473100387..3ffae4f067 100644
--- a/server/src/repositories/shared-link.repository.ts
+++ b/server/src/repositories/shared-link.repository.ts
@@ -103,12 +103,13 @@ export class SharedLinkRepository implements ISharedLinkRepository {
         (eb) =>
           eb
             .selectFrom('assets')
+            .select((eb) => eb.fn.jsonAgg('assets').as('assets'))
             .whereRef('assets.id', '=', 'shared_link__asset.assetsId')
             .where('assets.deletedAt', 'is', null)
-            .selectAll('assets')
             .as('assets'),
         (join) => join.onTrue(),
       )
+      .select((eb) => eb.fn.toJson('assets').as('assets'))
       .leftJoinLateral(
         (eb) =>
           eb