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" }
5. Contact Form
POST /contact
Submit a contact form message. Stores the message in the database and sends an acknowledgment email to the user.
Request Body:{
"full_name": "Chandan Kumar Dash",
"email": "chandan@example.com",
"phone": "9876543210",
"message": "I would like to know more about your services."
}
Response:
{
"message": "Thank you for contacting us! We've received your message."
}
GET /contact-messages (Optional, admin-only)
Retrieve all submitted contact messages (can be restricted to admin use).
Response Example:[
{
"id": 1,
"full_name": "Chandan Kumar Dash",
"email": "chandan@example.com",
"phone": "9876543210",
"message": "I would like to know more about your services.",
"created_at": "2025-10-30T12:34:56.000Z"
}
]