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​
| Parameter | Type | Required | Description |
|---|---|---|---|
name | String | No | Recording name/title |
format | String | No | Output format (wav, mp3, default: wav) |
quality | String | No | Quality (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​
| Quality | Bitrate | Use Case |
|---|---|---|
high | 256 kbps | Legal, medical, training |
standard | 128 kbps | General business use |
economy | 64 kbps | Archival, compliance |
Recording Format Options​
| Format | Extension | Size (per hour) | Use Case |
|---|---|---|---|
wav | .wav | ~1.3GB | Highest quality, editing |
mp3 | .mp3 | ~45MB | Web sharing, general use |
m4a | .m4a | ~45MB | iTunes 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);
Compliance and Legal​
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