diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts
index 35b61aff43aeae7953690e3cb46625071faa4d0b..dc9b74ea9107c40f69719813d4c62ba1d41c8ad1 100644
--- a/api/src/engine/connectors/exareme/main.connector.ts
+++ b/api/src/engine/connectors/exareme/main.connector.ts
@@ -3,10 +3,13 @@ import {
   BadRequestException,
   HttpException,
   HttpStatus,
+  Inject,
   Injectable,
 } from '@nestjs/common';
+import { REQUEST } from '@nestjs/core';
 import { Request } from 'express';
 import { firstValueFrom, map, Observable } from 'rxjs';
+import { ENGINE_MODULE_OPTIONS } from 'src/engine/engine.constants';
 import { IEngineOptions, IEngineService } from 'src/engine/engine.interfaces';
 import { Domain } from 'src/engine/models/domain.model';
 import { Algorithm } from 'src/engine/models/experiment/algorithm.model';
@@ -35,8 +38,9 @@ import { Pathology } from './interfaces/pathology.interface';
 @Injectable()
 export default class ExaremeService implements IEngineService {
   constructor(
-    private readonly options: IEngineOptions,
+    @Inject(ENGINE_MODULE_OPTIONS) private readonly options: IEngineOptions,
     private readonly httpService: HttpService,
+    @Inject(REQUEST) private readonly req: Request,
   ) {}
 
   async logout() {
@@ -158,11 +162,11 @@ export default class ExaremeService implements IEngineService {
       .pipe(map((response) => response.data));
   }
 
-  editActiveUser(request: Request): Observable<string> {
+  editActiveUser(): Observable<string> {
     const path = this.options.baseurl + 'activeUser/agreeNDA';
 
     return this.httpService
-      .post<string>(path, request.body)
+      .post<string>(path, this.req.body)
       .pipe(map((response) => response.data));
   }
 
@@ -180,43 +184,43 @@ export default class ExaremeService implements IEngineService {
     return this.httpService.delete(path).pipe(map((response) => response.data));
   }
 
-  editExperimentREST(uuid: string, request: Request): Observable<string> {
+  editExperimentREST(uuid: string): Observable<string> {
     const path = this.options.baseurl + `experiments/${uuid}`;
 
     return this.httpService
-      .patch(path, request.body)
+      .patch(path, this.req.body)
       .pipe(map((response) => response.data));
   }
 
-  startExperimentTransient(request: Request): Observable<string> {
+  startExperimentTransient(): Observable<string> {
     const path = this.options.baseurl + 'experiments/transient';
 
     return this.httpService
-      .post(path, request.body)
+      .post(path, this.req.body)
       .pipe(map((response) => response.data));
   }
 
-  startExperiment(request: Request): Observable<string> {
+  startExperiment(): Observable<string> {
     const path = this.options.baseurl + 'experiments';
 
     return this.httpService
-      .post(path, request.body)
+      .post(path, this.req.body)
       .pipe(map((response) => response.data));
   }
 
-  getExperiments(request: Request): Observable<string> {
+  getExperiments(): Observable<string> {
     const path = this.options.baseurl + 'experiments';
 
     return this.httpService
-      .get<string>(path, { params: request.query })
+      .get<string>(path, { params: this.req.query })
       .pipe(map((response) => response.data));
   }
 
-  getAlgorithmsREST(request: Request): Observable<string> {
+  getAlgorithmsREST(): Observable<string> {
     const path = this.options.baseurl + 'algorithms';
 
     return this.httpService
-      .get<string>(path, { params: request.query })
+      .get<string>(path, { params: this.req.query })
       .pipe(map((response) => response.data));
   }
 
diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts
index 266f1a28e4531edb1b3776a701ab2c3715197d95..d7f34d493e03ae0f08401baf9aab1b888851b9f9 100644
--- a/api/src/engine/engine.controller.ts
+++ b/api/src/engine/engine.controller.ts
@@ -6,10 +6,8 @@ import {
   Param,
   Patch,
   Post,
-  Req,
   UseInterceptors,
 } from '@nestjs/common';
-import { Request } from 'express';
 import { Observable } from 'rxjs';
 import { ENGINE_SERVICE } from './engine.constants';
 import { IEngineService } from './engine.interfaces';
@@ -23,13 +21,13 @@ export class EngineController {
   ) {}
 
   @Get('/algorithms')
-  getAlgorithms(@Req() request: Request): Observable<string> | string {
-    return this.engineService.getAlgorithmsREST(request);
+  getAlgorithms(): Observable<string> | string {
+    return this.engineService.getAlgorithmsREST();
   }
 
   @Get('/experiments')
-  getExperiments(@Req() request: Request): Observable<string> | string {
-    return this.engineService.getExperiments(request);
+  getExperiments(): Observable<string> | string {
+    return this.engineService.getExperiments();
   }
 
   @Get('/experiments/:uuid')
@@ -38,41 +36,33 @@ export class EngineController {
   }
 
   @Delete('/experiments/:uuid')
-  deleteExperiment(
-    @Param('uuid') uuid: string,
-    @Req() request: Request,
-  ): Observable<string> | string {
-    return this.engineService.deleteExperiment(uuid, request);
+  deleteExperiment(@Param('uuid') uuid: string): Observable<string> | string {
+    return this.engineService.deleteExperiment(uuid);
   }
 
   @Patch('/experiments/:uuid')
-  editExperiment(
-    @Param('uuid') uuid: string,
-    @Req() request: Request,
-  ): Observable<string> | string {
-    return this.engineService.editExperimentREST(uuid, request);
+  editExperiment(@Param('uuid') uuid: string): Observable<string> | string {
+    return this.engineService.editExperimentREST(uuid);
   }
 
   @Post('experiments/transient')
-  startExperimentTransient(
-    @Req() request: Request,
-  ): Observable<string> | string {
-    return this.engineService.startExperimentTransient(request);
+  startExperimentTransient(): Observable<string> | string {
+    return this.engineService.startExperimentTransient();
   }
 
   @Post('experiments')
-  startExperiment(@Req() request: Request): Observable<string> | string {
-    return this.engineService.startExperiment(request);
+  startExperiment(): Observable<string> | string {
+    return this.engineService.startExperiment();
   }
 
   @Get('activeUser')
-  getActiveUser(@Req() request: Request): Observable<string> | string {
-    return this.engineService.getActiveUser(request);
+  getActiveUser(): Observable<string> | string {
+    return this.engineService.getActiveUser();
   }
 
   @Post('activeUser/agreeNDA')
-  agreeNDA(@Req() request: Request): Observable<string> | string {
-    return this.engineService.editActiveUser(request);
+  agreeNDA(): Observable<string> | string {
+    return this.engineService.editActiveUser();
   }
 
   @Get('logout')
diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts
index 331ffe7fec9a53a3ed62e87b23283d0e8b393580..29e57f161a8dc2a69c747d415fa529b4c986002a 100644
--- a/api/src/engine/engine.interfaces.ts
+++ b/api/src/engine/engine.interfaces.ts
@@ -1,4 +1,3 @@
-import { Request } from 'express';
 import { Observable } from 'rxjs';
 import { Domain } from './models/domain.model';
 import { Algorithm } from './models/experiment/algorithm.model';
@@ -43,26 +42,23 @@ export interface IEngineService {
   getAlgorithms(): Promise<Algorithm[]> | Algorithm[];
 
   // Standard REST API call
-  getAlgorithmsREST(request: Request): Observable<string> | string;
+  getAlgorithmsREST(): Observable<string> | string;
 
-  getExperiments(request: Request): Observable<string> | string;
+  getExperiments(): Observable<string> | string;
 
   getExperimentREST(uuid: string): Observable<string> | string;
 
-  deleteExperiment(uuid: string, request: Request): Observable<string> | string;
+  deleteExperiment(uuid: string): Observable<string> | string;
 
-  editExperimentREST(
-    uuid: string,
-    request: Request,
-  ): Observable<string> | string;
+  editExperimentREST(uuid: string): Observable<string> | string;
 
-  startExperimentTransient(request: Request): Observable<string> | string;
+  startExperimentTransient(): Observable<string> | string;
 
-  startExperiment(request: Request): Observable<string> | string;
+  startExperiment(): Observable<string> | string;
 
-  getActiveUser(request: Request): Observable<string> | string;
+  getActiveUser(): Observable<string> | string;
 
-  editActiveUser(request: Request): Observable<string> | string;
+  editActiveUser(): Observable<string> | string;
 
   logout(): void;
 }
diff --git a/api/src/engine/engine.module.ts b/api/src/engine/engine.module.ts
index 182cecf3e7d8239e734071c07a797dcaefb86961..48442588a8d1a2c5120e99fa15d60e7da3c29739 100644
--- a/api/src/engine/engine.module.ts
+++ b/api/src/engine/engine.module.ts
@@ -1,5 +1,6 @@
 import { HttpModule, HttpService } from '@nestjs/axios';
 import { DynamicModule, Global, Logger, Module } from '@nestjs/common';
+import { REQUEST } from '@nestjs/core';
 import { GraphQLModule } from '@nestjs/graphql';
 import { join } from 'path';
 import { ENGINE_MODULE_OPTIONS, ENGINE_SERVICE } from './engine.constants';
@@ -20,10 +21,10 @@ export class EngineModule {
 
     const engineProvider = {
       provide: ENGINE_SERVICE,
-      useFactory: async (httpService: HttpService) => {
-        return await this.createEngineConnection(options, httpService);
+      useFactory: async (httpService: HttpService, req: Request) => {
+        return await this.createEngineConnection(options, httpService, req);
       },
-      inject: [HttpService],
+      inject: [HttpService, REQUEST],
     };
 
     return {
@@ -43,14 +44,13 @@ export class EngineModule {
   private static async createEngineConnection(
     options: IEngineOptions,
     httpService: HttpService,
+    req: Request,
   ): Promise<IEngineService> {
     try {
       const service = await import(
         `./connectors/${options.type}/main.connector`
       );
-      const engine = new service.default(options, httpService);
-
-      this.logger.log(`The connector '${options.type}' has been loaded`);
+      const engine = new service.default(options, httpService, req);
 
       return engine;
     } catch {