Disponibilidad
Endpoints para consultar horarios disponibles para reservas.
GET
/api/v1/disponibilidad/{peluquero_id}/{fecha}/
Obtiene los slots de tiempo disponibles para un profesional en una fecha especifica.
Path parameters
| Parametro | Tipo | Descripcion |
|---|---|---|
peluquero_id |
integer | ID del profesional |
fecha |
string | Fecha en formato YYYY-MM-DD |
Query parameters
| Parametro | Tipo | Descripcion |
|---|---|---|
servicio_id |
integer | ID del servicio (para calcular duracion) |
servicios |
string | IDs de servicios separados por coma (para multiples) |
duracion |
integer | Duracion personalizada en minutos |
Ejemplo de peticion
cURL
curl -X GET "https://app.salonbookit.com/api/v1/disponibilidad/5/2024-01-20/?servicio_id=15" \
-H "X-API-Key: hh_live_abc123..."
Respuesta (200 OK)
JSON
{
"success": true,
"data": {
"fecha": "2024-01-20",
"profesional": {
"id": 5,
"nombre": "Carlos Garcia"
},
"duracion_solicitada": 30,
"slots": [
{
"hora_inicio": "09:00",
"hora_fin": "09:30",
"disponible": true
},
{
"hora_inicio": "09:30",
"hora_fin": "10:00",
"disponible": true
},
{
"hora_inicio": "10:00",
"hora_fin": "10:30",
"disponible": false,
"motivo": "ocupado"
},
{
"hora_inicio": "10:30",
"hora_fin": "11:00",
"disponible": false,
"motivo": "ocupado"
},
{
"hora_inicio": "11:00",
"hora_fin": "11:30",
"disponible": true
},
// ... resto de slots del dia
],
"slots_disponibles_count": 18,
"proximo_disponible": "09:00",
"ultimo_disponible": "19:30"
}
}
Campos de respuesta
| Campo | Tipo | Descripcion |
|---|---|---|
fecha |
string | Fecha consultada |
profesional |
object | Info del profesional |
duracion_solicitada |
integer | Duracion usada para calcular slots |
slots |
array | Lista de slots de tiempo |
slots[].hora_inicio |
string | Hora de inicio (HH:MM) |
slots[].hora_fin |
string | Hora de fin (HH:MM) |
slots[].disponible |
boolean | Si esta disponible para reservar |
slots[].motivo |
string | Razon si no esta disponible |
Intervalo de slots
Los slots se generan en intervalos de 15 o 30 minutos segun la configuracion del negocio.
GET
/api/v1/disponibilidad/dias/
Obtiene los dias con disponibilidad en un rango de fechas.
Query parameters
| Parametro | Tipo | Descripcion |
|---|---|---|
peluquero_id |
integer | ID del profesional (opcional) |
servicio_id |
integer | ID del servicio |
desde |
string | Fecha inicio (YYYY-MM-DD). Defecto: hoy |
hasta |
string | Fecha fin (YYYY-MM-DD). Defecto: +30 dias |
Ejemplo de peticion
cURL
curl -X GET "https://app.salonbookit.com/api/v1/disponibilidad/dias/?peluquero_id=5&servicio_id=15&desde=2024-01-15&hasta=2024-02-15" \
-H "X-API-Key: hh_live_abc123..."
Respuesta (200 OK)
JSON
{
"success": true,
"data": {
"desde": "2024-01-15",
"hasta": "2024-02-15",
"dias": [
{
"fecha": "2024-01-15",
"disponible": true,
"slots_libres": 12,
"primer_slot": "09:00",
"ultimo_slot": "18:30"
},
{
"fecha": "2024-01-16",
"disponible": true,
"slots_libres": 8,
"primer_slot": "11:00",
"ultimo_slot": "19:00"
},
{
"fecha": "2024-01-17",
"disponible": false,
"slots_libres": 0,
"motivo": "completo"
},
{
"fecha": "2024-01-18",
"disponible": false,
"slots_libres": 0,
"motivo": "festivo"
}
// ... resto de dias
],
"dias_disponibles_count": 22
}
}
Este endpoint es util para mostrar un calendario donde los dias sin disponibilidad aparezcan deshabilitados.
Errores comunes
| Codigo | HTTP | Descripcion |
|---|---|---|
PROFESSIONAL_NOT_FOUND |
404 | El profesional no existe |
INVALID_DATE |
400 | Formato de fecha invalido (debe ser YYYY-MM-DD) |
DATE_IN_PAST |
400 | La fecha es anterior a hoy |
DATE_TOO_FAR |
400 | La fecha excede el limite de reserva anticipada |
PROFESSIONAL_NOT_WORKING |
200 | El profesional no trabaja ese dia (slots vacio) |