Conversations API: Removing specific participant from conference via REST

Hey everyone,

Running into a bit of a head-scratcher with the Genesys Cloud Conversations API. We’re trying to programmatically drop a specific participant from an active conference call using our Node.js backend. The docs show the DELETE /api/v2/conversations/{conversationId}/participants/{participantId} endpoint, which seems straightforward enough.

We’ve got the conversation ID and the participant ID pulled from the initial webhook payload. When we fire off the DELETE request, we get a 204 No Content back, which usually means success. But the participant isn’t actually leaving the call. The call stays connected, and we can still hear them in the conference bridge.

Here’s the snippet we’re using:

const response = await axios.delete(
 `https://mycompany.mygen.com/api/v2/conversations/${convId}/participants/${partId}`,
 {
 headers: {
 'Authorization': `Bearer ${token}`,
 'Content-Type': 'application/json'
 }
 }
);
console.log('Remove status:', response.status);

We’ve double-checked the token permissions and it has the conversation:manage scope. We’ve also tried waiting a few seconds before checking the call state, but no luck. The participant object in the GET request still shows state: connected.

Is there a specific reason the DELETE endpoint isn’t actually terminating the connection? Or are we missing a step like sending a specific action code or using a different endpoint? We tried using the actions endpoint to send a disconnect action, but that requires the participant ID which we do have, yet it feels like the DELETE route should be the cleanest way.

Anyone else hit this wall? It’s pretty blocking for our use case where we need to silently drop agents from conferences based on external triggers.

Thanks in advance.