Optionallabs Authentication API

Base URL: https://api.optionallabs.com/api

1. Health Check

GET /ping

Returns API health status and version.

{ "ok": true, "version": "1.0.0" }

2. User Authentication

POST /signup

Create a new user account.

Request Body:
{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "123456",
  "phone": "9876543210"
}
Response:
{ "message": "Signup successful" }

POST /login

Authenticate a user and get a JWT token.

Request Body:
{
  "email": "john@example.com",
  "password": "123456"
}
Response:
{
  "message": "Login successful",
  "token": "",
  "user": {
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "9876543210"
  }
}

GET /validate

Validate a user session using a JWT token.

Headers:
Authorization: Bearer <token>
Response:
{ "valid": true, "user": { ... } }

PUT /update-account

Update user profile fields (name, phone).

Headers:
Authorization: Bearer <token>
Request Body:
{ "name": "Jane Doe", "phone": "9876500000" }
Response:
{ "message": "Account updated", "user": { ... } }

3. OTP Management

POST /send-otp

Send a one-time password (OTP) to user's email.

Request Body:
{ "email": "john@example.com" }
Response:
{ "message": "OTP sent successfully" }

POST /verify-otp

Verify a one-time password (OTP).

Request Body:
{
  "email": "john@example.com",
  "otp": "123456"
}
Response:
{ "message": "OTP verified successfully" }

4. Error Responses

{ "message": "Internal server error" }
{ "message": "Invalid email or password" }
{ "message": "No token provided" }