Mercurio API Docs

Base URL: https://mercurio-api.vercel.app/api

Auth: Use header Authorization: Bearer <token> for protected routes.

Auth

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" }

Users (Admin)

GET/users/all?page=1

{ "page":1,"users":[{ "id":"..","email":".." }] }

GET/users/:id

{ "id":"..","email":"..","role":"student" }

DELETE/users/:id

{ "message":"User deleted successfully" }

Products

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" }] }

Categories

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" }