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 Console

The 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 enabled on 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