Skip to main content
GET
/
v1
/
voice
/
teams
/
{team_id}
/
voice-config
Get the team-level voice pipeline config for a team
curl --request GET \
  --url https://api-sandbox.featherhq.com/v1/voice/teams/{team_id}/voice-config \
  --header 'x-api-key: <api-key>'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "voice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "voice": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "provider": "<string>",
    "external_id": "<string>",
    "name": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "preview_url": "<string>",
    "language": "<string>",
    "accent": "<string>",
    "category": "<string>",
    "labels": {},
    "supported_models": [
      "<string>"
    ],
    "is_active": true
  },
  "stt_provider": "<string>",
  "stt_language": "<string>",
  "vad_provider": "<string>",
  "interruptions_enabled": true,
  "interruption_min_words": 123,
  "interruption_min_duration_ms": 123,
  "interruption_backoff_ms": 123,
  "interruption_sensitivity": 123,
  "interruption_final_transcript_grace_ms": 123,
  "min_endpoint_delay_ms": 123,
  "max_endpoint_delay_ms": 123,
  "preemptive_generation_enabled": true,
  "voicemail_detection_mode": "<string>",
  "voicemail_detection_timeout_ms": 123,
  "max_call_duration_ms": 123,
  "silence_timeout_ms": 123,
  "silence_reminder_count": 123,
  "silence_reminder_mode": "<string>",
  "silence_end_action": "<string>",
  "dtmf_enabled": true,
  "dtmf_termination_digit": "<string>",
  "dtmf_inter_digit_timeout_ms": 123,
  "dtmf_max_digits": 123,
  "dtmf_prefix": "<string>",
  "backchannel_enabled": true,
  "background_audio_volume": 123,
  "background_audio_loop": true,
  "background_audio_enabled": true,
  "noise_cancellation_enabled": true,
  "recording_enabled": true,
  "transcription_storage_enabled": true,
  "normalize_for_speech": true,
  "audio_in_sample_rate": 123,
  "audio_out_sample_rate": 123,
  "metrics_enabled": true,
  "usage_metrics_enabled": true,
  "language": "<string>",
  "multilingual_enabled": true,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "persona_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "voice_tuning": {},
  "stt_model": "<string>",
  "stt_provider_data": {},
  "tts_speed": 123,
  "tts_provider_data": {},
  "vad_provider_data": {},
  "local_vad_params": {},
  "turn_analyzer_params": {},
  "interruption_trigger_phrases": [
    "<string>"
  ],
  "interruption_hard_phrases": [
    "<string>"
  ],
  "hard_turn_timeout_ms": 123,
  "voicemail_detection_model": "<string>",
  "voicemail_message": "<string>",
  "end_call_phrases": [
    "<string>"
  ],
  "silence_reminder_message": "<string>",
  "silence_end_message": "<string>",
  "backchannel_frequency": 123,
  "pronunciation_overrides": {},
  "background_audio_preset": "<string>",
  "heartbeats_period_secs": 123,
  "idle_pipeline_timeout_ms": 123,
  "locale": "<string>",
  "multilingual_languages": [
    "<string>"
  ],
  "metadata_": {},
  "first_speaking_config": {
    "first_speaker": "agent",
    "mode": "static",
    "text": "<string>",
    "instructions": "<string>",
    "interruptible": true,
    "ai_disclosure_text": "<string>"
  },
  "warnings": [
    "<string>"
  ]
}

Authorizations

x-api-key
string
header
required

Path Parameters

team_id
string<uuid>
required

Response

Successful Response

id
string<uuid>
required
voice_id
string<uuid>
required
voice
VoiceOut · object
required
stt_provider
string
required
stt_language
string
required
vad_provider
string
required
interruptions_enabled
boolean
required
interruption_min_words
integer
required
interruption_min_duration_ms
integer
required
interruption_backoff_ms
integer
required
interruption_sensitivity
number
required
interruption_final_transcript_grace_ms
integer
required
min_endpoint_delay_ms
integer
required
max_endpoint_delay_ms
integer
required
preemptive_generation_enabled
boolean
required
voicemail_detection_mode
string
required
voicemail_detection_timeout_ms
integer
required
max_call_duration_ms
integer
required
silence_timeout_ms
integer
required
silence_reminder_count
integer
required
silence_reminder_mode
string
required
silence_end_action
string
required
dtmf_enabled
boolean
required
dtmf_termination_digit
string
required
dtmf_inter_digit_timeout_ms
integer
required
dtmf_max_digits
integer
required
dtmf_prefix
string
required
backchannel_enabled
boolean
required
background_audio_volume
number
required
background_audio_loop
boolean
required
background_audio_enabled
boolean
required
noise_cancellation_enabled
boolean
required
recording_enabled
boolean
required
transcription_storage_enabled
boolean
required
normalize_for_speech
boolean
required
audio_in_sample_rate
integer
required
audio_out_sample_rate
integer
required
metrics_enabled
boolean
required
usage_metrics_enabled
boolean
required
language
string
required
multilingual_enabled
boolean
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
organization_id
string<uuid> | null
agent_id
string<uuid> | null
team_id
string<uuid> | null
persona_id
string<uuid> | null
voice_tuning
Voice Tuning · object
stt_model
string | null
stt_provider_data
Stt Provider Data · object
tts_speed
number | null
tts_provider_data
Tts Provider Data · object
vad_provider_data
Vad Provider Data · object
local_vad_params
Local Vad Params · object
turn_analyzer_params
Turn Analyzer Params · object
interruption_trigger_phrases
string[]
interruption_hard_phrases
string[]
hard_turn_timeout_ms
integer | null
voicemail_detection_model
string | null
voicemail_message
string | null
end_call_phrases
string[]
silence_reminder_message
string | null
silence_end_message
string | null
backchannel_frequency
integer | null
pronunciation_overrides
Pronunciation Overrides · object
background_audio_preset
string | null
heartbeats_period_secs
integer | null
idle_pipeline_timeout_ms
integer | null
locale
string | null
multilingual_languages
string[]
metadata_
Metadata · object
first_speaking_config
FirstSpeakingConfig · object

Config for the AI's opening turn (no user input yet).

Lives inside ChannelConfig — first-speaking is per-channel.

Mode-agnostic fields:

  • first_speaker: "agent" opens the call with the rendered message; "user" skips the greeting (caller speaks first). Non-voice channels treat the inbound user message as the "user" opener and ignore this field at runtime.

Greeting source (only applies when first_speaker="agent"):

  • static mode: text is required and emitted verbatim (templated via the shared {{var}} engine, src.shared.templating.render).
  • dynamic mode: instructions are sent to the model router with the agent persona to render an opening line (instructions are templated). When omitted/empty, instructions falls back to DEFAULT_DYNAMIC_FIRST_SPEAKING_INSTRUCTIONS so operators who just want a generic friendly opener don't have to author copy.

Voice-only fields (ignored on non-audio channels):

  • interruptible: whether the caller can barge in mid-greeting.
  • ai_disclosure_text: regulatory disclosure (e.g. CA SB 1001), played as an uninterruptible TTS frame BEFORE the greeting. Disclosure plays even when first_speaker="user" because the regulation requires the disclosure regardless of who speaks first.
warnings
string[]