Documentación de la API REST
Base: https://monteroz.com/api
Formato de respuesta
Todas las respuestas usan una envoltura común:
Éxito: { "success": true, "data": … , "meta": { … } }
Error: { "success": false, "error": { "message": "…", "fields": { … } } }
Autenticación
Actualmente por sesión de cookie: autentícate con
POST /api/login y reutiliza la cookie.
La autenticación por token Bearer está prevista como siguiente paso
(la tabla personal_access_tokens ya existe); los endpoints marcados con
auth requieren sesión.
Sistema
GET
/api/health
Estado del servicio y la base de datos.
GET
/api/docs
Este catálogo de endpoints (JSON).
Autenticación
POST
/api/login
Inicia sesión (cookie de sesión).
POST
/api/register
Crea una cuenta.
GET
/api/me
auth Usuario autenticado.
POST
/api/logout
Cierra la sesión.
Mesas
GET
/api/mesas
Listado público paginado (?page,?per_page,?q).
GET
/api/mesas/{slug}
Detalle de una mesa (respeta privacidad).
GET
/api/mesas/{slug}/publicaciones
Publicaciones de la mesa (?page).
GET
/api/mesas/{slug}/objetivos
Objetivos aprobados (cronograma).
GET
/api/mesas/{slug}/chat
auth Mensajes del chat flotante grupal de la mesa.
POST
/api/mesas/{slug}/chat
auth Envía un mensaje al chat de la mesa. Body: {"body"}.
Publicaciones
GET
/api/publicaciones/{id}
Detalle de una publicación con adjuntos.
Búsqueda
GET
/api/buscar
Búsqueda global (?q) en usuarios, mesas, publicaciones y etiquetas.
Notificaciones
GET
/api/notificaciones
auth Lista + conteo no leído.
GET
/api/notificaciones/no-leidas
auth Solo el conteo no leído.
POST
/api/notificaciones/{id}/leer
auth Marca una notificación como leída.
POST
/api/notificaciones/leer-todas
auth Marca todas como leídas.
Agenda personal
GET
/api/agenda
auth Eventos del usuario en un rango de fechas (?start,?end, AAAA-MM-DD).
POST
/api/agenda
auth Crea un evento. Body: {"title","event_date","event_time"?}.
DELETE
/api/agenda/{id}
auth Elimina un evento propio.
Chat privado (panel de inicio)
GET
/api/chat/con/{username}
auth Mensajes de la conversación privada con ese usuario (la crea si no existe).
POST
/api/chat/con/{username}
auth Envía un mensaje privado. Body: {"body"}.
Versión legible por máquina: GET /api/docs