Skip to main content
GET
/
v1
/
scheduling
/
availability
Disponibilidad por fecha específica
curl --request GET \
  --url https://api.keebai.com/v1/scheduling/availability \
  --header 'Authorization: Bearer <token>'
Computes the free slots for a service on a single date. The engine takes into account professional schedules, existing appointments, service buffers (bufferBefore, bufferAfter), and time restrictions (time_rules.earliest_start, time_rules.latest_end). If no branchId is provided, the tenant’s first branch is used.

Endpoint

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

Required scope

scheduling:availability:read

Query params

ParamTypeRequiredDescription
serviceIdstringYesService to book. Defines slot duration and restrictions.
datestringYesDate in YYYY-MM-DD format. If earlier than today in the branch’s tz, returns results: [].
branchIdstringNoBranch. If omitted, the tenant’s first branch is used.
professionalIdstringNoRestrict the computation to a specific professional.

Example request

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

Response

200 OK

{
  "results": [
    {
      "id": "66c1d2e3f4a5b6c7d8e9f0a1",
      "name": "María",
      "last_name": "Soto",
      "timeSlots": [
        { "time": "09:00" },
        { "time": "09:30" },
        { "time": "10:00" }
      ]
    }
  ]
}
FieldTypeDescription
results[].idstringProfessional id.
results[].timeSlots[].timestringSlot start time (HH:mm) in the branch’s tz.

400 Bad Request

date with an invalid format, missing serviceId, or no branch exists for the tenant.

401 Unauthorized · 403 Forbidden

Same semantics as the rest of the public API.

Common patterns

”Date → professional → time” picker UI

  1. The user picks a date.
  2. Your app calls GET /availability?date=<date>&serviceId=...&branchId=....
  3. The response groups slots by professional, ready to render as columns or rows.

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)

date
string
required

Fecha en formato YYYY-MM-DD

Example:

"2026-05-02"

branchId
string

Sucursal (default: primera del tenant)

professionalId
string

Profesional específico

Response

200

Disponibilidad por profesional para la fecha