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 POST request to /api/v2/recordings/conversations/calls/{callId}/recording 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 callId 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 callId, not the generic conversationId. They’re different strings. Try swapping it out.

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

Check the inbound webhook payload for the actual callId field.

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.