---
title: "List normalized availability for an active booking type"
method: GET
path: "/api/bookings/managed-availability"
tags: ["Booking providers"]
---

# List normalized availability for an active booking type

`GET /api/bookings/managed-availability`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/bookings/managed-availability`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

Real bookable slots for one of Luca's own booking types, with the schedule applied and calendar conflicts already taken out. Times come back in the timezone you ask for.

**API key scopes:** `bookings:read`.

## Query parameters

- `bookingTypeId` string, uuid, required
- `timezone` string, required
- `start` string, date-time, nullable
- `end` string, date-time, nullable

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- ManagedBookingAvailabilityResponse
  - `bookingTypeId` string, uuid, required
  - `provider` 'manual' | 'calendly' | 'cal_com' | 'google_calendar' | 'iclosed' | 'gohighlevel', required
  - `timezone` string, required
  - `sourceFreshness` string, date-time, required
  - `slots` object[], required
    - `id` string, required
    - `bookingTypeId` string, uuid, required
    - `provider` 'manual' | 'calendly' | 'cal_com' | 'google_calendar' | 'iclosed' | 'gohighlevel', required
    - `startsAt` string, date-time, required
    - `endsAt` string, date-time, required
    - `timezone` string, required
    - `durationMinutes` integer, required
    - `location` union, required
      - object
        - `type` 'google_meet', required
      - object
        - `type` 'phone', required
        - `phoneNumber` string, required
      - object
        - `type` 'in_person', required
        - `address` string, required
      - object
        - `type` 'custom', required
        - `instructions` string, required
    - `sourceFreshness` string, date-time, required
    - `availabilityVersion` string, required

## Other responses

- `400`: bad request
- `401`: unauthorized
- `404`: not found
- `409`: conflict
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
