Programmatic Cobrowse Initiation via Conversations API failing with 400

Trying to kick off a cobrowse session programmatically to stitch the trace context into the interaction metadata. The goal is to trigger the cobrowse from a server-side service using the Conversations API, but I’m hitting a wall.

I’m sending a POST to /api/v2/conversations/cobrowse/sessions with the following payload:

{
 "initiator": {
 "id": "agent-uuid-123"
 },
 "participants": [
 {
 "id": "customer-uuid-456"
 }
 ]
}

The response is a 400 Bad Request with the message: Invalid request body. Missing required field 'type' or 'action'. The documentation for this endpoint is surprisingly thin compared to the chat or voice endpoints. It doesn’t explicitly list the required schema fields for the root object.

I’ve tried adding "type": "cobrowse" and "action": "start" to the root, but the error persists or shifts to Unknown action. Is there a specific wrapper object I’m missing? The OTel span shows the request reaches the gateway, so it’s not a network issue.

Here’s the cURL I’m testing with:

curl -X POST \
 https://api.mypurecloud.com/api/v2/conversations/cobrowse/sessions \
 -H 'Authorization: Bearer <token>' \
 -H 'Content-Type: application/json' \
 -d '{"initiator": {"id": "agent-uuid-123"}, "participants": [{"id": "customer-uuid-456"}]}'

Any examples of a valid payload that actually works?