diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts
index 4df8aa14bf1fda0bdec3a4d21c98cc79277cdd83..462b41003fe536e8976563b11b60e52e562361a5 100644
--- a/api/src/engine/connectors/datashield/main.connector.ts
+++ b/api/src/engine/connectors/datashield/main.connector.ts
@@ -1,5 +1,5 @@
-import { Observable } from 'rxjs';
-import { IEngineService } from 'src/engine/engine.interfaces';
+import { firstValueFrom, Observable } from 'rxjs';
+import { IEngineOptions, IEngineService } from 'src/engine/engine.interfaces';
 import { Domain } from 'src/engine/models/domain.model';
 import { ExperimentCreateInput } from 'src/engine/models/experiment/input/experiment-create.input';
 import {
@@ -9,8 +9,20 @@ import {
 import { ListExperiments } from 'src/engine/models/experiment/list-experiments.model';
 import { ExperimentEditInput } from 'src/engine/models/experiment/input/experiment-edit.input';
 import { Algorithm } from 'src/engine/models/experiment/algorithm.model';
+import { ENGINE_MODULE_OPTIONS } from 'src/engine/engine.constants';
+import { Inject } from '@nestjs/common';
+import { HttpService } from '@nestjs/axios';
+import { REQUEST } from '@nestjs/core';
+import { Request } from 'express';
+import { transformToDomains } from './transformations';
 
 export default class DataShieldService implements IEngineService {
+  constructor(
+    @Inject(ENGINE_MODULE_OPTIONS) private readonly options: IEngineOptions,
+    private readonly httpService: HttpService,
+    @Inject(REQUEST) private readonly req: Request,
+  ) {}
+
   logout(): void {
     throw new Error('Method not implemented.');
   }
@@ -50,12 +62,26 @@ export default class DataShieldService implements IEngineService {
     throw new Error('Method not implemented.');
   }
 
-  getDomains(): Domain[] {
-    throw new Error('Method not implemented.');
+  async getDomains(): Promise<Domain[]> {
+    const path = this.options.baseurl + 'start';
+
+    const data = await firstValueFrom(
+      this.httpService.get(path, {
+        auth: { username: 'guest', password: 'guest123' },
+      }),
+    );
+    return [transformToDomains.evaluate(data.data)];
   }
 
   getActiveUser(): string {
-    throw new Error('Method not implemented.');
+    const dummyUser = {
+      username: 'anonymous',
+      subjectId: 'anonymousId',
+      fullname: 'anonymous',
+      email: 'anonymous@anonymous.com',
+      agreeNDA: true,
+    };
+    return JSON.stringify(dummyUser);
   }
 
   editActiveUser(): Observable<string> {
@@ -83,10 +109,10 @@ export default class DataShieldService implements IEngineService {
   }
 
   getExperiments(): string {
-    throw new Error('Method not implemented.');
+    return '[]';
   }
 
   getAlgorithmsREST(): string {
-    throw new Error('Method not implemented.');
+    return '[]';
   }
 }
diff --git a/api/src/engine/connectors/datashield/transformations.ts b/api/src/engine/connectors/datashield/transformations.ts
new file mode 100644
index 0000000000000000000000000000000000000000..77302eb169ec09ceca138657252d428364dde62c
--- /dev/null
+++ b/api/src/engine/connectors/datashield/transformations.ts
@@ -0,0 +1,28 @@
+// This file contains all transformation queries for JSONata
+// see : https://docs.jsonata.org/
+
+import * as jsonata from 'jsonata';
+
+export const transformToDomains = jsonata(`
+{
+    "id": "sophia",
+    "datasets": datasets.{
+        "id": $.id[0],
+        "label": $.label[0]
+    },
+    "rootGroup": {
+        "id": "rootGroup",
+        "label": "Root group",
+        "groups": groups.id
+    },
+    "groups": groups.{
+        "id": $.id[0],
+        "label": $.label[0],
+        "variables": $.variables
+    },
+    "variables": $distinct(groups.variables).{
+        "id": $,
+        "label": $
+    }
+}
+`);