diff --git a/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs b/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs
new file mode 100644
index 00000000..795799fc
--- /dev/null
+++ b/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs
@@ -0,0 +1,54 @@
+using AutoMapper;
+using DigitalData.Core.Abstraction.Application.Repository;
+using DigitalData.Core.Exceptions;
+using EnvelopeGenerator.Application.Common.Dto.History;
+using EnvelopeGenerator.Domain.Constants;
+using MediatR;
+using System.ComponentModel.DataAnnotations;
+using EnvelopeGenerator.Domain.Entities;
+using Microsoft.EntityFrameworkCore;
+
+namespace EnvelopeGenerator.Application.Histories.Queries;
+
+//TODO: Add sender query
+///
+/// Repräsentiert eine Abfrage für die Verlaufshistorie eines Umschlags.
+///
+public record CountHistoryQuery : HistoryQueryBase, IRequest;
+
+///
+///
+///
+public class CountHistoryQueryHandler : IRequestHandler
+{
+ private readonly IRepository _repo;
+
+ private readonly IMapper _mapper;
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public CountHistoryQueryHandler(IRepository repo, IMapper mapper)
+ {
+ _repo = repo;
+ _mapper = mapper;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Task Handle(CountHistoryQuery request, CancellationToken cancel = default)
+ {
+ var query = _repo.Where(h => h.EnvelopeId == request.EnvelopeId);
+ if (request.Status is not null)
+ query = query.Where(h => h.Status == request.Status);
+
+ return query.CountAsync(cancel);
+ }
+}
\ No newline at end of file