Dashboard

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)