https://mercurio-api.vercel.app/api
Auth: Use header Authorization: Bearer <token>
for protected routes.
POST/auth/signup
{ "email":"user@example.com","password":"123456" }
POST/auth/login
{ "email":"user@example.com","password":"123456" } Response: { "access_token":"...", "user":{ "id":"..","email":".." }}
POST/auth/logout
{ "message":"Logged out" }
GET/auth/profile
{ "id":"..","email":"user@example.com","role":"student" }
PUT/auth/profile
{ "full_name":"New Name" } → { "id":"..","full_name":"New Name" }
POST/auth/forgot-password
{ "email":"user@example.com" }
PUT/auth/reset-password
{ "access_token":"..","new_password":"newPass123" }
GET/users/all?page=1
{ "page":1,"users":[{ "id":"..","email":".." }] }
GET/users/:id
{ "id":"..","email":"..","role":"student" }
DELETE/users/:id
{ "message":"User deleted successfully" }
GET/products/all?page=1
{ "page":1,"products":[{ "id":1,"name":"Product A" }] }
GET/products/:id
{ "id":68,"name":"Wireless Headphones","price":8.99 }
POST/products/create (Admin)
{ "name":"Phone","price":299,"stock":20,"category_id":21 }
PUT/products/:id (Admin)
{ "name":"Phone Updated","stock":15 }
DELETE/products/:id (Admin)
{ "message":"Product deleted successfully" }
GET/products/category/:category_id?page=1
{ "page":1,"products":[{ "id":1,"name":"Product A" }] }
GET/products/search/withQuery?query=phone&page=1
{ "page":1,"products":[{ "id":2,"name":"Smartphone" }] }
GET/categories/all
[{ "id":21,"name":"Garden" },{ "id":22,"name":"Computers" }]
GET/categories/:id
{ "id":22,"name":"Computers" }
POST/categories/create (Admin)
{ "name":"Phones","description":"Explore latest Phones..." }
PUT/categories/:id (Admin)
{ "name":"Phones Updated" }
DELETE/categories/:id (Admin)
{ "message":"Category deleted successfully" }