API · slots

Operaciones de slots del contrato OpenAPI que aceptan una clave de API.

Actualizado:

GET /slots

Horarios disponibles para un servicio

Cruza todos los requisitos del servicio (profesional, máquina, sala…). Requiere slots:read. Un servicio desactivado responde 409 service_inactive y un resource_id desactivado 409 resource_inactive (no 404: existen, solo que no se pueden reservar). Usá day o from + to (uno u otro; si no, 422 invalid_slot_query). day es el día de apertura en la zona del negocio (F3-503): incluye los horarios de la noche que sigue después de las 00:00 (20:00 – 03:00 (+1)) y no la madrugada de ese día, que pertenece a la noche anterior. Un turno puede cruzar las 00:00 sin cortarse.

  • Autenticación: Clave de API o sesión del panel
  • Scopes: slots:read

Parámetros

NombreEnObligatorioTipoDescripción
service_idquerySístring
dayqueryNostring (date)Día de apertura local (YYYY-MM-DD); sin from/to.
fromqueryNostring (date-time)Con to; sin day.
toqueryNostring (date-time)
party_sizequeryNointeger default 1
resource_idqueryNostringPreferencia (ej. un barbero)
resource_idsqueryNoarrayCo-responsables activos elegibles; todos quedan ocupados aunque superen el mínimo del requisito. Intersección antes del límite de horarios. No combinar con resource_id (422). Tenant de la credencial y RLS.
booking_idqueryNostring (uuid)Tarea visible del mismo tenant y servicio; excluye su propia ocupación (también pooled). Conserva la zona de la tarea; zone_id explícito diferente responde 422 invalid_slot_query. Si no se envían recursos conserva todos los actuales. Una tarea ajena responde 404.
duration_minqueryNointegerDuración propia de la tarea en minutos (5–1440); reemplaza la del servicio en los requisitos sin duración propia. La agenda del panel la usa para pintar los huecos de un turno estirado o achicado.
aroundqueryNostring (date-time)Hora preferida para ordenar
limitqueryNointeger default 20
zone_idqueryNostringZona (F1-38): solo sus días y horas, cruzados con la disponibilidad de sus miembros y su tope por franja. Si está desactivada, consulta general como al reagendar; una zona inexistente o ajena devuelve 422 invalid_slot_query
intake_dataqueryNostringObjeto JSON codificado con el destino del formulario (dirección, CEP, barrio, coordenadas). Resuelve la zona con la misma regla de POST /holds y POST /bookings. No combinar con zone_id (422 intake_invalid). Sin contexto de destino/zone_id, consulta general del servicio. Mantiene slots:read y tenant de la credencial.

Respuestas

EstadoDescripción
200OK (object)
defaultError (RFC 9457) (Problem)