Skip to content

Organization Settings

These endpoints manage the current organization's settings — general preferences, calling behaviour, and the audio files used for hold music and ringback. Settings are stored per-organization and always scoped to the caller's org. For org CRUD and membership, see the Organizations API.

Return the current organization's settings and name. Values fall back to server defaults (and the global [calling] config) when unset.

Terminal window
GET /api/org/settings
{
"status": "success",
"data": {
"settings": {
"mask_phone_numbers": false,
"timezone": "UTC",
"date_format": "YYYY-MM-DD",
"calling_enabled": false,
"max_call_duration": 3600,
"transfer_timeout_secs": 60,
"hold_music_file": "",
"ringback_file": "",
"meta_app_id": "",
"meta_config_id": "",
"has_meta_app_secret": false
},
"name": "Acme Inc"
}
}

General

FieldTypeDescription
mask_phone_numbersbooleanMask contact phone numbers (and phone-like names) across the app and exports.
timezonestringDisplay timezone (default UTC).
date_formatstringDate display format (default YYYY-MM-DD).
meta_app_idstringMeta App ID for embedded signup.
meta_config_idstringMeta configuration ID for embedded signup.
has_meta_app_secretbooleanRead-only flag; true when a Meta app secret is stored. The secret itself is encrypted at rest and never returned.

Calling

FieldTypeDescription
calling_enabledbooleanEnable WebRTC voice calling for the organization.
max_call_durationintegerMaximum call length in seconds.
transfer_timeout_secsintegerSeconds to wait for an agent to accept a transfer.
hold_music_filestringFilename of the uploaded hold-music track.
ringback_filestringFilename of the uploaded ringback tone.

Update one or more settings. All fields are optional — only the fields present in the body are changed.

Terminal window
PUT /api/org/settings
{
"name": "Acme Inc",
"mask_phone_numbers": true,
"timezone": "America/New_York",
"date_format": "MM/DD/YYYY",
"calling_enabled": true,
"max_call_duration": 1800,
"transfer_timeout_secs": 45,
"hold_music_file": "org_<id>_hold_music.ogg",
"ringback_file": "org_<id>_ringback.ogg",
"meta_app_id": "123456789",
"meta_config_id": "987654321",
"meta_app_secret": "your-app-secret"
}
FieldTypeDescription
namestringOrganization name (ignored if empty).
mask_phone_numbersbooleanToggle phone masking.
timezonestringDisplay timezone.
date_formatstringDate display format.
calling_enabledbooleanEnable/disable calling.
max_call_durationintegerMax call seconds (applied only when > 0).
transfer_timeout_secsintegerTransfer accept timeout (applied only when > 0).
hold_music_filestringHold-music filename (usually set via the audio upload below).
ringback_filestringRingback filename (usually set via the audio upload below).
meta_app_idstringMeta App ID.
meta_config_idstringMeta configuration ID.
meta_app_secretstringMeta app secret; encrypted at rest. Ignored if empty.
{
"status": "success",
"data": {
"message": "Settings updated successfully"
}
}

Upload an audio file for hold music or ringback. The file is transcoded to OGG/Opus (48 kHz mono) for WebRTC playback, stored, and the matching hold_music_file / ringback_file setting is updated automatically.

Terminal window
POST /api/org/audio

Requires the organizations:write permission.

ParameterTypeRequiredDescription
typestringYeshold_music or ringback.
FieldTypeRequiredDescription
filefileYesAudio file, max 5 MB. Accepts OGG, Opus, MP3, and WAV.
{
"status": "success",
"data": {
"filename": "org_<id>_hold_music.ogg",
"type": "hold_music",
"mime_type": "audio/mpeg",
"size": 204800
}
}