diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts
index cfa03be24607f07f1713ddcff4f5c3b0d8a1d040..1cdbb509c93a78794235c371c6fb3a62076b4792 100644
--- a/api/src/engine/connectors/datashield/main.connector.ts
+++ b/api/src/engine/connectors/datashield/main.connector.ts
@@ -1,14 +1,15 @@
 import { Observable } from 'rxjs';
 import { IEngineService } from 'src/engine/engine.interfaces';
 import { Domain } from 'src/engine/models/domain.model';
-import { TransientCreateInput } from 'src/engine/models/transient/transient-create.input';
-import { Transient } from 'src/engine/models/transient/transient.model';
+import { ExperimentCreateInput } from 'src/engine/models/experiment/experiment-create.input';
+import { Experiment } from 'src/engine/models/experiment/experiment.model';
 
 export default class DataShieldService implements IEngineService {
-  createTransient(data: TransientCreateInput): Promise<Transient> | Transient {
+  createTransient(
+    data: ExperimentCreateInput,
+  ): Experiment | Promise<Experiment> {
     throw new Error('Method not implemented.');
   }
-
   getDomains(): Domain[] {
     throw new Error('Method not implemented.');
   }
diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts
index 5a779207338a6d115adcad5142ff1e8a81967953..ba948ad8e870efd9d4e0c326fca02949d43234c3 100644
--- a/api/src/engine/connectors/exareme/converters.ts
+++ b/api/src/engine/connectors/exareme/converters.ts
@@ -4,9 +4,9 @@ import { Variable } from 'src/engine/models/variable.model';
 import { Hierarchy } from './interfaces/hierarchy.interface';
 import { VariableEntity } from './interfaces/variable-entity.interface';
 import { Entity } from './interfaces/entity.interface';
-import { TransientCreateInput } from 'src/engine/models/transient/transient-create.input';
+import { ExperimentCreateInput } from 'src/engine/models/experiment/experiment-create.input';
 import { TransientDataResult } from './interfaces/transient/transient-data-result.interface';
-import { Transient } from 'src/engine/models/transient/transient.model';
+import { Experiment } from 'src/engine/models/experiment/experiment.model';
 import { MetaData } from 'src/engine/models/result/common/metadata.model';
 import { TableResult } from 'src/engine/models/result/table-result.model';
 import { Dictionary } from 'src/common/interfaces/utilities.interface';
@@ -40,7 +40,7 @@ export const dataToVariable = (data: VariableEntity): Variable => {
   };
 };
 
-export const transientInputToData = (data: TransientCreateInput) => {
+export const experimentInputToData = (data: ExperimentCreateInput) => {
   return {
     algorithm: {
       parameters: [
@@ -62,9 +62,9 @@ export const transientInputToData = (data: TransientCreateInput) => {
         },
       ],
       type: 'string',
-      name: 'DESCRIPTIVE_STATS',
+      name: data.algorithm,
     },
-    name: 'Descriptive statistics',
+    name: data.name,
   };
 };
 
@@ -80,7 +80,7 @@ const dictToTable = (dict: Dictionary<string[]>, rows: number): string[][] => {
   });
 };
 
