Auth
Authenticates a user and returns a login token with account and profile details.
Authorizations
Body
usernameOrEmailstring | nullableOptional
passwordstring | nullableOptional
Responses
200
OK
application/json
400
Bad Request
application/json
403
Forbidden
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/Login HTTP/1.1
Host:
Authorization: Bearer JWT
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-08-11T02:45:32.163Z",
"updatedAt": "2025-08-11T02:45:32.163Z",
"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-08-11T02:45:32.163Z"
},
"profileLinks": [
{
"profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"link": "text"
}
]
}
}
}
Registers a new user and returns account details with a login token.
Authorizations
Body
usernamestring | nullableOptional
emailstring | nullableOptional
passwordstring | nullableOptional
otpstring | nullableOptional
Responses
200
OK
application/json
400
Bad Request
application/json
403
Forbidden
application/json
409
Conflict
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/Register HTTP/1.1
Host:
Authorization: Bearer JWT
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-08-11T02:45:32.163Z",
"updatedAt": "2025-08-11T02:45:32.163Z",
"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-08-11T02:45:32.163Z"
},
"profileLinks": [
{
"profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"link": "text"
}
]
}
}
}
Initiates the password recovery process for a user and returns account details with a new login token.
Authorizations
Body
emailstring | nullableOptional
newPasswordstring | nullableOptional
otpstring | nullableOptional
Responses
200
OK
application/json
400
Bad Request
application/json
403
Forbidden
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/PasswordRecovery HTTP/1.1
Host:
Authorization: Bearer JWT
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-08-11T02:45:32.163Z",
"updatedAt": "2025-08-11T02:45:32.163Z",
"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-08-11T02:45:32.163Z"
},
"profileLinks": [
{
"profileLinkId": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"link": "text"
}
]
}
}
}
Checks if a user with the provided username or email is unique.
Authorizations
Body
usernamestring | nullableOptional
emailstring | nullableOptional
Responses
200
OK
400
Bad Request
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/IsUserUnique HTTP/1.1
Host:
Authorization: Bearer JWT
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.
Authorizations
Body
emailstring | nullableOptional
Responses
200
OK
400
Bad Request
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/SendOtp HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 16
{
"email": "text"
}
No content
Validates a provided One-Time Password (OTP) for a given email.
Authorizations
Body
emailstring | nullableOptional
otpstring | nullableOptional
Responses
200
OK
400
Bad Request
application/json
500
Internal Server Error
application/json
post
POST /api/Auth/IsValidOtp HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"email": "text",
"otp": "text"
}
No content