diff --git a/arkindex/ponos/api.py b/arkindex/ponos/api.py
index 0c123b10825fa28396d35168c5404dbb3a5aebb0..9334dc0e822b2bdffcce4f75cc8d985e5615a00a 100644
--- a/arkindex/ponos/api.py
+++ b/arkindex/ponos/api.py
@@ -251,6 +251,7 @@ class TaskRestart(ProcessACLMixin, CreateAPIView):
         copy.save()
 
         # Copy the original task
+        copy.original_task_id = copy.id
         copy.id = uuid.uuid4()
         copy.slug = basename
         copy.state = State.Pending
diff --git a/arkindex/ponos/migrations/0008_task_original_task.py b/arkindex/ponos/migrations/0008_task_original_task.py
new file mode 100644
index 0000000000000000000000000000000000000000..36e072befc6b65990efdaa08baa133a6d09d3aa9
--- /dev/null
+++ b/arkindex/ponos/migrations/0008_task_original_task.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.1.7 on 2024-04-23 12:19
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("ponos", "0007_remove_task_has_docker_socket"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="task",
+            name="original_task",
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="restarts", to="ponos.task"),
+        ),
+    ]
diff --git a/arkindex/ponos/models.py b/arkindex/ponos/models.py
index 2eaaee05e7e0f7ad6467795492b1a23b3ba2ae1f..bfc1864aaabc5b8a49d8b598b6a68ab4a66d958c 100644
--- a/arkindex/ponos/models.py
+++ b/arkindex/ponos/models.py
@@ -313,13 +313,20 @@ class Task(models.Model):
         related_name="children",
         symmetrical=False,
     )
-
     container = models.CharField(
         max_length=64,
         null=True,
         blank=True,
     )
 
+    original_task = models.ForeignKey(
+        "self",
+        on_delete=models.SET_NULL,
+        null=True,
+        blank=True,
+        related_name="restarts"
+    )
+
     created = models.DateTimeField(auto_now_add=True)
     updated = models.DateTimeField(auto_now=True)
     expiry = models.DateTimeField(default=expiry_default)
diff --git a/arkindex/ponos/serializers.py b/arkindex/ponos/serializers.py
index 932cc7c0c9586702826cabe665afc0adba0c47f9..392e993f4332c4d405d6b40fa951ec1fdbf3a60f 100644
--- a/arkindex/ponos/serializers.py
+++ b/arkindex/ponos/serializers.py
@@ -89,6 +89,7 @@ class TaskSerializer(TaskLightSerializer):
             "agent",
             "gpu",
             "extra_files",
+            "original_task_id"
         )
         read_only_fields = TaskLightSerializer.Meta.read_only_fields + (
             "logs",
@@ -96,6 +97,7 @@ class TaskSerializer(TaskLightSerializer):
             "agent",
             "gpu",
             "extra_files",
+            "original_task_id"
         )
 
     @extend_schema_field(serializers.CharField())