---
title: "Disconnect a booking provider"
method: DELETE
path: "/api/bookings/providers/{provider}/connection"
tags: ["Booking providers"]
---

# Disconnect a booking provider

`DELETE /api/bookings/providers/{provider}/connection`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/bookings/providers/{provider}/connection`
- Auth: API key in cookie `luca.session_token`

Removes the credentials and cleans up what the provider holds on its side, like registered webhooks. If that remote cleanup fails we keep the connection and return 502, so you're never left with a half-torn-down provider.

**Session-only.** This endpoint isn't on the API-key allowlist. An organization API key gets a 403 here, whatever scopes it holds.

## Path parameters

- `provider` 'manual' | 'calendly' | 'cal_com' | 'google_calendar' | 'iclosed' | 'gohighlevel', required

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- BookingProviderConnectionResponse
  - `provider` 'manual' | 'calendly' | 'cal_com' | 'google_calendar' | 'iclosed' | 'gohighlevel', required
  - `health` 'connected' | 'missing_credentials' | 'degraded', required
  - `connectedAt` string, nullable, required
  - `expiresAt` string, nullable, required
  - `reconnectRequired` boolean, required
  - `webhookSecret` string

## Other responses

- `400`: bad request
- `401`: unauthorized
- `429`: rate limited
- `500`: internal error
- `502`: upstream failure
- `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)
