---
title: "Handler for DELETE /livekit/participant endpoint"
method: DELETE
path: "/livekit/participant"
tags: ["livekit"]
---

# Handler for DELETE /livekit/participant endpoint

`DELETE /livekit/participant`

Removes a participant from a LiveKit room, forcibly disconnecting them.
Access is authorized via `metadata.auth_id` check.

Note: This does not invalidate the participant's token. To prevent rejoining,
use short-lived tokens and avoid issuing new tokens to removed participants.

# Arguments
* `state` - Shared application state containing LiveKit configuration
* `auth` - Authentication context from middleware
* `request` - Request with room name and participant identity

# Returns
* `Response` - JSON response with removal status or error

# Authorization
- When `auth.id` is present: Requires `room.metadata.auth_id == auth.id`
- When `auth.id` is absent: Access is allowed (backward-compatible mode)

# Errors
* 400 Bad Request - Empty room name or participant identity
* 404 Not Found - Room/participant not found or access denied (masked)
* 500 Internal Server Error - LiveKit not configured or removal failed

# Flow
1. Validate request fields are not empty
2. Check room access via metadata.auth_id
3. Verify participant exists in the room
4. Remove the participant
5. Return success or appropriate error

## Request body

- RemoveParticipantRequest — Request body for removing a participant from a LiveKit room # Example ```json { "room_name": "conversation-room-123", "participant_identity": "user-alice-456" } ```
  - `participant_identity` string, required — The identity of the participant to remove
  - `room_name` string, required — The LiveKit room name where the participant is connected

## Response `200`

Participant removed successfully

- RemoveParticipantResponse — Response for a successful participant removal # Example ```json { "status": "removed", "room_name": "conversation-room-123", "participant_identity": "user-alice-456" } ```
  - `participant_identity` string, required — The identity of the removed participant
  - `room_name` string, required — The room name
  - `status` string, required — Status of the removal operation

## Other responses

- `400` — Invalid request (empty fields)
- `404` — Participant not found in room
- `500` — LiveKit not configured or removal failed

## Changes

- **2026-02-08** `0df166d28191` — 2 info
  - the endpoint scheme security `auth` was added to the API
  - the endpoint scheme security `bearer_auth` was removed from the API
- **2025-12-30** `3dea279a6ec1` — 1 info
  - endpoint added
- **2025-11-12** `d85b83f25aea` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/saynaai/apis/sayna-api/changes/livekit/participant/delete.md)

---

[API](https://skmtc.dev/saynaai/apis/sayna-api.md) · [All operations](https://skmtc.dev/saynaai/apis/sayna-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/saynaai/sayna-api/revisions/395ce7e35139/schema)
