> ## Documentation Index
> Fetch the complete documentation index at: https://developer.meetergo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Meeting Type

> Soft delete a meeting type

Soft delete a meeting type. The meeting type is marked as deleted but retained in the database for historical records.

## Endpoint

```
DELETE /v4/meeting-type/{id}
```

## Request Headers

| Header | Required | Description |
| - | - | - |
| `Authorization` | Yes | `Bearer <your-api-key>` |
| `x-meetergo-api-user-id` | Yes | UUID of the user who owns the meeting type |

## Path Parameters

| Parameter | Type | Description |
| - | - | - |
| `id` | string | UUID of the meeting type to delete |

## Query Parameters

| Parameter | Type | Default | Description |
| - | - | - | - |
| `deleteAvailability` | boolean | `false` | Also delete the associated availability. Fails if availability is shared with other meeting types. |

## Examples

```bash cURL theme={null}
curl -X DELETE "https://api.meetergo.com/v4/meeting-type/770e8400-e29b-41d4-a716-446655440002" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: 550e8400-e29b-41d4-a716-446655440000"
```

```javascript JavaScript theme={null}
const response = await fetch('https://api.meetergo.com/v4/meeting-type/770e8400-e29b-41d4-a716-446655440002', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'x-meetergo-api-user-id': '550e8400-e29b-41d4-a716-446655440000'
  }
});

if (response.ok) {
  console.log('Meeting type deleted');
}
```

```python Python theme={null}
import requests

response = requests.delete(
    'https://api.meetergo.com/v4/meeting-type/770e8400-e29b-41d4-a716-446655440002',
    headers={
        'Authorization': 'Bearer YOUR_API_KEY',
        'x-meetergo-api-user-id': '550e8400-e29b-41d4-a716-446655440000'
    }
)

if response.status_code == 200:
    print('Meeting type deleted')
```

## Response

### Success (200 OK)

Empty response body. The meeting type has been soft deleted.

### Error Responses

#### 404 Not Found

```json theme={null}
{
  "statusCode": 404,
  "message": "Meeting type not found",
  "error": "Not Found"
}
```

#### 403 Forbidden

```json theme={null}
{
  "statusCode": 403,
  "message": "Not authorized to delete this meeting type",
  "error": "Forbidden"
}
```

#### 409 Conflict (when `deleteAvailability=true`)

Returned when the availability is shared with other meeting types:

```json theme={null}
{
  "statusCode": 409,
  "message": "Cannot delete availability - it is used by other meeting types",
  "sharedWith": [
    { "id": "880e8400-e29b-41d4-a716-446655440003", "slug": "demo-call" },
    { "id": "880e8400-e29b-41d4-a716-446655440004", "slug": "quick-chat" }
  ]
}
```

#### 400 Bad Request (when `deleteAvailability=true`)

Returned when deleting the availability would leave the user with no availabilities:

```json theme={null}
{
  "statusCode": 400,
  "message": "One availability is required",
  "error": "Bad Request"
}
```

## Behavior

* **Soft delete**: The meeting type is marked with a `deletedAt` timestamp but not removed from the database
* **Booking URL disabled**: The public booking URL stops accepting new bookings
* **Existing bookings preserved**: Any existing appointments remain unaffected
* **Historical records**: The meeting type data is retained for webhook history and reporting

## Use Cases

### Cleanup After Ticket Completion

When using meeting types for ticket-based workflows, delete the meeting type and its dedicated availability after the appointment is completed:

```javascript theme={null}
// After booking webhook received
async function handleBookingCompleted(webhookData) {
  const meetingTypeId = webhookData.data.meetingType.id;

  // Clean up the ticket-specific meeting type and its availability
  await fetch(`https://api.meetergo.com/v4/meeting-type/${meetingTypeId}?deleteAvailability=true`, {
    method: 'DELETE',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'x-meetergo-api-user-id': webhookData.data.hosts[0].id
    }
  });
}
```

> [!TIP]
>
> Use `deleteAvailability=true` for ticket-based meeting types that have dedicated availability with specific time slots. This ensures complete cleanup.

## Related Endpoints

> **[Create Meeting Type](/api-reference/meeting-types/create-meeting-type)**
>
> Create a new meeting type

> **[List Meeting Types](/api-reference/meeting-types/list-meeting-types)**
>
> Get all meeting types for a user


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.