diff --git a/src/Controller/ApiTraceController.php b/src/Controller/ApiTraceController.php
index 049767c2056d004058c2a2da2342b1ac65a192d9..b811ecec51071300a310c3d97ab5d13583d53bba 100644
--- a/src/Controller/ApiTraceController.php
+++ b/src/Controller/ApiTraceController.php
@@ -44,6 +44,7 @@ class ApiTraceController extends ApiBaseController
      *       @OA\Property(property="origin", type="string", example="Prisms"),
      *       @OA\Property(property="action", type="string", example="partie annulée"),
      *       @OA\Property(property="additional_info", type="object"),
+     *       @OA\Property(property="timestamp", type="string", example="2012-07-08 11:14:15.889342"),
      *     )
      * )
      * @OA\Tag(name="Traces")
@@ -58,6 +59,12 @@ class ApiTraceController extends ApiBaseController
         if ($missingFields = $this->getMissingFields($data, ['origin', 'action'])) {
             return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une valeur pour: %s", implode(', ', $missingFields))]);
         }
+        if ($data['timestamp'] ?? null) {
+            $date = new \DateTime($data['timestamp']);
+            if ($date === false) {
+                return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj hh:mm:ss.dddddd pour le paramètre «timestamp»")]);
+            }
+        }
 
         $trace = new Trace();
         $trace->setCreatedBy($this->getUser());
@@ -66,6 +73,9 @@ class ApiTraceController extends ApiBaseController
         if ($data['additional_info'] ?? null) {
             $trace->setAdditionalInfo($data['additional_info']);
         }
+        if ($date ?? null) {
+            $trace->setTimestamp($date);
+        }
         $this->doctrine->getManager()->persist($trace);
         $this->doctrine->getManager()->flush();
 
@@ -87,6 +97,7 @@ class ApiTraceController extends ApiBaseController
      *     required=true,
      *     @OA\JsonContent(
      *         @OA\Property(property="date", type="date"),
+     *         @OA\Property(property="date_client", type="date"),
      *         @OA\Property(property="user_id", type="integer", example="4"),
      *         @OA\Property(property="origin", type="string", example="Prisms"),
      *         @OA\Property(property="action", type="string", example="action"),
@@ -101,7 +112,7 @@ class ApiTraceController extends ApiBaseController
         if (!$data) {
             return $this->createJsonResponse(401, ['error' => sprintf("Json non valide")]);
         }
-        if (!isset($data['date']) && !isset($data['user_id']) && !isset($data['origin']) && !isset($data['action'])) {
+        if (!isset($data['date']) && !isset($data['date_client']) && !isset($data['user_id']) && !isset($data['origin']) && !isset($data['action'])) {
             return $this->createJsonResponse(401, ['error' => sprintf("Veuillez spécifier au moins un paramètre de recherche parmi: date, user_id, action, origin")]);
         }
 
@@ -114,6 +125,14 @@ class ApiTraceController extends ApiBaseController
                 $filter['date'] = $date;
             }
         }
+        if ($data['date_client'] ?? null) {
+            $dateClient = date_create_from_format('Y-m-d', $data['date_client']);
+            if ($dateClient === false) {
+                return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj pour le paramètre «date client»")]);
+            } else {
+                $filter['date_client'] = $dateClient;
+            }
+        }
         if ($data["user_id"] ?? null) {
             $user = $this->doctrine->getRepository(User::class)->find($data['user_id']);
             if (!$user) {
@@ -131,7 +150,10 @@ class ApiTraceController extends ApiBaseController
 
         $traces = $this->doctrine->getRepository(Trace::class)->search($filter);
 
-        $content = $serializer->serialize($traces, 'json', ['groups' => ["trace:read"]]);
+        $content = $serializer->serialize($traces, 'json', [
+            'groups' => ["trace:read"],
+            'datetime_format' => 'Y-m-d h:i:s.u'
+        ]);
 
         return new JsonResponse($content, 200, [], true);
     }
diff --git a/src/Controller/IndexController.php b/src/Controller/IndexController.php
index 3b300249958d6a8d80f14d75dde5c3aa34fcba75..c3d9541a1057599739c3810ca77d9c189f8a0368 100644
--- a/src/Controller/IndexController.php
+++ b/src/Controller/IndexController.php
@@ -3,6 +3,7 @@
 namespace App\Controller;
 
 use App\Entity\Entry;
+use App\Entity\Trace;
 use App\Entity\User;
 use App\Manager\WiktionaryManager;
 use Doctrine\Persistence\ManagerRegistry;
diff --git a/src/Entity/Trace.php b/src/Entity/Trace.php
index f813bd88f354bcd0b443f0c358a9193fcd00ea84..663a15131119ae816937289af0bad423a47ab513 100644
--- a/src/Entity/Trace.php
+++ b/src/Entity/Trace.php
@@ -23,7 +23,7 @@ class Trace
 
     /**
      * @Groups({"trace:read"})
-     * @ORM\Column(type="datetime_immutable")
+     * @ORM\Column(type="datetimemicroseconds")
      */
     private $createdAt;
 
@@ -73,18 +73,6 @@ class Trace
         return $this->id;
     }
 
-    public function getCreatedAt(): ?\DateTimeImmutable
-    {
-        return $this->createdAt;
-    }
-
-    public function setCreatedAt(\DateTimeImmutable $createdAt): self
-    {
-        $this->createdAt = $createdAt;
-
-        return $this;
-    }
-
     public function getOrigin(): ?string
     {
         return $this->origin;
@@ -144,4 +132,16 @@ class Trace
 
         return $this;
     }
+
+    public function getCreatedAt()
+    {
+        return $this->createdAt;
+    }
+
+    public function setCreatedAt($createdAt): self
+    {
+        $this->createdAt = $createdAt;
+
+        return $this;
+    }
 }
diff --git a/src/Repository/TraceRepository.php b/src/Repository/TraceRepository.php
index fcb0e3b121e729485e24443d4098e005ea3d2460..a5a9e352713f2bf1cb9053127fb97527549c4b55 100644
--- a/src/Repository/TraceRepository.php
+++ b/src/Repository/TraceRepository.php
@@ -31,6 +31,12 @@ class TraceRepository extends ServiceEntityRepository
             ;
         }
 
+        if ($filter['date_client'] ?? null) {
+            $qb->andWhere('DATE(t.timestamp) = DATE(:date_client)')
+                ->setParameter('date_client', $filter['date_client'])
+            ;
+        }
+
         if ($filter['user'] ?? null) {
             $qb->andWhere('t.createdBy = :user')
                 ->setParameter('user', $filter['user'])