diff --git a/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj b/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj
index 7967b399b..ba17246f3 100644
--- a/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj
+++ b/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj
@@ -17,8 +17,4 @@
-
-
-
-
diff --git a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
index d60e674e0..862de56f2 100644
--- a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
+++ b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
@@ -1,5 +1,6 @@
using Elsa.Api.Client.Contracts;
using Elsa.Api.Client.Options;
+using Elsa.Api.Client.Resources.Identity.Contracts;
using Elsa.Api.Client.Resources.WorkflowDefinitions.Contracts;
using Elsa.Api.Client.Services;
using JetBrains.Annotations;
@@ -25,6 +26,7 @@ public static class DependencyInjectionExtensions
var settings = new RefitSettings();
services.AddElsaApiClient(settings);
+ services.AddElsaApiClient(settings);
return services;
}
diff --git a/src/clients/Elsa.Api.Client/Resources/Identity/Contracts/ILoginApi.cs b/src/clients/Elsa.Api.Client/Resources/Identity/Contracts/ILoginApi.cs
new file mode 100644
index 000000000..7653eaad0
--- /dev/null
+++ b/src/clients/Elsa.Api.Client/Resources/Identity/Contracts/ILoginApi.cs
@@ -0,0 +1,19 @@
+using Elsa.Api.Client.Resources.Identity.Models;
+using Refit;
+
+namespace Elsa.Api.Client.Resources.Identity.Contracts;
+
+///
+/// Represents a client for the login API.
+///
+public interface ILoginApi
+{
+ ///
+ /// Sends the specified request to the login API.
+ ///
+ /// The request.
+ /// The cancellation token.
+ /// The response.
+ [Post("/identity/login")]
+ Task LoginAsync([Body] LoginRequest request, CancellationToken cancellationToken = default);
+}
\ No newline at end of file
diff --git a/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginRequest.cs b/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginRequest.cs
new file mode 100644
index 000000000..8fddf3288
--- /dev/null
+++ b/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginRequest.cs
@@ -0,0 +1,8 @@
+namespace Elsa.Api.Client.Resources.Identity.Models;
+
+///
+/// Represents a request to log in.
+///
+/// The username.
+/// The password.
+public record LoginRequest(string Username, string Password);
\ No newline at end of file
diff --git a/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginResponse.cs b/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginResponse.cs
new file mode 100644
index 000000000..4b3d91434
--- /dev/null
+++ b/src/clients/Elsa.Api.Client/Resources/Identity/Models/LoginResponse.cs
@@ -0,0 +1,6 @@
+namespace Elsa.Api.Client.Resources.Identity.Models;
+
+///
+/// The response of logging in.
+///
+public record LoginResponse(bool IsAuthenticated, string? AccessToken, string? RefreshToken);
\ No newline at end of file