POST /api/v2/conversations/calls/{id}/cobrowse returning 400 Bad Request

Trying to kick off a cobrowse session programmatically when an agent enters a specific state in the flow. We’ve got the conversation ID and the agent ID, so I’m hitting the POST /api/v2/conversations/calls/{id}/cobrowse endpoint from our Python middleware.

The auth token is valid since I’m using the same client credentials for other API calls that work fine. But this one keeps failing with a 400 Bad Request.

Here’s the payload I’m sending:

{
 "agentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE12345",
 "initiatorId": "f9e8d7c6-5432-10ba-fedc-EXAMPLE67890"
}

The agentId is the person who should be sharing their screen, and initiatorId is the supervisor who triggered the request via the API. I’ve double-checked that both users are active and have the correct cobrowse permissions in the admin console.

The error response body is pretty sparse:

{
 "message": "Request failed",
 "details": "Invalid request parameters"
}

I’ve tried swapping the IDs around just in case the roles were flipped, but no luck. Also tried sending an empty body since the docs are a bit vague on whether the JSON is strictly required for this endpoint, but that just gives a different 400 error about missing fields.

Is there a specific capability or role I’m missing on the agent side? Or is there a header I need to include besides the standard Content-Type: application/json? Feels like I’m missing something obvious about how the session initiator is handled in the API vs the UI.