diff --git a/api/src/engine/models/experiment/author.model.ts b/api/src/engine/models/experiment/author.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0536a2e5a337e35f623dc9d649e817fa988dc13d
--- /dev/null
+++ b/api/src/engine/models/experiment/author.model.ts
@@ -0,0 +1,10 @@
+import { Field, ObjectType } from '@nestjs/graphql';
+
+@ObjectType()
+export class Author {
+  @Field({ nullable: true, defaultValue: '' })
+  username?: string;
+
+  @Field({ nullable: true, defaultValue: '' })
+  fullname?: string;
+}
diff --git a/api/src/engine/models/experiment/experiment.model.ts b/api/src/engine/models/experiment/experiment.model.ts
index 2d0f1e43885232bbdd54f41647162bfad2f17b76..97fca531bc44de2dcd3cb9446a3eb453bc4694ac 100644
--- a/api/src/engine/models/experiment/experiment.model.ts
+++ b/api/src/engine/models/experiment/experiment.model.ts
@@ -1,14 +1,15 @@
 import { Field, ObjectType, PartialType } from '@nestjs/graphql';
 import { ResultUnion } from '../result/common/result-union.model';
 import { Algorithm } from './algorithm.model';
+import { Author } from './author.model';
 
 @ObjectType()
 export class Experiment {
   @Field({ nullable: true })
   id?: string;
 
-  @Field({ nullable: true, defaultValue: '' })
-  author?: string;
+  @Field(() => Author, { nullable: true, defaultValue: '' })
+  author?: Author;
 
   @Field({ nullable: true })
   createdAt?: number;
diff --git a/api/src/schema.gql b/api/src/schema.gql
index 1b4951c49fca8d2989f019c1e4b053c3b545617f..d78641fc9b4b7a42638017b86d512fa5c2bd78ff 100644
--- a/api/src/schema.gql
+++ b/api/src/schema.gql
@@ -126,9 +126,14 @@ type Header {
   type: String!
 }
 
+type Author {
+  username: String
+  fullname: String
+}
+
 type Experiment {
   id: String
-  author: String
+  author: Author
   createdAt: Float
   updateAt: Float
   finishedAt: Float
@@ -147,7 +152,7 @@ type Experiment {
 
 type PartialExperiment {
   id: String
-  author: String
+  author: Author
   createdAt: Float
   updateAt: Float
   finishedAt: Float