Auth

User login with provided credentials.

post

Authenticates a user and returns a login token with account and profile details.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
usernameOrEmailstring | nullableOptional
passwordstring | nullableOptional
Responses
200

OK

application/json
post
/Auth/Login
POST /api/Auth/Login HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 44

{
  "usernameOrEmail": "text",
  "password": "text"
}
{
  "token": "text",
  "account": {
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "username": "text",
    "email": "text",
    "createdAt": "2025-12-04T19:12:26.266Z",
    "updatedAt": "2025-12-04T19:12:26.266Z",
    "isActive": true,
    "roles": [
      "Candidate"
    ],
    "profile": {
      "profileId": "123e4567-e89b-12d3-a456-426614174000",
      "firstName": "text",
      "lastName": "text",
      "bioMarkdown": "text",
      "instituteName": "text",
      "phoneNumber": "text",
      "imageFile": {
        "cloudFileId": "123e4567-e89b-12d3-a456-426614174000",
        "fileId": "text",
        "name": "text",
        "contentType": "text",
        "size": 1,
        "webContentLink": "text",
        "webViewLink": "text",
        "directLink": "text",
        "createdAt": "2025-12-04T19:12:26.266Z"
      },
      "profileLinks": [
        {
          "profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
          "name": "text",
          "link": "text"
        }
      ]
    }
  }
}

Registers a new user.

post

Registers a new user and returns account details with a login token.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
usernamestring | nullableOptional
emailstring | nullableOptional
passwordstring | nullableOptional
otpstring | nullableOptional
Responses
200

OK

application/json
post
/Auth/Register
POST /api/Auth/Register HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 65

{
  "username": "text",
  "email": "text",
  "password": "text",
  "otp": "text"
}
{
  "token": "text",
  "account": {
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "username": "text",
    "email": "text",
    "createdAt": "2025-12-04T19:12:26.266Z",
    "updatedAt": "2025-12-04T19:12:26.266Z",
    "isActive": true,
    "roles": [
      "Candidate"
    ],
    "profile": {
      "profileId": "123e4567-e89b-12d3-a456-426614174000",
      "firstName": "text",
      "lastName": "text",
      "bioMarkdown": "text",
      "instituteName": "text",
      "phoneNumber": "text",
      "imageFile": {
        "cloudFileId": "123e4567-e89b-12d3-a456-426614174000",
        "fileId": "text",
        "name": "text",
        "contentType": "text",
        "size": 1,
        "webContentLink": "text",
        "webViewLink": "text",
        "directLink": "text",
        "createdAt": "2025-12-04T19:12:26.266Z"
      },
      "profileLinks": [
        {
          "profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
          "name": "text",
          "link": "text"
        }
      ]
    }
  }
}

Recovers password for a user.

post

Initiates the password recovery process for a user and returns account details with a new login token.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
emailstring | nullableOptional
newPasswordstring | nullableOptional
otpstring | nullableOptional
Responses
200

OK

application/json
post
/Auth/PasswordRecovery
POST /api/Auth/PasswordRecovery HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 50

{
  "email": "text",
  "newPassword": "text",
  "otp": "text"
}
{
  "token": "text",
  "account": {
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "username": "text",
    "email": "text",
    "createdAt": "2025-12-04T19:12:26.266Z",
    "updatedAt": "2025-12-04T19:12:26.266Z",
    "isActive": true,
    "roles": [
      "Candidate"
    ],
    "profile": {
      "profileId": "123e4567-e89b-12d3-a456-426614174000",
      "firstName": "text",
      "lastName": "text",
      "bioMarkdown": "text",
      "instituteName": "text",
      "phoneNumber": "text",
      "imageFile": {
        "cloudFileId": "123e4567-e89b-12d3-a456-426614174000",
        "fileId": "text",
        "name": "text",
        "contentType": "text",
        "size": 1,
        "webContentLink": "text",
        "webViewLink": "text",
        "directLink": "text",
        "createdAt": "2025-12-04T19:12:26.266Z"
      },
      "profileLinks": [
        {
          "profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
          "name": "text",
          "link": "text"
        }
      ]
    }
  }
}

Checks if a user with the provided username or email is unique.

post

Checks if a user with the provided username or email is unique.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
usernamestring | nullableOptional
emailstring | nullableOptional
Responses
200

OK

No content

post
/Auth/IsUserUnique
POST /api/Auth/IsUserUnique HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "username": "text",
  "email": "text"
}

No content

Sends a One-Time Password (OTP) to the provided email address.

post

Sends a One-Time Password (OTP) to the provided email address.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
emailstring | nullableOptional
Responses
200

OK

No content

post
/Auth/SendOtp
POST /api/Auth/SendOtp HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "email": "text"
}

No content

Validates a provided One-Time Password (OTP).

post

Validates a provided One-Time Password (OTP) for a given email.

Authorizations
AuthorizationstringRequired

🗝️ Admin Account

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEiLCJVc2VybmFtZSI6ImFkbWluIiwiRW1haWwiOiJhZG1pbkB0cnVldGVzdC50ZWNoIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIkNhbmRpZGF0ZSIsIkFkbWluIl0sIlBlcm1pc3Npb24iOlsiQWNjZXNzT3duRXhhbXMiLCJTdWJtaXRBbnN3ZXJzIiwiUnVuQ29kZSIsIk1hbmFnZU93blByb2ZpbGUiLCJNYW5hZ2VBY2NvdW50cyIsIlZpZXdFeGFtcyIsIk1hbmFnZUV4YW1zIiwiTWFuYWdlUXVlc3Rpb25zIiwiVmlld1N1Ym1pc3Npb25zIiwiUmV2aWV3U3VibWlzc2lvbiJdLCJleHAiOjQ4OTkwMzMxOTUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0In0.VBPngQIwsybHrwZPYMA5sNpWew3S9_W7cDdpAD4mDyM

Body
emailstring | nullableOptional
otpstring | nullableOptional
Responses
200

OK

No content

post
/Auth/IsValidOtp
POST /api/Auth/IsValidOtp HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 29

{
  "email": "text",
  "otp": "text"
}

No content

Last updated