diff --git a/api/src/engine/models/result/common/chart-axis.model.ts b/api/src/engine/models/result/common/chart-axis.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f5045887954c5399f107718ae539bfcc9ac7d739
--- /dev/null
+++ b/api/src/engine/models/result/common/chart-axis.model.ts
@@ -0,0 +1,10 @@
+import { ObjectType, Field } from '@nestjs/graphql';
+
+@ObjectType()
+export class ChartAxis {
+  @Field({ nullable: true, defaultValue: '' })
+  label?: string;
+
+  @Field(() => [String], { nullable: true, defaultValue: [] })
+  categories: string[];
+}
diff --git a/api/src/engine/models/result/heat-map-result.model.ts b/api/src/engine/models/result/heat-map-result.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ab4d2d86ca410f8a65e61f971caff1384eb35b65
--- /dev/null
+++ b/api/src/engine/models/result/heat-map-result.model.ts
@@ -0,0 +1,18 @@
+import { Field, ObjectType } from '@nestjs/graphql';
+import { ChartAxis } from './common/chart-axis.model';
+import { Result } from './common/result.model';
+
+@ObjectType()
+export class HeatMapResult extends Result {
+  @Field()
+  name: string;
+
+  @Field(() => [[Number]])
+  matrix: number[][];
+
+  @Field(() => [ChartAxis])
+  xAxis: ChartAxis;
+
+  @Field(() => [ChartAxis])
+  yAxis: ChartAxis;
+}