Skip to main content
GET
/
v1
/
scheduling
/
availability
/
range
Disponibilidad por rango de fechas (máximo 14 días)
curl --request GET \
  --url https://api.keebai.com/v1/scheduling/availability/range \
  --header 'Authorization: Bearer <token>'
Returns free slots for each day between from and to (both inclusive). Internally expands the range and queries each date in parallel. The range is capped at 14 days to bound per-request cost.

Endpoint

GET https://api.keebai.com/v1/scheduling/availability/range

Required scope

scheduling:availability:read

Query params

ParamTypeRequiredDescription
serviceIdstringYesService to book.
fromstringYesStart date (YYYY-MM-DD).
tostringYesEnd date (YYYY-MM-DD). Must be >= from and span at most 14 days.
branchIdstringNoBranch. If omitted, the tenant’s first branch is used.
professionalIdstringNoRestrict the computation to a professional.

Example request

curl -G https://api.keebai.com/v1/scheduling/availability/range \
  -H "Authorization: Bearer kbai_pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  --data-urlencode "serviceId=65b1c2d3e4f5a6b7c8d9e0f1" \
  --data-urlencode "branchId=65a1f2b3c4d5e6f7a8b9c0d1" \
  --data-urlencode "from=2026-05-02" \
  --data-urlencode "to=2026-05-08"

Response

200 OK

{
  "from": "2026-05-02",
  "to": "2026-05-08",
  "days": [
    {
      "date": "2026-05-02",
      "results": [
        {
          "id": "66c1...",
          "name": "María",
          "last_name": "Soto",
          "timeSlots": [{ "time": "09:00" }, { "time": "09:30" }]
        }
      ]
    },
    {
      "date": "2026-05-03",
      "results": []
    }
  ]
}
Each element of days has the same shape as the body of GET /availability. If one of the dates fails individually (upstream timeout or error for that specific day), results: [] is returned for that date and the rest of the range keeps resolving. The error is logged on Keebai’s side.

409 Conflict

{
  "error": {
    "code": "INVALID_DATE_RANGE",
    "message": "El rango no puede exceder 14 días"
  }
}
Also returned if to < from or the dates are otherwise invalid.

401 Unauthorized · 403 Forbidden

Same semantics as the rest of the public API.

Common patterns

Weekly calendar with availability

Call once per visible week and cache the result by (service, branch, professional, week). When an appointment is created or cancelled, invalidate the matching cache entry.

Authorizations

Authorization
string
header
required

Personal Access Token con prefijo kbai_pk_. Generar desde el portal con permiso developer.manage_tokens.

Query Parameters

serviceId
string
required

Servicio (requerido)

from
string
required

Fecha desde (YYYY-MM-DD)

to
string
required

Fecha hasta (YYYY-MM-DD, máximo 14 días desde from)

branchId
string
professionalId
string

Response

200

Disponibilidad agrupada por día