Hey folks,
I’m trying to build a sidecar service that controls call recordings programmatically. The use case is pretty specific: we need to pause recording while the agent is doing internal notes, then resume when they’re talking to the customer again.
I’ve been digging through the /api/v2/recordings endpoints, but I’m stuck. I can see calls to GET /recordings to fetch existing recordings, but I don’t see a clear POST endpoint to start or stop a recording for an active conversation ID. The docs mention recordingStart and recordingStop events, but those seem to be for webhooks, not control.
I tried hitting POST /api/v2/recordings/{recordingId} but that 404s because the recording doesn’t exist yet. If I try to create one with POST /api/v2/recordings, it expects a file upload, which isn’t what I want.
Here’s the snippet I’m testing with in Node:
const axios = require('axios');
async function toggleRecording(conversationId, action) {
// action is 'start' or 'stop'
const url = `https://mycompany.mygenesiscpu.com/api/v2/recordings/${conversationId}/${action}`;
try {
const response = await axios.post(url, {}, {
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
}
});
console.log('Success:', response.data);
} catch (error) {
console.error('Failed:', error.response.status, error.response.data);
}
}
The 404 is expected since that endpoint path is made up. What’s the actual REST way to control this? Or am I forced to use the Architect flow to handle the recording state and just trigger the flow via API?