v1 · Beta
API pública
Integrá tus turnos y estadísticas de MiniBio con tus propios sistemas: consultá reservas, creá turnos, confirmalos o cancelalos, y traé las métricas de todas tus páginas.
La creación de páginas, turneros y recursos no está disponible por API: se administra desde la app de MiniBio. Los endpoints de turnos requieren un plan con la función de reservas; el de estadísticas, un plan con estadísticas.
URL base
https://minibio-ar.onrender.com/api/v1Autenticación
Iniciá sesión con tu email y contraseña de MiniBio. La respuesta incluye un token que dura 7 días; mandalo en el header Authorization: Bearer <token> en el resto de las llamadas.
/auth/logincurl -X POST https://minibio-ar.onrender.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{ "email": "tu@email.com", "password": "tu-contraseña" }'
# Respuesta
{
"token": "eyJhbGciOi...",
"user": { "id": 1, "username": "minegocio", "plan": { "code": "pro", ... } }
}Páginas
/pagesLista tus páginas con su id (lo necesitás para filtrar turnos y consultar recursos).
curl https://minibio-ar.onrender.com/api/v1/pages -H "Authorization: Bearer <token>"
# Respuesta
{ "pages": [ { "id": 12, "title": "Barbería Roma", "slug": "barberia-roma", "created_at": "..." } ] }Turnos
/bookingsRequiere plan con reservasTodos los turnos de todas tus páginas. Filtros opcionales: from y to (fecha YYYY-MM-DD, hora argentina), status ( pending · confirmed · cancelled · no_show · done) y page_id.
curl "https://minibio-ar.onrender.com/api/v1/bookings?from=2026-07-13&to=2026-07-20&status=confirmed" \
-H "Authorization: Bearer <token>"
# Respuesta
{
"bookings": [
{
"id": 28, "starts_at": "2026-07-13T13:00:00.000Z", "ends_at": "2026-07-13T13:30:00.000Z",
"customer_name": "Juan Pérez", "customer_phone": "3415551234",
"status": "confirmed", "notes": null,
"resource": { "id": 3, "name": "Corte de pelo" },
"page": { "id": 12, "title": "Barbería Roma", "slug": "barberia-roma" }
}
]
}/resources/:pageIdRequiere plan con reservasRecursos reservables de una página (nombre, duración, cantidad simultánea) y su configuración. Necesitás el resource_id para crear turnos.
curl https://minibio-ar.onrender.com/api/v1/resources/12 -H "Authorization: Bearer <token>"/bookingsRequiere plan con reservasCrea un turno (equivale a la carga manual de la app: queda confirmado). El horario debe caer en un slot válido según la duración y los horarios del recurso, y respeta la capacidad simultánea — si el horario está lleno responde 409.
curl -X POST https://minibio-ar.onrender.com/api/v1/bookings \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"page_id": 12,
"resource_id": 3,
"starts_at": "2026-07-13T10:00:00-03:00",
"customer_name": "Juan Pérez",
"customer_phone": "3415551234",
"notes": "opcional"
}'/bookings/:idRequiere plan con reservasCambia el estado de un turno: confirmarlo, cancelarlo, marcar que el cliente no vino o que se completó.
curl -X PATCH https://minibio-ar.onrender.com/api/v1/bookings/28 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "status": "confirmed" }'
# status: "pending" | "confirmed" | "cancelled" | "no_show" | "done"Estadísticas
/statsRequiere plan con estadísticasLas mismas métricas que ves en la app, de todas tus páginas: visitas, clicks, CTR, top links, serie diaria de 30 días y números de reservas (totales, próximas, pendientes, no-shows). Solo lectura.
curl https://minibio-ar.onrender.com/api/v1/stats -H "Authorization: Bearer <token>"
# Respuesta (resumen)
{
"totals": { "pages": 2, "views": 340, "clicks": 120, "ctr": 35,
"bookings": 48, "bookings_upcoming": 6, "bookings_pending": 2, ... },
"pages": [ { "id": 12, "title": "Barbería Roma", "views": 210, "clicks": 80,
"bookings": { "total": 48, "upcoming": 6, "no_show": 3, ... }, ... } ],
"top_links": [ ... ],
"daily": [ { "day": "2026-07-01", "type": "view", "count": 14 }, ... ]
}Errores y límites
401— token faltante, inválido o vencido.403— tu plan no incluye esa funcionalidad, o el recurso no es tuyo.409— el horario del turno ya está completo.429— demasiadas peticiones (límite general: 120 por minuto por IP; login: 20 cada 15 minutos).- Los errores siempre vienen como
{ "error": "mensaje" }.
¿Todavía no tenés tu turnero?
Creá tu página en MiniBio y activá las reservas online con el plan Pro.
Crear mi página