Referencia · Disponibilidad

Horarios libres de un servicio

GET /api/v1/disponibilidad

Ver en Markdown
GET/api/v1/disponibilidad

Scope disponibilidad:leer. Horas en la zona del negocio. Parámetros fuera de la lista dan 400. La respuesta puede tener hasta 45 segundos de antigüedad (caché por negocio y parámetros); la reserva vuelve a validar el horario.

Autenticación: Authorization: Bearer <clave>. Ver Autenticación.

Parámetros

NombreEnTipoObligatorioDescripción
servicioIdquerystringSí
varianteIdquerystringNoOpción del servicio (obligatoria si el servicio tiene opciones).
profesionalIdquerystringNo
sucursalIdquerystringNo
desdequerystring (date)NoAAAA-MM-DD; por defecto, hoy.
diasqueryintegerNoEntre 1 y 60. Por defecto 14.
addOnIdsquerystringNoIds de extras separados por coma (estiran la duración).

Ejemplo

curl "https://turnovapp.com/api/v1/disponibilidad?servicioId=cmh3s0abc0012&desde=2030-01-01&dias=7" \
  -H "Authorization: Bearer $TURNOVA_CLAVE_SECRETA"

Respuestas

HTTPQué significa
200Horarios
400Datos inválidos: mirá error.campos (ENTRADA_INVALIDA, IDEMPOTENCY_KEY_FALTANTE…).
401Clave faltante, inválida o revocada.
403Origen no permitido, permiso faltante, clave secreta desde un navegador o plan sin la API (PLAN_SIN_API).
404No existe o no es de este negocio.
429Demasiados pedidos (LIMITE_USO): esperá Retry-After segundos.
500Error técnico: reintentá con los mismos datos (y la misma Idempotency-Key).

Respuesta 200

{
  "version": 1,
  "ok": true,
  "progreso": {
    "principal": "CONSULTADO"
  },
  "requiereRevision": false,
  "datos": {
    "horarios": {
      "2030-01-10": [
        "10:00",
        "11:00",
        "15:30"
      ]
    },
    "horariosPorProfesional": {
      "cmh3p0lucia01": {
        "2030-01-10": [
          "10:00",
          "15:30"
        ]
      }
    },
    "diasSinLugar": [
      "2030-01-12"
    ],
    "profesionales": [
      {
        "id": "cmh4k2n9x0001",
        "nombre": "Masaje descontracturante"
      }
    ],
    "finPorHorario": {}
  }
}
CampoTipoObligatorioDescripción
datos.horariosobjectNoPor fecha AAAA-MM-DD.
datos.horariosPorProfesionalobjectNo
datos.diasSinLugararray de string (date)No
datos.profesionalesarray de objectNo
datos.profesionales[].idstringNo
datos.profesionales[].nombrestringNo
datos.finPorHorarioobjectNoSolo combos por etapas: fin real por fecha y hora de inicio.

Los errores siguen el formato común: ver Errores.