Skip to main content

Conference Recording

Record conference calls for compliance, training, or reference purposes. Retrieve, manage, and playback recordings.

Endpoints​

Start Recording​

POST https://api.audian.com:8443/v2/conferences/{conferenceId}/recording/start

Stop Recording​

POST https://api.audian.com:8443/v2/conferences/{conferenceId}/recording/stop

List Recordings​

GET https://api.audian.com:8443/v2/conferences/{conferenceId}/recordings

Get Recording Details​

GET https://api.audian.com:8443/v2/conferences/{conferenceId}/recordings/{recordingId}

Delete Recording​

DELETE https://api.audian.com:8443/v2/conferences/{conferenceId}/recordings/{recordingId}

Start Recording​

Begin recording a conference call.

Request​

curl -X POST https://api.audian.com:8443/v2/conferences/conf_abc123def456/recording/start \
-H "X-Auth-Token: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Team Standup - Feb 4",
"format": "wav"
}'

Headers​

Content-Type: application/json
X-Auth-Token: YOUR_API_KEY

Parameters​

ParameterTypeRequiredDescription
nameStringNoRecording name/title
formatStringNoOutput format (wav, mp3, default: wav)
qualityStringNoQuality (high, standard, default: standard)

JavaScript/Node.js​

const axios = require('axios');

const startRecording = async (conferenceId, recordingName) => {
try {
const response = await axios.post(
`https://api.audian.com:8443/v2/conferences/${conferenceId}/recording/start`,
{
name: recordingName,
format: 'wav',
quality: 'high'
},
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log('Recording started:', response.data);
return response.data;
} catch (error) {
console.error('Failed to start recording:', error);
}
};

// Usage
startRecording('conf_abc123def456', 'Team Meeting Feb 4');

Python​

import requests
from datetime import datetime

def start_recording(api_key, conference_id, name=None, format='wav', quality='standard'):
url = f'https://api.audian.com:8443/v2/conferences/{conference_id}/recording/start'
headers = {
'X-Auth-Token': api_key,
'Content-Type': 'application/json'
}

if not name:
name = f'Conference Recording {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}'

payload = {
'name': name,
'format': format,
'quality': quality
}

response = requests.post(url, headers=headers, json=payload)
return response.json()

# Usage
result = start_recording(
api_key='YOUR_API_KEY',
conference_id='conf_abc123def456',
name='Team Standup - Feb 4',
format='mp3'
)
print(result)

Stop Recording​

Stop the active recording for a conference.

curl -X POST https://api.audian.com:8443/v2/conferences/conf_abc123def456/recording/stop \
-H "X-Auth-Token: YOUR_API_KEY" \
-H "Content-Type: application/json"

List Recordings​

Retrieve all recordings for a conference.

curl -X GET "https://api.audian.com:8443/v2/conferences/conf_abc123def456/recordings?limit=10&offset=0" \
-H "X-Auth-Token: YOUR_API_KEY"

Response Format​

Start Recording Success (200)​

{
"id": "rec_abc123def456",
"conference_id": "conf_abc123def456",
"name": "Team Standup - Feb 4",
"status": "recording",
"format": "wav",
"quality": "high",
"started_at": "2024-02-04T11:30:00Z",
"ended_at": null,
"duration": null,
"size": null,
"url": null
}

Stop Recording Success (200)​

{
"id": "rec_abc123def456",
"conference_id": "conf_abc123def456",
"name": "Team Standup - Feb 4",
"status": "completed",
"format": "wav",
"quality": "high",
"started_at": "2024-02-04T11:30:00Z",
"ended_at": "2024-02-04T12:00:00Z",
"duration": 1800,
"size": 57600000,
"url": "https://api.audian.com:8443/v2/recordings/rec_abc123def456/download",
"created_at": "2024-02-04T11:30:00Z"
}

List Recordings Success (200)​

{
"recordings": [
{
"id": "rec_abc123def456",
"conference_id": "conf_abc123def456",
"name": "Team Standup - Feb 4",
"status": "completed",
"format": "wav",
"duration": 1800,
"size": 57600000,
"started_at": "2024-02-04T11:30:00Z",
"ended_at": "2024-02-04T12:00:00Z",
"url": "https://api.audian.com:8443/v2/recordings/rec_abc123def456/download"
}
],
"total": 1,
"limit": 10,
"offset": 0
}

Download Recording​

Access a completed recording:

curl -X GET https://api.audian.com:8443/v2/recordings/rec_abc123def456/download \
-H "X-Auth-Token: YOUR_API_KEY" \
-o recording.wav

Automatic Recording​

Enable automatic recording when creating a conference:

curl -X POST https://api.audian.com:8443/v2/conferences \
-H "X-Auth-Token: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Weekly Meeting",
"record": true
}'

Recording Quality Options​

QualityBitrateUse Case
high256 kbpsLegal, medical, training
standard128 kbpsGeneral business use
economy64 kbpsArchival, compliance

Recording Format Options​

FormatExtensionSize (per hour)Use Case
wav.wav~1.3GBHighest quality, editing
mp3.mp3~45MBWeb sharing, general use
m4a.m4a~45MBiTunes compatible

Recording Management​

Automatic Cleanup​

Older recordings are automatically archived based on your plan:

  • Standard Plan: 30 days active storage
  • Professional Plan: 90 days active storage
  • Enterprise Plan: Unlimited storage

Manual Deletion​

const deleteRecording = async (conferenceId, recordingId) => {
await axios.delete(
`https://api.audian.com:8443/v2/conferences/${conferenceId}/recordings/${recordingId}`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
};

Recording Workflow​

Complete Recording Lifecycle​

// 1. Create conference with auto-record enabled
const conf = await createConference('Board Meeting', { record: true });

// 2. Add participants
const participants = await addParticipants(conf.id, [...]);

// 3. Recording automatically starts

// 4. Conference concludes
await endConference(conf.id);

// 5. Retrieve recording details
const recording = await getRecording(conf.id);

// 6. Download or archive
const downloadUrl = recording.url;

// 7. Delete if no longer needed
await deleteRecording(conf.id, recording.id);

Recording Compliance​

  • Ensure compliance with local recording laws
  • Many jurisdictions require all-party consent
  • Notify participants that recording is active
  • Store recordings securely and encrypt sensitive data
  • Implement access controls for sensitive recordings

Retention Policies​

Set up retention policies for compliance:

const retentionPolicy = {
days: 90,
auto_delete: true,
notification_before_deletion: 7
};

Limits and Quotas​

  • Max concurrent recordings: 10 per account
  • Max recording duration: 24 hours continuous
  • Max file size: 2GB per recording
  • Retention: Per your service plan
  • Download bandwidth: Unlimited
  • Recording latency: < 1 second from conference start