API · slots
slots operations in the OpenAPI contract that accept an API key.
Updated:
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.
- Authentication: API key or dashboard session
- Scopes:
slots:read
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
service_id | query | Yes | string | |
day | query | No | string (date) | Día de apertura local (YYYY-MM-DD); sin from/to. |
from | query | No | string (date-time) | Con to; sin day. |
to | query | No | string (date-time) | |
party_size | query | No | integer default 1 | |
resource_id | query | No | string | Preferencia (ej. un barbero) |
resource_ids | query | No | array | Co-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_id | query | No | string (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_min | query | No | integer | Duració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. |
around | query | No | string (date-time) | Hora preferida para ordenar |
limit | query | No | integer default 20 | |
zone_id | query | No | string | Zona (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_data | query | No | string | Objeto 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. |
Responses
| Status | Description |
|---|---|
200 | OK (object) |
default | Error (RFC 9457) (Problem) |