{"service":"MK Infobiz API","version":"1.0.0","environment":"production","authentication":{"summary":"Public routes need no token. Admin routes require Authorization: Bearer <token> from POST /api/auth/login.","schemes":["Bearer JWT (HS256)"]},"urls":{"apiBase":"https://api-service.mkinfobiz.com","siteUrl":"https://mkinfobiz.com"},"cors":{"mode":"strict allow-list","allowedOriginsCount":2},"sections":[{"title":"System","routes":[{"method":"GET","path":"/","auth":"public","note":"Dashboard"},{"method":"GET","path":"/api/health","auth":"public"},{"method":"GET","path":"/api/database/test","auth":"public"}]},{"title":"Authentication","routes":[{"method":"POST","path":"/api/auth/login","auth":"public"},{"method":"GET","path":"/api/auth/me","auth":"jwt"}]},{"title":"Public website API","routes":[{"method":"GET","path":"/api/public/services","auth":"public"},{"method":"GET","path":"/api/public/portfolio","auth":"public"},{"method":"GET","path":"/api/public/portfolio-categories","auth":"public"},{"method":"GET","path":"/api/public/events","auth":"public"},{"method":"GET","path":"/api/public/blog","auth":"public"},{"method":"GET","path":"/api/public/team","auth":"public"},{"method":"GET","path":"/api/public/products","auth":"public"},{"method":"GET","path":"/api/public/testimonials","auth":"public"},{"method":"GET","path":"/api/public/site-settings","auth":"public"},{"method":"GET","path":"/api/public/pages/nav","auth":"public"},{"method":"GET","path":"/api/public/pages/slug/:slug","auth":"public"},{"method":"GET","path":"/api/public/pages/slug/:slug/blocks","auth":"public"},{"method":"POST","path":"/api/public/chatbot","auth":"public"},{"method":"POST","path":"/api/public/contact","auth":"public"}]},{"title":"Admin — uploads","routes":[{"method":"POST","path":"/api/admin/uploads/event-image","auth":"jwt"}]},{"title":"Admin — site & dashboard","routes":[{"method":"GET","path":"/api/admin/site-settings","auth":"jwt"},{"method":"PUT","path":"/api/admin/site-settings","auth":"jwt"},{"method":"GET","path":"/api/admin/counts","auth":"jwt"}]},{"title":"Admin — services","routes":[{"method":"GET","path":"/api/admin/services","auth":"jwt"},{"method":"POST","path":"/api/admin/services","auth":"jwt"},{"method":"PUT","path":"/api/admin/services/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/services/:id","auth":"jwt"}]},{"title":"Admin — portfolio","routes":[{"method":"GET","path":"/api/admin/portfolio-categories","auth":"jwt"},{"method":"POST","path":"/api/admin/portfolio-categories","auth":"jwt"},{"method":"PUT","path":"/api/admin/portfolio-categories/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/portfolio-categories/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/portfolio","auth":"jwt"},{"method":"POST","path":"/api/admin/portfolio","auth":"jwt"},{"method":"PUT","path":"/api/admin/portfolio/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/portfolio/:id","auth":"jwt"}]},{"title":"Admin — events & content","routes":[{"method":"GET","path":"/api/admin/events","auth":"jwt"},{"method":"POST","path":"/api/admin/events","auth":"jwt"},{"method":"PUT","path":"/api/admin/events/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/events/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/blog","auth":"jwt"},{"method":"POST","path":"/api/admin/blog","auth":"jwt"},{"method":"PUT","path":"/api/admin/blog/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/blog/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/team","auth":"jwt"},{"method":"POST","path":"/api/admin/team","auth":"jwt"},{"method":"PUT","path":"/api/admin/team/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/team/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/testimonials","auth":"jwt"},{"method":"POST","path":"/api/admin/testimonials","auth":"jwt"},{"method":"PUT","path":"/api/admin/testimonials/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/testimonials/:id","auth":"jwt"}]},{"title":"Admin — products & messages","routes":[{"method":"GET","path":"/api/admin/products","auth":"jwt"},{"method":"POST","path":"/api/admin/products","auth":"jwt"},{"method":"PUT","path":"/api/admin/products/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/products/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/messages","auth":"jwt"},{"method":"PATCH","path":"/api/admin/messages/:id/read","auth":"jwt"},{"method":"DELETE","path":"/api/admin/messages/:id","auth":"jwt"}]},{"title":"Admin — pages & blocks","routes":[{"method":"GET","path":"/api/admin/pages","auth":"jwt"},{"method":"POST","path":"/api/admin/pages","auth":"jwt"},{"method":"PUT","path":"/api/admin/pages/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/pages/:id","auth":"jwt"},{"method":"GET","path":"/api/admin/pages/:pageId/blocks","auth":"jwt"},{"method":"POST","path":"/api/admin/pages/:pageId/blocks","auth":"jwt"},{"method":"PUT","path":"/api/admin/page-blocks/:id","auth":"jwt"},{"method":"DELETE","path":"/api/admin/page-blocks/:id","auth":"jwt"},{"method":"PUT","path":"/api/admin/page-blocks/reorder","auth":"jwt"}]}],"routes":[{"section":"System","method":"GET","path":"/","auth":"public","note":"Dashboard"},{"section":"System","method":"GET","path":"/api/health","auth":"public"},{"section":"System","method":"GET","path":"/api/database/test","auth":"public"},{"section":"Authentication","method":"POST","path":"/api/auth/login","auth":"public"},{"section":"Authentication","method":"GET","path":"/api/auth/me","auth":"jwt"},{"section":"Public website API","method":"GET","path":"/api/public/services","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/portfolio","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/portfolio-categories","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/events","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/blog","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/team","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/products","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/testimonials","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/site-settings","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/pages/nav","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/pages/slug/:slug","auth":"public"},{"section":"Public website API","method":"GET","path":"/api/public/pages/slug/:slug/blocks","auth":"public"},{"section":"Public website API","method":"POST","path":"/api/public/chatbot","auth":"public"},{"section":"Public website API","method":"POST","path":"/api/public/contact","auth":"public"},{"section":"Admin — uploads","method":"POST","path":"/api/admin/uploads/event-image","auth":"jwt"},{"section":"Admin — site & dashboard","method":"GET","path":"/api/admin/site-settings","auth":"jwt"},{"section":"Admin — site & dashboard","method":"PUT","path":"/api/admin/site-settings","auth":"jwt"},{"section":"Admin — site & dashboard","method":"GET","path":"/api/admin/counts","auth":"jwt"},{"section":"Admin — services","method":"GET","path":"/api/admin/services","auth":"jwt"},{"section":"Admin — services","method":"POST","path":"/api/admin/services","auth":"jwt"},{"section":"Admin — services","method":"PUT","path":"/api/admin/services/:id","auth":"jwt"},{"section":"Admin — services","method":"DELETE","path":"/api/admin/services/:id","auth":"jwt"},{"section":"Admin — portfolio","method":"GET","path":"/api/admin/portfolio-categories","auth":"jwt"},{"section":"Admin — portfolio","method":"POST","path":"/api/admin/portfolio-categories","auth":"jwt"},{"section":"Admin — portfolio","method":"PUT","path":"/api/admin/portfolio-categories/:id","auth":"jwt"},{"section":"Admin — portfolio","method":"DELETE","path":"/api/admin/portfolio-categories/:id","auth":"jwt"},{"section":"Admin — portfolio","method":"GET","path":"/api/admin/portfolio","auth":"jwt"},{"section":"Admin — portfolio","method":"POST","path":"/api/admin/portfolio","auth":"jwt"},{"section":"Admin — portfolio","method":"PUT","path":"/api/admin/portfolio/:id","auth":"jwt"},{"section":"Admin — portfolio","method":"DELETE","path":"/api/admin/portfolio/:id","auth":"jwt"},{"section":"Admin — events & content","method":"GET","path":"/api/admin/events","auth":"jwt"},{"section":"Admin — events & content","method":"POST","path":"/api/admin/events","auth":"jwt"},{"section":"Admin — events & content","method":"PUT","path":"/api/admin/events/:id","auth":"jwt"},{"section":"Admin — events & content","method":"DELETE","path":"/api/admin/events/:id","auth":"jwt"},{"section":"Admin — events & content","method":"GET","path":"/api/admin/blog","auth":"jwt"},{"section":"Admin — events & content","method":"POST","path":"/api/admin/blog","auth":"jwt"},{"section":"Admin — events & content","method":"PUT","path":"/api/admin/blog/:id","auth":"jwt"},{"section":"Admin — events & content","method":"DELETE","path":"/api/admin/blog/:id","auth":"jwt"},{"section":"Admin — events & content","method":"GET","path":"/api/admin/team","auth":"jwt"},{"section":"Admin — events & content","method":"POST","path":"/api/admin/team","auth":"jwt"},{"section":"Admin — events & content","method":"PUT","path":"/api/admin/team/:id","auth":"jwt"},{"section":"Admin — events & content","method":"DELETE","path":"/api/admin/team/:id","auth":"jwt"},{"section":"Admin — events & content","method":"GET","path":"/api/admin/testimonials","auth":"jwt"},{"section":"Admin — events & content","method":"POST","path":"/api/admin/testimonials","auth":"jwt"},{"section":"Admin — events & content","method":"PUT","path":"/api/admin/testimonials/:id","auth":"jwt"},{"section":"Admin — events & content","method":"DELETE","path":"/api/admin/testimonials/:id","auth":"jwt"},{"section":"Admin — products & messages","method":"GET","path":"/api/admin/products","auth":"jwt"},{"section":"Admin — products & messages","method":"POST","path":"/api/admin/products","auth":"jwt"},{"section":"Admin — products & messages","method":"PUT","path":"/api/admin/products/:id","auth":"jwt"},{"section":"Admin — products & messages","method":"DELETE","path":"/api/admin/products/:id","auth":"jwt"},{"section":"Admin — products & messages","method":"GET","path":"/api/admin/messages","auth":"jwt"},{"section":"Admin — products & messages","method":"PATCH","path":"/api/admin/messages/:id/read","auth":"jwt"},{"section":"Admin — products & messages","method":"DELETE","path":"/api/admin/messages/:id","auth":"jwt"},{"section":"Admin — pages & blocks","method":"GET","path":"/api/admin/pages","auth":"jwt"},{"section":"Admin — pages & blocks","method":"POST","path":"/api/admin/pages","auth":"jwt"},{"section":"Admin — pages & blocks","method":"PUT","path":"/api/admin/pages/:id","auth":"jwt"},{"section":"Admin — pages & blocks","method":"DELETE","path":"/api/admin/pages/:id","auth":"jwt"},{"section":"Admin — pages & blocks","method":"GET","path":"/api/admin/pages/:pageId/blocks","auth":"jwt"},{"section":"Admin — pages & blocks","method":"POST","path":"/api/admin/pages/:pageId/blocks","auth":"jwt"},{"section":"Admin — pages & blocks","method":"PUT","path":"/api/admin/page-blocks/:id","auth":"jwt"},{"section":"Admin — pages & blocks","method":"DELETE","path":"/api/admin/page-blocks/:id","auth":"jwt"},{"section":"Admin — pages & blocks","method":"PUT","path":"/api/admin/page-blocks/reorder","auth":"jwt"}],"documentation":{"browserDashboard":["/","/api"],"jsonOverview":"/?format=json","health":"/api/health"}}