API call to remove specific participant from conference call via Conversations API

Can anyone clarify the correct syntax for removing a specific participant from an active conference call using the Conversations API? I am building a digital flow that needs to programmatically drop a participant based on a webhook trigger, but the standard DELETE /api/v2/conversations/voice/{conversationId} endpoint terminates the entire call rather than isolating the target leg. I need to preserve the remaining participants while ejecting only the specified user.

I have attempted to use the POST /api/v2/conversations/voice/{conversationId}/participants/{participantId}/disconnect endpoint as suggested in the documentation for individual participant control. My request body is minimal, containing only {"disconnect": true} within the JSON payload. I am authenticating via OAuth2 with a valid access token generated from our integration credentials, and the conversationId and participantId are extracted directly from the incoming webhook payload to ensure accuracy.

The request consistently returns a 400 Bad Request error with the message "error_code": "invalid_request". I have verified that the participant is indeed in the connected state and that the call is a multi-party conference, not a simple point-to-point transfer. I also tried including the reason field in the JSON, but the result remains unchanged. The documentation is sparse on the exact schema requirements for the disconnect action body, leading me to suspect a missing or malformed property in my request structure.

My current implementation uses the Python SDK method client.conversations_api.post_conversations_voice_participant_disconnect. Here is the snippet I am working with:

body = {'disconnect': True}
try:
 result = client.conversations_api.post_conversations_voice_participant_disconnect(
 conversation_id=conv_id,
 participant_id=part_id,
 body=body
 )
except Exception as e:
 print(f"Error: {e}")

Is there a specific flag or additional parameter required in the body to successfully disconnect a single leg from a conference? Or is there an alternative endpoint I should be leveraging for this specific use case?