-export const dataToTransient = (data: TransientDataResult): Transient => {
+export const dataToTransient = (data: TransientDataResult): Experiment => {
   const result = data.result[0];
   const tables = Object.keys(result.data.single).map((varKey): TableResult => {
     const variable = result.data.single[varKey];
@@ -116,6 +116,7 @@ export const dataToTransient = (data: TransientDataResult): Transient => {
       data: dictToTable(rows, count),
       metadatas: domains,
       name: varKey,
+      groupBy: 'single',
     };
   });
 
diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts
index a4ecf13e8be50a1e06aafa1a83cd714f916d3254..d9a772d3d26fa469b3ee684d4061064767f1a912 100644
--- a/api/src/engine/connectors/exareme/main.connector.ts
+++ b/api/src/engine/connectors/exareme/main.connector.ts
@@ -5,15 +5,15 @@ import { firstValueFrom, map, Observable } from 'rxjs';
 import { IEngineOptions, IEngineService } from 'src/engine/engine.interfaces';
 import { Domain } from 'src/engine/models/domain.model';
 import { Group } from 'src/engine/models/group.model';
-import { TransientCreateInput } from 'src/engine/models/transient/transient-create.input';
-import { Transient } from 'src/engine/models/transient/transient.model';
+import { ExperimentCreateInput } from 'src/engine/models/experiment/experiment-create.input';
+import { Experiment } from 'src/engine/models/experiment/experiment.model';
 import { Variable } from 'src/engine/models/variable.model';
 import {
   dataToCategory,
   dataToGroup,
   dataToTransient,
   dataToVariable,
-  transientInputToData,
+  experimentInputToData,
 } from './converters';
 import { Hierarchy } from './interfaces/hierarchy.interface';
 import { Pathology } from './interfaces/pathology.interface';
@@ -25,8 +25,8 @@ export default class ExaremeService implements IEngineService {
     private readonly httpService: HttpService,
   ) {}
 
-  async createTransient(data: TransientCreateInput): Promise<Transient> {
-    const form = transientInputToData(data);
+  async createTransient(data: ExperimentCreateInput): Promise<Experiment> {
+    const form = experimentInputToData(data);
 
     const path = this.options.baseurl + 'experiments/transient';
 
@@ -40,7 +40,6 @@ export default class ExaremeService implements IEngineService {
                 ppmi: {
                   data: {
                     std: 1.2048783713787277,
-                    max: 15.0815,
                     min: 7.6335,
                     mean: 11.38076218487395,
                   },
diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts
index 323e65e85368da3785ba7ab8daad0a067560ca9e..0d90e92e62de3e342cc206f4579a2bf399df1f36 100644
--- a/api/src/engine/engine.interfaces.ts
+++ b/api/src/engine/engine.interfaces.ts
@@ -1,8 +1,8 @@
 import { Request } from 'express';
 import { Observable } from 'rxjs';
 import { Domain } from './models/domain.model';
-import { TransientCreateInput } from './models/transient/transient-create.input';
-import { Transient } from './models/transient/transient.model';
+import { ExperimentCreateInput } from './models/experiment/experiment-create.input';
+import { Experiment } from './models/experiment/experiment.model';
 
 export interface IEngineOptions {
   type: string;
@@ -24,7 +24,9 @@ export interface IEngineService {
 
   startExperimentTransient(request: Request): Observable<string>;
 
-  createTransient(data: TransientCreateInput): Promise<Transient> | Transient;
+  createTransient(
+    data: ExperimentCreateInput,
+  ): Promise<Experiment> | Experiment;
 
   startExperiment(request: Request): Observable<string>;
 
diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts
index 750a2d6683b9317daa7589970cbc161003698625..e3de433e113e0e13577372240cda4114aa02a193 100644
--- a/api/src/engine/engine.resolver.ts
+++ b/api/src/engine/engine.resolver.ts
@@ -3,8 +3,8 @@ import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
 import { ENGINE_SERVICE } from './engine.constants';
 import { IEngineService } from './engine.interfaces';
 import { Domain } from './models/domain.model';
-import { TransientCreateInput } from './models/transient/transient-create.input';
-import { Transient } from './models/transient/transient.model';
+import { ExperimentCreateInput } from './models/experiment/experiment-create.input';
+import { Experiment } from './models/experiment/experiment.model';
 
 @Resolver()
 export class EngineResolver {
@@ -20,10 +20,10 @@ export class EngineResolver {
     return this.engineService.getDomains(ids);
   }
 
-  @Mutation(() => Transient)
+  @Mutation(() => Experiment)
   async createTransient(
-    @Args('data') transientCreateInput: TransientCreateInput,
+    @Args('data') experimentCreateInput: ExperimentCreateInput,
   ) {
-    return this.engineService.createTransient(transientCreateInput);
+    return this.engineService.createTransient(experimentCreateInput);
   }
 }
diff --git a/api/src/engine/models/transient/transient-create.input.ts b/api/src/engine/models/experiment/experiment-create.input.ts
similarity index 69%
rename from api/src/engine/models/transient/transient-create.input.ts
rename to api/src/engine/models/experiment/experiment-create.input.ts
index 0a2827e2bcb55928db0f1df2af9a69b7e341189a..d871eead0d40690fda47ec6b8ee5ff76bd173e6d 100644
--- a/api/src/engine/models/transient/transient-create.input.ts
+++ b/api/src/engine/models/experiment/experiment-create.input.ts
@@ -1,8 +1,7 @@
 import { Field, InputType } from '@nestjs/graphql';
-import { Extrafield } from '../utility/extrafield.input';
 
 @InputType()
-export class TransientCreateInput extends Extrafield {
+export class ExperimentCreateInput {
   @Field(() => [String])
   datasets: string[];
 
@@ -14,4 +13,10 @@ export class TransientCreateInput extends Extrafield {
 
   @Field()
   domain: string;
+
+  @Field()
+  algorithm: string;
+
+  @Field()
+  name: string;
 }
diff --git a/api/src/engine/models/experiment/experiment.model.ts b/api/src/engine/models/experiment/experiment.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..42dd04f5b500e2e65bcc2ec2d36a12c3104287b1
--- /dev/null
+++ b/api/src/engine/models/experiment/experiment.model.ts
@@ -0,0 +1,23 @@
+import { Field, GraphQLISODateTime, ObjectType } from '@nestjs/graphql';
+import { Result } from '../result/result.model';
+
+@ObjectType()
+export class Experiment {
+  @Field()
+  title: string;
+
+  @Field({ nullable: true })
+  uuid?: string;
+
+  @Field(() => GraphQLISODateTime, { nullable: true })
+  created_at?: Date;
+
+  @Field(() => GraphQLISODateTime, { nullable: true })
+  update_at?: Date;
+
+  @Field(() => GraphQLISODateTime, { nullable: true })
+  finished_at?: Date;
+
+  @Field(() => [Result])
+  result: Result[];
+}
diff --git a/api/src/engine/models/transient/transient.model.ts b/api/src/engine/models/transient/transient.model.ts
deleted file mode 100644
index 54d8e10ec9a1d6f4c98d9bb027afdc4a81bb1be0..0000000000000000000000000000000000000000
--- a/api/src/engine/models/transient/transient.model.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Field, ObjectType } from '@nestjs/graphql';
-import { TableResult } from '../result/table-result.model';
-
-@ObjectType()
-export class Transient {
-  @Field()
-  title: string;
-
-  @Field(() => [TableResult])
-  result: TableResult[];
-}
diff --git a/api/src/engine/models/utility/extrafield.input.ts b/api/src/engine/models/utility/extrafield.input.ts
deleted file mode 100644
index 22f917222d400c70427ea7ec89abda45f2471155..0000000000000000000000000000000000000000
--- a/api/src/engine/models/utility/extrafield.input.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Field, InputType } from '@nestjs/graphql';
-
-/**
- * This class is used to add a common extra field to
- * an input class in order to provide specific
- * information for a connector
- */
-@InputType()
-export class Extrafield {
-  @Field({ nullable: true })
-  extradata: string;
-}
diff --git a/api/src/schema.gql b/api/src/schema.gql
index e0d4db8774b413f182643f998a0b3142e43b4712..8d97521e5e945f00017d16828f128212571b1c7c 100644
--- a/api/src/schema.gql
+++ b/api/src/schema.gql
@@ -34,20 +34,27 @@ type Domain {
   rootGroup: Group!
 }
 
-type MetaData {
-  name: String!
-  type: String!
+type Result {
+  groupBy: String
 }
 
-type TableResult {
-  name: String!
-  data: [[String!]!]!
-  metadatas: [MetaData!]!
+type Experiment {
+  title: String!
+  uuid: String
+  created_at: DateTime
+  update_at: DateTime
+  finished_at: DateTime
+  result: [Result!]!
 }
 
-type Transient {
-  title: String!
-  result: [TableResult!]!
+"""
+A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
+"""
+scalar DateTime
+
+type MetaData {
+  name: String!
+  type: String!
 }
 
 type Query {
@@ -55,13 +62,14 @@ type Query {
 }
 
 type Mutation {
-  createTransient(data: TransientCreateInput!): Transient!
+  createTransient(data: ExperimentCreateInput!): Experiment!
 }
 
-input TransientCreateInput {
-  extradata: String
+input ExperimentCreateInput {
   datasets: [String!]!
   variables: [String!]!
   filter: String
   domain: String!
+  algorithm: String!
+  name: String!
 }