POST /api/v2/recordings/conversations/calls/{callId}/recording returns 404

We are attempting to programmatically toggle recording status for active voice conversations using the Genesys Cloud Platform API. The workflow involves capturing the conversationId from the inbound webhook and executing a PUT request to /api/v2/conversations/calls/{conversationId}/recordingstate with a JSON body of { “startRecording”: true }. The authentication headers are correct, as we can successfully fetch user details, yet the recording endpoint consistently responds with a 404 Not Found error. This occurs even when the conversationId is verified as active in the monitoring dashboard.

The request payload structure matches the documentation examples exactly, and we have confirmed the OAuth token possesses the recording:write scope. It is possible that the API requires the conversationId instead of the callId for this specific operation, or perhaps there is a delay in state propagation that we are not accounting for. Any clarification on the correct identifier to use for this endpoint would be appreciated.

Maybe the ID format is off? That endpoint expects the specific conversationId, not the generic callId. They’re different strings. Try swapping it out.

PUT /api/v2/conversations/calls/{conversationId}/recordingstate

Check the inbound webhook payload for the actual conversationId field.

1 Like

Careful with that endpoint. You can’t just start recording mid-stream on an existing call. It fails with a 404 because the recording session wasn’t initialized at connection time. You need to set record: true in the routing config or use the Telephony Provider API to inject the recording leg from the start.

1 Like