API Reference
Todos los endpoints agrupados por dominio, con el rol minimo requerido para cada uno.
Schemas completos en Swagger
Los schemas de request body, query params, y responses estan documentados en el Swagger UI: https://api-alter-tracker.club-vanta.com/docs
Autenticacion
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| POST | /auth/register | Ninguno | Crear una cuenta de staff (queda pendiente de aprobacion) |
| POST | /auth/token | Ninguno | Login; retorna un JWT bearer token |
| GET | /auth/userinfo | Usuario aprobado | Perfil del usuario actual |
| POST | /auth/verify-recovery-code | Ninguno | Verificar si un codigo de recuperacion es valido sin consumirlo |
| POST | /auth/reset-password | Ninguno | Cambiar contrasena usando un codigo de recuperacion; consume el codigo al completar |
Organizaciones
Crear y editar organizaciones es exclusivo de SITE_ADMINs. La gestion de miembros esta disponible para ADMIN de org y SITE_ADMIN. Leer una org especifica esta disponible para cualquier miembro de esa org.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /organizations/ | SITE_ADMIN | Listar todas las organizaciones |
| POST | /organizations/ | SITE_ADMIN | Crear una organizacion |
| GET | /organizations/{org_id} | Miembro de la org o SITE_ADMIN | Ver detalles de la org |
| PATCH | /organizations/{org_id} | SITE_ADMIN | Editar nombre o slug de la org |
| GET | /organizations/{org_id}/members | ADMIN de org o SITE_ADMIN | Listar miembros de la org con sus roles |
| POST | /organizations/{org_id}/members/{user_id} | ADMIN de org o SITE_ADMIN | Agregar un usuario a la org con un rol |
| PATCH | /organizations/{org_id}/members/{user_id} | ADMIN de org o SITE_ADMIN | Cambiar el rol de un miembro (STAFF <-> ADMIN) |
| DELETE | /organizations/{org_id}/members/{user_id} | ADMIN de org o SITE_ADMIN | Remover un usuario de la org |
Usuarios
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /users/ | Usuario aprobado | Buscar usuarios por username (query param q) |
Staff
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /staff/ | SITE_ADMIN | Listar todas las cuentas de staff |
| GET | /staff/pending | SITE_ADMIN | Listar cuentas pendientes de aprobacion |
| PATCH | /staff/{user_id}/approve | SITE_ADMIN | Aprobar o revocar la aprobacion de una cuenta |
| PATCH | /staff/{user_id}/role | SITE_ADMIN | Cambiar el rol global de un usuario |
| PATCH | /staff/{user_id}/disable | SITE_ADMIN | Deshabilitar una cuenta (soft-delete, preserva historial) |
| PATCH | /staff/{user_id}/enable | SITE_ADMIN | Re-habilitar una cuenta deshabilitada |
| POST | /staff/{user_id}/recovery-code | SITE_ADMIN | Generar codigo de recuperacion de contrasena; retorna el codigo una sola vez |
Guests
Cualquier usuario aprobado (sin importar la org) puede acceder a los registros de guests.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /guests/ | Usuario aprobado | Listar todos los guests conocidos |
| POST | /guests/ | Usuario aprobado | Registrar un guest por su username de Mazmo; consulta Mazmo para obtener su perfil |
| GET | /guests/{mazmo_user_id} | Usuario aprobado | Obtener un guest por su mazmo_user_id numerico |
| GET | /guests/by-username/{username} | Usuario aprobado | Obtener un guest por su username de Mazmo |
Bans
Las operaciones de ban tienen scope de org. Ver la lista de baneados es accesible para cualquier miembro; emitir y levantar bans requiere rol ADMIN de org.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /organizations/{org_id}/guests/banned | Miembro de la org | Listar guests baneados actualmente en esta org |
| PATCH | /organizations/{org_id}/guests/{mazmo_user_id}/ban | ADMIN de org | Banear un guest en esta org; requiere razon |
| PATCH | /organizations/{org_id}/guests/{mazmo_user_id}/unban | ADMIN de org | Levantar el ban de un guest en esta org |
Meetups
Todas las operaciones de meetup tienen scope de org. Cualquier miembro puede leer y sincronizar; finalizar requiere ADMIN de org.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| POST | /organizations/{org_id}/meetups/ | Miembro de la org | Crear un meetup desde una URL de Mazmo; obtiene nombre y fecha de Mazmo |
| GET | /organizations/{org_id}/meetups/ | Miembro de la org | Listar meetups de la org (ordenados por fecha desc) |
| GET | /organizations/{org_id}/meetups/{meetup_id} | Miembro de la org | Ver un meetup |
| POST | /organizations/{org_id}/meetups/{meetup_id}/sync | Miembro de la org | Sincronizar la lista de RSVPs desde Mazmo |
| GET | /organizations/{org_id}/meetups/{meetup_id}/guests | Miembro de la org | Listar guests con RSVP y su estado de check-in y ban |
| PATCH | /organizations/{org_id}/meetups/{meetup_id}/finalize | ADMIN de org | Finalizar el meetup; bloquea check-ins y syncs |
| PATCH | /organizations/{org_id}/meetups/{meetup_id}/unfinalize | ADMIN de org | Des-finalizar el meetup |
Check-ins
Todas las operaciones de check-in tienen scope de org y estan disponibles para cualquier miembro.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| POST | /organizations/{org_id}/meetups/{meetup_id}/guests/{mazmo_user_id}/add-walkin | Miembro de la org | Agregar un guest al meetup como walk-in (sin RSVP previo) |
| POST | /organizations/{org_id}/meetups/{meetup_id}/guests/{mazmo_user_id}/checkin | Miembro de la org | Hacer check-in de un guest; registra hora de llegada, orden, y actor |
| PATCH | /organizations/{org_id}/meetups/{meetup_id}/guests/{mazmo_user_id}/undo-checkin | Miembro de la org | Deshacer un check-in; requiere razon |
Audit Log (Eventos)
Todos los endpoints de audit log tienen scope de org. Lo que puede ver cada rol esta descrito en Audit Trail.
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /organizations/{org_id}/events/ | ADMIN de org | Audit log completo de la org con filtros opcionales |
| GET | /organizations/{org_id}/events/meetups/{meetup_id} | Miembro de la org | Eventos de un meetup especifico |
| GET | /organizations/{org_id}/events/guests/{guest_id} | Miembro de la org | Eventos relacionados a un guest especifico |
| GET | /organizations/{org_id}/events/staff/{staff_id} | Miembro de la org | Eventos realizados por un staff especifico |
Los endpoints de eventos soportan filtros por tipo, rango de fechas, guest, meetup, actor, limit y offset. Ver Swagger para el detalle completo.
Health
| Metodo | Path | Rol requerido | Descripcion |
|---|---|---|---|
| GET | /ping | Ninguno | Liveness check; retorna {"ping": "pong"} |
| GET | /health | Ninguno | Health check incluyendo conectividad con la DB y la API de Mazmo |
| HEAD | /health | Ninguno | Health check liviano para UptimeRobot / Cloudflare |