API Reference
API REST completa para integrar todas las funcionalidades de SalonBookIt en tu aplicacion.
Introduccion
La API de SalonBookIt te permite:
- Consultar informacion del negocio, servicios y profesionales
- Verificar disponibilidad de horarios
- Crear y gestionar reservas
- Gestionar clientes y su programa de puntos
- Procesar pagos con Stripe
Base URL
https://app.salonbookit.com/api/v1
Formato de respuesta
Todas las respuestas siguen el mismo formato:
JSON (Exito)
{
"success": true,
"data": {
// Datos de la respuesta
}
}
JSON (Error)
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Descripcion del error"
}
}
Autenticacion
La API usa dos metodos de autenticacion:
API Key (Requerido siempre)
Identifica tu negocio. Se envia en el header X-API-Key.
X-API-Key: hh_live_abc123...
JWT Token (Endpoints privados)
Autentica al cliente. Se envia en el header Authorization.
Authorization: Bearer eyJhbG...
Ver la guia completa de autenticacion.
Endpoints disponibles
Catalogo (Publicos)
| Metodo | Endpoint | Descripcion |
|---|---|---|
| GET | /negocio/ |
Informacion del negocio |
| GET | /servicios/ |
Lista de servicios |
| GET | /servicios/{id}/ |
Detalle de servicio |
| GET | /peluqueros/ |
Lista de profesionales |
| GET | /peluqueros/{id}/ |
Detalle de profesional |
| GET | /disponibilidad/{peluquero}/{fecha}/ |
Horarios disponibles |
| GET | /categorias/ |
Categorias de servicios |
| GET | /productos/ |
Productos de la tienda |
Autenticacion
| Metodo | Endpoint | Descripcion |
|---|---|---|
| POST | /auth/registro/ |
Registrar nuevo cliente |
| POST | /auth/login/ |
Iniciar sesion |
| POST | /auth/verify-otp/ |
Verificar OTP |
| POST | /auth/refresh/ |
Renovar token JWT |
Reservas (Autenticado)
| Metodo | Endpoint | Descripcion |
|---|---|---|
| POST | /reservas/crear/ |
Crear reserva |
| GET | /cliente/reservas/ |
Mis reservas |
| GET | /reservas/{id}/ |
Detalle de reserva |
| POST | /reservas/{id}/cancelar/ |
Cancelar reserva |
Pagos
| Metodo | Endpoint | Descripcion |
|---|---|---|
| POST | /pagos/intent/ |
Crear PaymentIntent |
| POST | /pagos/confirmar/ |
Confirmar pago |
Cliente (Autenticado)
| Metodo | Endpoint | Descripcion |
|---|---|---|
| GET | /cliente/perfil/ |
Mi perfil |
| PUT | /cliente/perfil/ |
Actualizar perfil |
| GET | /cliente/puntos/ |
Mis puntos |
Paginacion
Los endpoints que devuelven listas soportan paginacion:
Parametros de query
| Parametro | Tipo | Defecto | Descripcion |
|---|---|---|---|
page |
integer | 1 | Numero de pagina |
page_size |
integer | 20 | Items por pagina (max 100) |
Respuesta paginada
JSON
{
"success": true,
"data": {
"items": [...],
"pagination": {
"page": 1,
"page_size": 20,
"total_items": 45,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
}
}
Filtros
Muchos endpoints soportan filtros mediante query parameters. Consulta la documentacion de cada endpoint para ver los filtros disponibles.
Ejemplo
HTTP
GET /api/v1/servicios/?categoria=1&activo=true&lang=es
Codigos HTTP
| Codigo | Significado |
|---|---|
200 OK |
Peticion exitosa |
201 Created |
Recurso creado exitosamente |
400 Bad Request |
Error en los parametros enviados |
401 Unauthorized |
Autenticacion requerida o invalida |
403 Forbidden |
Sin permisos para esta accion |
404 Not Found |
Recurso no encontrado |
429 Too Many Requests |
Rate limit excedido |
500 Internal Server Error |
Error del servidor |
Ver la referencia completa de errores.