Call Recording
Turn call recording on or off for any service, programmatically, with PUT /api/services/{id}/routing/recording.
Need call recording front-of-mind for compliance?
Log in to the ConsoleThe endpoint
PUT https://api.simpletelecom.com.au/v1/api/services/{service_id}/routing/recording
Enables or disables call recording for a single service.
Enable recording
curl -X PUT "https://api.simpletelecom.com.au/v1/api/services/123/routing/recording" \
-H "Authorization: Bearer st_your_token_here" \
-H "Content-Type: application/json" \
-d '{ "enabled": true }'
| Body field | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | Yes | true to record calls, false to stop |
A successful response returns a message and the updated call_recording.enabled value:
{
"message": "Call recording enabled.",
"call_recording": { "enabled": true }
}
Check whether recording is on
The current state is part of the routing configuration — read it with GET /api/services/{id}/routing:
const res = await fetch(
"https://api.simpletelecom.com.au/v1/api/services/123/routing",
{ headers: { Authorization: `Bearer ${token}` } }
);
const { call_recording } = await res.json();
console.log(call_recording.enabled ? "Recording is ON" : "Recording is OFF");
Use cases
- Compliance — make sure recording is enabled for every number that must capture calls for regulatory reasons, and audit the state across services.
- Quality assurance — toggle recording on for reviews and off otherwise.
- Training — record new-staff calls for coaching, then switch off once they're up to speed.
- Bulk policies — apply a consistent recording policy across all services by iterating your services list and setting
enabledon each.
Applying a policy across every service
Here's a JavaScript example that ensures recording is on for all your services:
JavaScript (fetch)
const token = "st_your_token_here";
const base = "https://api.simpletelecom.com.au/v1";
const { data: services } = await fetch(`${base}/api/services`,
{ headers: { Authorization: `Bearer ${token}` } }).then(r => r.json());
for (const svc of services) {
const { call_recording } = await fetch(`${base}/api/services/${svc.service_id}/routing`,
{ headers: { Authorization: `Bearer ${token}` } }).then(r => r.json());
if (!call_recording.enabled) {
await fetch(`${base}/api/services/${svc.service_id}/routing/recording`, {
method: "PUT",
headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" },
body: JSON.stringify({ enabled: true }),
});
console.log(`Enabled recording on ${svc.service_number}`);
}
}
A note on downloading recordings
Today the API lets you enable and disable recording on a service. Downloading the audio files themselves is done in the customer console.
Retrieval of recordings via the API is under consideration as a future enhancement. If you need to pull recordings programmatically (for example, to archive them into your own storage), let us know at info@simpletelecom.com.au — we'd love to hear about the use case.
Related
- Read call routing — see the recording state alongside routing.
- Manage forwarding — the companion routing endpoints.
- Error handling —
unauthorized_serviceandservice_not_founderrors.
