diff --git a/src/api/core/OpenAPI.ts b/src/api/core/OpenAPI.ts
index bae5eb773e38a6fa187a68f3ac9f3dbecc88eaf5..213c15d4a7b840e8d13a35f74c2618c13b7c9398 100644
--- a/src/api/core/OpenAPI.ts
+++ b/src/api/core/OpenAPI.ts
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
 
 export const OpenAPI: OpenAPIConfig = {
     BASE: 'http://localhost:8080',
-    VERSION: '0',
+    VERSION: '3.0',
     WITH_CREDENTIALS: false,
     CREDENTIALS: 'include',
     TOKEN: undefined,
diff --git a/src/api/index.ts b/src/api/index.ts
index 7bfbd7a82dcdde4a855e2ee242508c2268633a83..2a974f1dd456ed118f2caf5c190038eb3cfa7c3f 100644
--- a/src/api/index.ts
+++ b/src/api/index.ts
@@ -6,3 +6,10 @@ export { ApiError } from './core/ApiError';
 export { CancelablePromise, CancelError } from './core/CancelablePromise';
 export { OpenAPI } from './core/OpenAPI';
 export type { OpenAPIConfig } from './core/OpenAPI';
+
+export type { AuthenticationResponse } from './models/AuthenticationResponse';
+export type { ExceptionResponse } from './models/ExceptionResponse';
+export type { LoginRequest } from './models/LoginRequest';
+export type { SignUpRequest } from './models/SignUpRequest';
+
+export { AuthenticationService } from './services/AuthenticationService';
diff --git a/src/api/models/AuthenticationResponse.ts b/src/api/models/AuthenticationResponse.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e9773225f1c1b7206a2339985029abcfe618971f
--- /dev/null
+++ b/src/api/models/AuthenticationResponse.ts
@@ -0,0 +1,8 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+export type AuthenticationResponse = {
+    token?: string;
+};
+
diff --git a/src/api/models/ExceptionResponse.ts b/src/api/models/ExceptionResponse.ts
new file mode 100644
index 0000000000000000000000000000000000000000..12c0a7873d7d38f6782e970737603521971c9c81
--- /dev/null
+++ b/src/api/models/ExceptionResponse.ts
@@ -0,0 +1,9 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+export type ExceptionResponse = {
+    status?: number;
+    message?: string;
+};
+
diff --git a/src/api/models/LoginRequest.ts b/src/api/models/LoginRequest.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9c5def4f1a6a028911a9b4ca8a147fcc14f8015e
--- /dev/null
+++ b/src/api/models/LoginRequest.ts
@@ -0,0 +1,9 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+export type LoginRequest = {
+    email?: string;
+    password?: string;
+};
+
diff --git a/src/api/models/SignUpRequest.ts b/src/api/models/SignUpRequest.ts
new file mode 100644
index 0000000000000000000000000000000000000000..28a2e78a3a39e8ceb5f28567ebdf02d912017210
--- /dev/null
+++ b/src/api/models/SignUpRequest.ts
@@ -0,0 +1,14 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+export type SignUpRequest = {
+    firstName?: string;
+    lastName?: string;
+    email?: string;
+    password?: string;
+    changeWilling?: string;
+    experience?: string;
+    challenges?: Array<string>;
+};
+
diff --git a/src/api/services/AuthenticationService.ts b/src/api/services/AuthenticationService.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eae8fd5c8b2f6ef8d5cfaf6ed6976edcf0a386d4
--- /dev/null
+++ b/src/api/services/AuthenticationService.ts
@@ -0,0 +1,55 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+import type { AuthenticationResponse } from '../models/AuthenticationResponse';
+import type { LoginRequest } from '../models/LoginRequest';
+import type { SignUpRequest } from '../models/SignUpRequest';
+import type { CancelablePromise } from '../core/CancelablePromise';
+import { OpenAPI } from '../core/OpenAPI';
+import { request as __request } from '../core/request';
+export class AuthenticationService {
+    /**
+     * User Signup
+     * Sign up a new user
+     * @returns AuthenticationResponse Successfully signed up
+     * @throws ApiError
+     */
+    public static signup({
+        requestBody,
+    }: {
+        requestBody: SignUpRequest,
+    }): CancelablePromise<AuthenticationResponse> {
+        return __request(OpenAPI, {
+            method: 'POST',
+            url: '/api/auth/signup',
+            body: requestBody,
+            mediaType: 'application/json',
+            errors: {
+                409: `Email already exists`,
+            },
+        });
+    }
+    /**
+     * User Login
+     * Log in with an existing user
+     * @returns AuthenticationResponse Successfully logged in
+     * @throws ApiError
+     */
+    public static login({
+        requestBody,
+    }: {
+        requestBody: LoginRequest,
+    }): CancelablePromise<AuthenticationResponse> {
+        return __request(OpenAPI, {
+            method: 'POST',
+            url: '/api/auth/login',
+            body: requestBody,
+            mediaType: 'application/json',
+            errors: {
+                401: `Invalid credentials`,
+                404: `User not found`,
+            },
+        });
+    }
+}