openapi: 3.1.0 info: contact: email: support@telnyx.com description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform. title: Telnyx Access Tokens Conference Commands API version: 2.0.0 x-endpoint-cost: light servers: - description: Version 2.0.0 of the Telnyx API url: https://api.telnyx.com/v2 security: - bearerAuth: [] tags: - description: Conference command operations name: Conference Commands paths: /conferences: get: description: Lists conferences. Conferences are created on demand, and will expire after all participants have left the conference or after 4 hours regardless of the number of active participants. Conferences are listed in descending order by `expires_at`. operationId: ListConferences parameters: - $ref: '#/components/parameters/ConferenceRegion' - $ref: '#/components/parameters/call-control_FilterConsolidated' - $ref: '#/components/parameters/call-control_PageConsolidated' responses: '200': $ref: '#/components/responses/ListConferencesResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: List conferences tags: - Conference Commands x-group-parameters: 'true' x-latency-category: responsive post: description: 'Create a conference from an existing call leg using a `call_control_id` and a conference name. Upon creating the conference, the call will be automatically bridged to the conference. Conferences will expire after all participants have left the conference or after 4 hours regardless of the number of active participants. **Expected Webhooks:** - `conference.created` - `conference.participant.joined` - `conference.participant.left` - `conference.ended` - `conference.recording.saved` - `conference.floor.changed` ' operationId: CreateConference requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConferenceRequest' description: Create a conference required: true responses: '200': $ref: '#/components/responses/ConferenceResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Create conference tags: - Conference Commands x-latency-category: interactive /conferences/{conference_id}/participants: get: description: Lists conference participants operationId: ListConferenceParticipants parameters: - description: Uniquely identifies the conference by id in: path name: conference_id required: true schema: type: string - $ref: '#/components/parameters/ConferenceRegion' - $ref: '#/components/parameters/call-control_PageConsolidated' - description: 'Consolidated filter parameter (deepObject style). Originally: filter[muted], filter[on_hold], filter[whispering]' explode: true in: query name: filter schema: properties: muted: description: If present, participants will be filtered to those who are/are not muted type: boolean on_hold: description: If present, participants will be filtered to those who are/are not put on hold type: boolean whispering: description: If present, participants will be filtered to those who are whispering or are not type: boolean type: object style: deepObject responses: '200': $ref: '#/components/responses/ListParticipantsResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: List conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}: get: description: Retrieve an existing conference operationId: RetrieveConference parameters: - description: Uniquely identifies the conference by id in: path name: id required: true schema: type: string - $ref: '#/components/parameters/ConferenceRegion' responses: '200': $ref: '#/components/responses/ConferenceResponse' '404': $ref: '#/components/responses/NotFoundResponse' summary: Retrieve a conference tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/end: post: description: End a conference and terminate all active participants. operationId: EndConference parameters: - description: Uniquely identifies the conference. in: path name: id required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/EndConferenceRequest' responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: End a conference tags: - Conference Commands x-endpoint-cost: 0.01 x-latency-category: interactive /conferences/{id}/actions/gather_using_audio: post: description: Play an audio file to a specific conference participant and gather DTMF input. operationId: ConferenceGatherUsingAudio parameters: - description: Uniquely identifies the conference. in: path name: id required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceGatherUsingAudioRequest' responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Gather DTMF using audio prompt in a conference tags: - Conference Commands x-endpoint-cost: 0.01 x-latency-category: interactive /conferences/{id}/actions/hold: post: description: Hold a list of participants in a conference call operationId: HoldConferenceParticipants parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceHoldRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Hold conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/join: post: description: "Join an existing call leg to a conference. Issue the Join Conference command with the conference ID in the path and the `call_control_id` of the leg you wish to join to the conference as an attribute. The conference can have up to a certain amount of active participants, as set by the `max_participants` parameter in conference creation request. \n\n**Expected Webhooks:**\n\n- `conference.participant.joined`\n- `conference.participant.left`\n" operationId: JoinConference parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/JoinConferenceRequest' description: Join Conference request object required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Join a conference tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/leave: post: description: "Removes a call leg from a conference and moves it back to parked state. \n\n**Expected Webhooks:**\n\n- `conference.participant.left`\n" operationId: LeaveConference parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LeaveConferenceRequest' description: Leave Conference request object required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Leave a conference tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/mute: post: description: Mute a list of participants in a conference call operationId: MuteConferenceParticipants parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceMuteRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Mute conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/play: post: description: Play audio to all or some participants on a conference call. operationId: PlayConferenceAudio parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferencePlayRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Play audio to conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/record_pause: post: description: Pause conference recording. operationId: PauseConferenceRecording parameters: - description: Specifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PauseConferenceRecordingRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Conference recording pause tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/record_resume: post: description: Resume conference recording. operationId: ResumeConferenceRecording parameters: - description: Specifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumeConferenceRecordingRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Conference recording resume tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/record_start: post: description: 'Start recording the conference. Recording will stop on conference end, or via the Stop Recording command. **Expected Webhooks:** - `conference.recording.saved`' operationId: StartConferenceRecording parameters: - description: Specifies the conference to record by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/StartConferenceRecordingRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Conference recording start tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/record_stop: post: description: 'Stop recording the conference. **Expected Webhooks:** - `conference.recording.saved` ' operationId: StopConferenceRecording parameters: - description: Specifies the conference to stop the recording for by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/StopRecordingConferenceRequest' description: Stop recording conference request required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Conference recording stop tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/send_dtmf: post: description: Send DTMF tones to one or more conference participants. operationId: ConferenceSendDTMF parameters: - description: Uniquely identifies the conference. in: path name: id required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceSendDTMFRequest' responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Send DTMF to conference participants tags: - Conference Commands x-endpoint-cost: 0.01 x-latency-category: interactive /conferences/{id}/actions/speak: post: description: Convert text to speech and play it to all or some participants. operationId: SpeakTextToConference parameters: - description: Specifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceSpeakRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Speak text to conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/stop: post: description: Stop audio being played to all or some participants on a conference call. operationId: StopConferenceAudio parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceStopRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Stop audio being played on the conference tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/unhold: post: description: Unhold a list of participants in a conference call operationId: UnholdConferenceParticipants parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceUnholdRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Unhold conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/unmute: post: description: Unmute a list of participants in a conference call operationId: UnmuteConferenceParticipants parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceUnmuteRequest' required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Unmute conference participants tags: - Conference Commands x-latency-category: interactive /conferences/{id}/actions/update: post: description: Update conference participant supervisor_role operationId: UpdateConference parameters: - description: Uniquely identifies the conference by id or name in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateConferenceRequest' description: Update Conference request object required: true responses: '200': $ref: '#/components/responses/ConferenceCommandResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Update conference participant tags: - Conference Commands x-latency-category: interactive /conferences/{id}/participants/{participant_id}: get: description: Retrieve details of a specific conference participant by their ID or label. operationId: RetrieveConferenceParticipant parameters: - description: Uniquely identifies the conference. in: path name: id required: true schema: format: uuid type: string - description: Uniquely identifies the participant by their ID or label. in: path name: participant_id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConferenceParticipantResource' description: Successful response '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Retrieve a conference participant tags: - Conference Commands x-endpoint-cost: 0.01 x-latency-category: interactive patch: description: Update properties of a conference participant. operationId: UpdateConferenceParticipant parameters: - description: Uniquely identifies the conference. in: path name: id required: true schema: format: uuid type: string - description: Uniquely identifies the participant. in: path name: participant_id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateConferenceParticipantRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConferenceParticipantResource' description: Successful response '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableEntityResponse' summary: Update a conference participant tags: - Conference Commands x-endpoint-cost: 0.01 x-latency-category: interactive components: responses: ConferenceCommandResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/ConferenceCommandResult' title: Conference Command Response type: object description: Successful response upon making a conference command. NotFoundResponse: content: application/json: examples: audio_file_not_found: summary: Audio file not found value: errors: - code: '10005' detail: Provided audio file URL couldn't be found. title: Audio file not found conference_not_found: summary: Conference not found value: errors: - code: '90058' detail: The conference does not exist. title: Invalid conference_id recording_not_found: summary: Recording not found value: errors: - code: '10005' detail: The recording could not be found. Please check the recording_id and try again. source: pointer: /recording_id title: Recording not found resource_not_found: summary: Generic resource not found value: errors: - code: '10007' detail: Resource not found title: Resource not found schema: $ref: '#/components/schemas/call-control_Errors' description: 'Resource not found. The requested resource does not exist. Common causes include: invalid call_control_id, conference not found, audio file not found, or recording not found.' ConferenceResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Conference' title: Conference Response type: object description: Successful response with details about a conference. ListParticipantsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Participant' type: array meta: $ref: '#/components/schemas/PaginationMeta' title: List Participants Response type: object description: Successful response with a list of conference participants. ListConferencesResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Conference' type: array meta: $ref: '#/components/schemas/PaginationMeta' title: List Conferences Response type: object description: Successful response with a list of conferences. UnprocessableEntityResponse: content: application/json: examples: ai_assistant_already_active: summary: AI Assistant already active value: errors: - code: '90061' detail: AI Assistant cannot be started more than once. title: AI Assistant is already in progress call_already_ended: summary: Call has already ended value: errors: - code: '90018' detail: This call is no longer active and can't receive commands. title: Call has already ended call_already_in_queue: summary: Call already in queue value: errors: - code: '90038' detail: Call can't be added to a queue it's already in. title: Call already in queue call_not_answered: summary: Call not answered yet value: errors: - code: '90034' detail: This call can't receive this command because it has not been answered yet. title: Call not answered yet cannot_record_before_audio_started: summary: Cannot record before audio started value: errors: - code: '90020' detail: Call recording cannot be started until audio has commenced on the call. title: Call recording triggered before audio started conference_already_ended: summary: Conference has already ended value: errors: - code: '90019' detail: This conference is no longer active and can't receive commands. title: Conference has already ended conference_name_conflict: summary: Conference name conflict value: errors: - code: '90033' detail: Conference with given name already exists and it's active. title: Unable to execute command fork_not_found: summary: Call is not forked value: errors: - code: '90031' detail: Can't stop forking, because the call isn't currently forked. title: Call is not currently forked invalid_call_control_id: summary: Invalid call control ID value: errors: - code: '90015' detail: The call_control_id provided was not valid. source: pointer: /call_control_id title: Invalid Call Control ID invalid_connection_id: summary: Invalid connection ID value: errors: - code: '10015' detail: The requested connection_id (Call Control App ID) is either invalid or does not exist. Only Call Control Apps with valid webhook URL are accepted. source: pointer: /connection_id title: Invalid value for connection_id (Call Control App ID) invalid_enumerated_value: summary: Invalid enumerated value value: errors: - code: '10032' detail: 'The value must be one of: dual, single.' source: pointer: /record_channels title: Invalid enumerated value invalid_phone_number_format: summary: Invalid phone number format value: errors: - code: '10016' detail: The 'to' parameter must be in E164 format. source: pointer: /to title: Phone number must be in +E164 format max_participants_reached: summary: Maximum participants reached value: errors: - code: '90032' detail: The maximum allowed value of `max_participants` has been reached at 100. title: Maximum number of participants reached media_streaming_used: summary: Media streaming in use value: errors: - code: '90045' detail: This command can't be issued when media streaming is used. title: Media Streaming is used missing_required_parameter: summary: Missing required parameter value: errors: - code: '10004' detail: The 'to' parameter is required and cannot be blank. source: pointer: /to title: Missing required parameter queue_full: summary: Queue is full value: errors: - code: '90036' detail: The 'support' queue is full and can't accept more calls. title: Queue full srtp_not_supported_for_pstn: summary: SRTP not supported for PSTN calls value: errors: - code: '10011' detail: SRTP media encryption is not supported for PSTN calls. source: pointer: /media_encryption title: Media encryption not supported for PSTN calls transcription_already_active: summary: Transcription already active value: errors: - code: '90054' detail: Call transcription can not be started more than once. title: Call transcription is already in progress value_outside_range: summary: Value outside of range value: errors: - code: '10033' detail: The value is outside of allowed range 1 to 5000 source: pointer: /max_participants title: Value outside of range schema: $ref: '#/components/schemas/call-control_Errors' description: Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations. UnauthorizedResponse: content: application/json: example: errors: - code: '10009' detail: The required authentication headers were either invalid or not included in the request. meta: url: https://developers.telnyx.com/docs/overview/errors/10009 title: Authentication failed schema: $ref: '#/components/schemas/call-control_Errors' description: Unauthorized. Authentication failed - the required authentication headers were either invalid or not included in the request. schemas: JoinConferenceRequest: example: beep_enabled: always call_control_id: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg client_state: aGF2ZSBhIG5pY2UgZGF5ID1d command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 end_conference_on_exit: true hold: true hold_audio_url: http://www.example.com/audio.wav mute: true start_conference_on_enter: true supervisor_role: whisper whisper_call_control_ids: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw properties: beep_enabled: description: Whether a beep sound should be played when the participant joins and/or leaves the conference. Can be used to override the conference-level setting. enum: - always - never - on_enter - on_exit example: on_exit type: string call_control_id: description: Unique identifier and token for controlling the call example: v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ== type: string client_state: description: Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string. Please note that the client_state will be updated for the participient call leg and the change will not affect conferencing webhooks unless the participient is the owner of the conference. example: aGF2ZSBhIG5pY2UgZGF5ID1d type: string command_id: description: Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string end_conference_on_exit: description: Whether the conference should end and all remaining participants be hung up after the participant leaves the conference. Defaults to "false". example: true type: boolean hold: description: Whether the participant should be put on hold immediately after joining the conference. Defaults to "false". example: true type: boolean hold_audio_url: description: The URL of a file to be played to the participant when they are put on hold after joining the conference. hold_media_name and hold_audio_url cannot be used together in one request. Takes effect only when "start_conference_on_create" is set to "false". This property takes effect only if "hold" is set to "true". example: http://example.com/message.wav type: string hold_media_name: description: The media_name of a file to be played to the participant when they are put on hold after joining the conference. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file. Takes effect only when "start_conference_on_create" is set to "false". This property takes effect only if "hold" is set to "true". example: my_media_uploaded_to_media_storage_api type: string mute: description: Whether the participant should be muted immediately after joining the conference. Defaults to "false". example: true type: boolean region: $ref: '#/components/schemas/ConferenceRegion' soft_end_conference_on_exit: description: Whether the conference should end after the participant leaves the conference. NOTE this doesn't hang up the other participants. Defaults to "false". example: true type: boolean start_conference_on_enter: description: Whether the conference should be started after the participant joins the conference. Defaults to "false". example: true type: boolean supervisor_role: description: Sets the joining participant as a supervisor for the conference. A conference can have multiple supervisors. "barge" means the supervisor enters the conference as a normal participant. This is the same as "none". "monitor" means the supervisor is muted but can hear all participants. "whisper" means that only the specified "whisper_call_control_ids" can hear the supervisor. Defaults to "none". enum: - barge - monitor - none - whisper example: whisper type: string whisper_call_control_ids: description: Array of unique call_control_ids the joining supervisor can whisper to. If none provided, the supervisor will join the conference as a monitoring participant only. example: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw items: type: string type: array required: - call_control_id title: Join Conference Request type: object UpdateConferenceParticipantRequest: example: beep_enabled: never end_conference_on_exit: true properties: beep_enabled: description: Whether entry/exit beeps are enabled for this participant. enum: - always - never - on_enter - on_exit example: always type: string end_conference_on_exit: description: Whether the conference should end when this participant exits. example: false type: boolean soft_end_conference_on_exit: description: Whether the conference should soft-end when this participant exits. A soft end will stop new participants from joining but allow existing participants to remain. example: false type: boolean title: Update Conference Participant Request type: object ResumeConferenceRecordingRequest: properties: command_id: description: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string recording_id: description: Use this field to resume specific recording. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string region: $ref: '#/components/schemas/ConferenceRegion' title: Pause Recording Request type: object LeaveConferenceRequest: example: beep_enabled: never call_control_id: c46e06d7-b78f-4b13-96b6-c576af9640ff properties: beep_enabled: description: Whether a beep sound should be played when the participant leaves the conference. Can be used to override the conference-level setting. enum: - always - never - on_enter - on_exit example: on_exit type: string call_control_id: description: Unique identifier and token for controlling the call example: f91269aa-61d1-417f-97b3-10e020e8bc47 type: string command_id: description: Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string region: $ref: '#/components/schemas/ConferenceRegion' required: - call_control_id title: Leave Conference Request type: object UpdateConferenceRequest: example: call_control_id: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 supervisor_role: whisper whisper_call_control_ids: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw properties: call_control_id: description: Unique identifier and token for controlling the call example: v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ== type: string command_id: description: Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string region: $ref: '#/components/schemas/ConferenceRegion' supervisor_role: description: Sets the participant as a supervisor for the conference. A conference can have multiple supervisors. "barge" means the supervisor enters the conference as a normal participant. This is the same as "none". "monitor" means the supervisor is muted but can hear all participants. "whisper" means that only the specified "whisper_call_control_ids" can hear the supervisor. Defaults to "none". enum: - barge - monitor - none - whisper example: whisper type: string whisper_call_control_ids: description: Array of unique call_control_ids the supervisor can whisper to. If none provided, the supervisor will join the conference as a monitoring participant only. example: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw items: type: string type: array required: - call_control_id - supervisor_role title: Update Conference Request type: object ConferenceStopRequest: properties: call_control_ids: description: List of call control ids identifying participants the audio file should stop be played to. If not given, the audio will be stoped to the entire conference. items: type: string type: array region: $ref: '#/components/schemas/ConferenceRegion' title: Conference Stop Request type: object ConferencePlayRequest: example: audio_url: http://www.example.com/sounds/greeting.wav properties: audio_url: description: The URL of a file to be played back in the conference. media_name and audio_url cannot be used together in one request. example: http://example.com/message.wav type: string call_control_ids: description: List of call control ids identifying participants the audio file should be played to. If not given, the audio file will be played to the entire conference. items: type: string type: array loop: $ref: '#/components/schemas/Loopcount' default: 1 description: The number of times the audio file should be played. If supplied, the value must be an integer between 1 and 100, or the special string `infinity` for an endless loop. example: infinity media_name: description: The media_name of a file to be played back in the conference. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file. example: my_media_uploaded_to_media_storage_api type: string region: $ref: '#/components/schemas/ConferenceRegion' title: Conference Play Request type: object AzureVoiceSettings: properties: api_key_ref: description: The `identifier` for an integration secret that refers to your Azure Speech API key. example: my_azure_api_key type: string deployment_id: description: The deployment ID for a custom Azure neural voice. example: my-custom-voice-deployment type: string effect: description: Audio effect to apply. enum: - eq_car - eq_telecomhp8k type: string gender: description: Voice gender filter. enum: - Male - Female type: string region: description: The Azure region for the Speech service (e.g., `eastus`, `westeurope`). Required when using a custom API key. example: eastus type: string type: description: Voice settings provider type enum: - azure type: string required: - type title: Azure Voice Settings type: object InworldVoiceSettings: properties: type: description: Voice settings provider type enum: - inworld type: string required: - type title: Inworld Voice Settings type: object ConferenceHoldRequest: example: audio_url: http://example.com/message.wav call_control_ids: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg properties: audio_url: description: The URL of a file to be played to the participants when they are put on hold. media_name and audio_url cannot be used together in one request. example: http://example.com/message.wav type: string call_control_ids: description: List of unique identifiers and tokens for controlling the call. When empty all participants will be placed on hold. items: type: string type: array media_name: description: The media_name of a file to be played to the participants when they are put on hold. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file. example: my_media_uploaded_to_media_storage_api type: string region: $ref: '#/components/schemas/ConferenceRegion' title: Conference Hold Request type: object Conference: example: connection_id: 3fa85f64-9191-4567-b3fc-2c963f66afa6 created_at: '2019-01-23T18:10:02.574Z' end_reason: all_left ended_by: call_control_id: v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ== call_session_id: 428c31b6-abf3-3bc1-b7f4-5013ef9657c1 expires_at: '2019-01-23T18:10:02.574Z' id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: All hands meeting record_type: conference region: sv1 status: completed updated_at: '2019-01-23T18:10:02.574Z' properties: connection_id: description: Identifies the connection associated with the conference example: 3fa85f64-9191-4567-b3fc-2c963f66afa6 type: string created_at: description: ISO 8601 formatted date of when the conference was created example: '2019-01-23T18:10:02.574Z' type: string end_reason: description: Reason why the conference ended enum: - all_left - ended_via_api - host_left - time_exceeded example: all_left type: string ended_by: description: IDs related to who ended the conference. It is expected for them to all be there or all be null properties: call_control_id: description: Call Control ID which ended the conference example: v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ== type: string call_session_id: description: Call Session ID which ended the conference example: 428c31b6-abf3-3bc1-b7f4-5013ef9657c1 type: string type: object expires_at: description: ISO 8601 formatted date of when the conference will expire example: '2019-01-23T18:10:02.574Z' type: string id: description: Uniquely identifies the conference example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string name: description: Name of the conference example: All hands meeting type: string record_type: enum: - conference example: conference type: string region: description: Region where the conference is hosted example: sv1 type: string status: description: Status of the conference enum: - init - in_progress - completed example: completed type: string updated_at: description: ISO 8601 formatted date of when the conference was last updated example: '2019-01-23T18:10:02.574Z' type: string required: - record_type - id - name - created_at - expires_at title: Conference type: object ElevenLabsVoiceSettings: properties: api_key_ref: description: 'The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.' example: my_elevenlabs_api_key type: string type: description: Voice settings provider type enum: - elevenlabs type: string required: - type title: ElevenLabs Voice Settings type: object AWSVoiceSettings: properties: type: description: Voice settings provider type enum: - aws type: string required: - type title: AWS Voice Settings type: object MinimaxVoiceSettings: properties: language_boost: default: null description: Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. enum: - null - auto - Chinese - Chinese,Yue - English - Arabic - Russian - Spanish - French - Portuguese - German - Turkish - Dutch - Ukrainian - Vietnamese - Indonesian - Japanese - Italian - Korean - Thai - Polish - Romanian - Greek - Czech - Finnish - Hindi - Bulgarian - Danish - Hebrew - Malay - Persian - Slovak - Swedish - Croatian - Filipino - Hungarian - Norwegian - Slovenian - Catalan - Nynorsk - Tamil - Afrikaans type: - string - 'null' pitch: default: 0 description: Voice pitch adjustment. Default is 0. example: 0 type: integer speed: default: 1.0 description: Speech speed multiplier. Default is 1.0. example: 1.0 format: float type: number type: description: Voice settings provider type enum: - minimax type: string vol: default: 1.0 description: Speech volume multiplier. Default is 1.0. example: 1.0 format: float type: number required: - type title: Minimax Voice Settings type: object ConferenceSendDTMFRequest: example: digits: 1234# duration_millis: 250 properties: call_control_ids: description: Array of participant call control IDs to send DTMF to. When empty, DTMF will be sent to all participants. example: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg items: type: string type: array client_state: description: Use this field to add state to every subsequent webhook. Must be a valid Base-64 encoded string. example: aGF2ZSBhIG5pY2UgZGF5ID1d type: string digits: description: 'DTMF digits to send. Valid characters: 0-9, A-D, *, #, w (0.5s pause), W (1s pause).' example: 1234# type: string duration_millis: default: 250 description: Duration of each DTMF digit in milliseconds. example: 250 maximum: 500 minimum: 100 type: integer required: - digits title: Conference Send DTMF Request type: object Loopcount: oneOf: - type: string - type: integer PauseConferenceRecordingRequest: properties: command_id: description: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string recording_id: description: Use this field to pause specific recording. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string region: $ref: '#/components/schemas/ConferenceRegion' title: Pause Recording Request type: object call-control_Errors: properties: errors: items: $ref: '#/components/schemas/call-control_Error' type: array ConferenceMuteRequest: example: call_control_ids: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg properties: call_control_ids: description: Array of unique identifiers and tokens for controlling the call. When empty all participants will be muted. items: type: string type: array region: $ref: '#/components/schemas/ConferenceRegion' title: Conference Mute Request type: object EndConferenceRequest: example: {} properties: command_id: description: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same conference. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string title: End Conference Request type: object ConferenceGatherUsingAudioRequest: example: audio_url: http://example.com/gather_prompt.wav call_control_id: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg maximum_digits: 4 minimum_digits: 1 timeout_millis: 30000 properties: audio_url: description: The URL of the audio file to play as the gather prompt. Must be WAV or MP3 format. example: http://example.com/gather_prompt.wav type: string call_control_id: description: Unique identifier and token for controlling the call leg that will receive the gather prompt. example: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg type: string client_state: description: Use this field to add state to every subsequent webhook. Must be a valid Base-64 encoded string. example: aGF2ZSBhIG5pY2UgZGF5ID1d type: string gather_id: description: Identifier for this gather command. Will be included in the gather ended webhook. Maximum 100 characters. maxLength: 100 type: string initial_timeout_millis: description: Duration in milliseconds to wait for the first digit before timing out. example: 10000 type: integer inter_digit_timeout_millis: default: 5000 description: Duration in milliseconds to wait between digits. example: 3000 type: integer invalid_audio_url: description: URL of audio file to play when invalid input is received. type: string invalid_media_name: description: Name of media file to play when invalid input is received. type: string maximum_digits: default: 128 description: Maximum number of digits to gather. example: 10 minimum: 1 type: integer maximum_tries: default: 3 description: Maximum number of times to play the prompt if no input is received. example: 3 minimum: 1 type: integer media_name: description: The name of the media file uploaded to the Media Storage API to play as the gather prompt. type: string minimum_digits: default: 1 description: Minimum number of digits to gather. example: 1 minimum: 1 type: integer stop_playback_on_dtmf: default: true description: Whether to stop the audio playback when a DTMF digit is received. example: true type: boolean terminating_digit: default: '#' description: Digit that terminates gathering. example: '#' type: string timeout_millis: default: 60000 description: Duration in milliseconds to wait for input before timing out. example: 30000 type: integer valid_digits: default: 0123456789#* description: Digits that are valid for gathering. All other digits will be ignored. example: 0123456789 type: string required: - call_control_id title: Conference Gather Using Audio Request type: object ResembleVoiceSettings: properties: format: default: mp3 description: Output audio format. enum: - wav - mp3 type: string precision: default: PCM_32 description: Audio precision format. enum: - PCM_16 - PCM_24 - PCM_32 - MULAW type: string sample_rate: $ref: '#/components/schemas/ResembleSampleRate' type: description: Voice settings provider type enum: - resemble type: string required: - type title: Resemble Voice Settings type: object Participant: example: call_control_id: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg call_leg_id: 3a15df2d-c801-4729-adf5-b56dd42e2abb conference: id: 41b9acd4-f4da-4ff5-a85c-e07e90b53f46 name: '1' created_at: '2019-01-23T18:10:02.574Z' end_conference_on_exit: true id: dfadada7-af74-47bc-83a4-554275f55f5c muted: false on_hold: true record_type: participant soft_end_conference_on_exit: true status: joining updated_at: '2019-01-23T18:10:02.574Z' whisper_call_control_ids: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw properties: call_control_id: description: Call Control ID associated with the partiipant of the conference example: v2:v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ type: string call_leg_id: description: Uniquely identifies the call leg associated with the participant example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string conference: description: Info about the conference that the participant is in properties: id: description: Uniquely identifies the conference example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string name: description: Name of the conference example: All hands meeting type: string type: object created_at: description: ISO 8601 formatted date of when the participant was created example: '2019-01-23T18:10:02.574Z' type: string end_conference_on_exit: description: Whether the conference will end and all remaining participants be hung up after the participant leaves the conference. example: true type: boolean id: description: Uniquely identifies the participant example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string muted: description: Whether the participant is muted. example: true type: boolean on_hold: description: Whether the participant is put on_hold. example: true type: boolean record_type: enum: - participant example: participant type: string soft_end_conference_on_exit: description: Whether the conference will end after the participant leaves the conference. example: true type: boolean status: description: The status of the participant with respect to the lifecycle within the conference enum: - joining - joined - left example: joining type: string updated_at: description: ISO 8601 formatted date of when the participant was last updated example: '2019-01-23T18:10:02.574Z' type: string whisper_call_control_ids: description: Array of unique call_control_ids the participant can whisper to.. example: - v2:Sg1xxxQ_U3ixxxyXT_VDNI3xxxazZdg6Vxxxs4-GNYxxxVaJPOhFMRQ - v2:qqpb0mmvd-ovhhBr0BUQQn0fld5jIboaaX3-De0DkqXHzbf8d75xkw items: type: string type: array required: - record_type - id - call_leg_id - call_control_id - conference - whisper_call_control_ids - created_at - updated_at - end_conference_on_exit - soft_end_conference_on_exit - status - muted - on_hold title: Participant type: object ConferenceRegion: description: Region where the conference data is located. Defaults to the region defined in user's data locality settings (Europe or US). enum: - Australia - Europe - Middle East - US example: US type: string call-control_Error: properties: code: format: integer type: string detail: type: string meta: type: object source: properties: parameter: description: Indicates which query parameter caused the error. type: string pointer: description: JSON pointer (RFC6901) to the offending entity. format: json-pointer type: string type: object title: type: string required: - code - title ConferenceCommandResult: example: result: ok properties: result: example: ok type: string required: - result title: Conference Command Result type: object CreateConferenceRequest: example: beep_enabled: always call_control_id: v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg client_state: aGF2ZSBhIG5pY2UgZGF5ID1d command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 duration_minutes: 5 hold_audio_url: http://www.example.com/audio.wav max_participants: 250 name: Business start_conference_on_create: false properties: beep_enabled: default: never description: Whether a beep sound should be played when participants join and/or leave the conference. enum: - always - never - on_enter - on_exit example: on_exit type: string call_control_id: description: Unique identifier and token for controlling the call example: v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ== type: string client_state: description: Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string. The client_state will be updated for the creator call leg and will be used for all webhooks related to the created conference. example: aGF2ZSBhIG5pY2UgZGF5ID1d type: string comfort_noise: default: true description: Toggle background comfort noise. example: false type: boolean command_id: description: Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string duration_minutes: description: Time length (minutes) after which the conference will end. example: 5 type: integer hold_audio_url: description: The URL of a file to be played to participants joining the conference. The URL can point to either a WAV or MP3 file. hold_media_name and hold_audio_url cannot be used together in one request. Takes effect only when "start_conference_on_create" is set to "false". example: http://example.com/message.wav type: string hold_media_name: description: The media_name of a file to be played to participants joining the conference. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file. Takes effect only when "start_conference_on_create" is set to "false". example: my_media_uploaded_to_media_storage_api type: string max_participants: description: The maximum number of active conference participants to allow. Must be between 2 and 800. Defaults to 250 example: 3 type: integer name: description: Name of the conference example: Business type: string region: description: Sets the region where the conference data will be hosted. Defaults to the region defined in user's data locality settings (Europe or US). enum: - Australia - Europe - Middle East - US example: US type: string start_conference_on_create: description: Whether the conference should be started on creation. If the conference isn't started all participants that join are automatically put on hold. Defaults to "true". example: false type: boolean required: - call_control_id - name title: Create Conference Request type: object TelnyxVoiceSettings: properties: type: description: Voice settings provider type enum: - telnyx type: string voice_speed: default: 1.0 description: The voice speed to be used for the voice. The voice speed must be between 0.1 and 2.0. Default value is 1.0. example: 1.0 format: float maximum: 2.0 minimum: 0.1 type: number required: - type title: Telnyx Voice Settings type: object StopRecordingConferenceRequest: example: client_state: aGF2ZSBhIG5pY2UgZGF5ID1d command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 recording_id: 6e00ab49-9487-4364-8ad6-23965965afb2 properties: client_state: description: Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string. example: aGF2ZSBhIG5pY2UgZGF5ID1d type: string command_id: description: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string recording_id: description: Uniquely identifies the resource. example: 6e00ab49-9487-4364-8ad6-23965965afb2 format: uuid type: string region: $ref: '#/components/schemas/ConferenceRegion' title: Stop Recording Request type: object ConferenceSpeakRequest: example: call_control_ids: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 language: en-US payload: Say this to participants payload_type: text voice: female properties: call_control_ids: description: Call Control IDs of participants who will hear the spoken text. When empty all participants will hear the spoken text. items: type: string type: array command_id: description: Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string language: description: The language you want spoken. This parameter is ignored when a `Polly.*` voice is specified. enum: - arb - cmn-CN - cy-GB - da-DK - de-DE - en-AU - en-GB - en-GB-WLS - en-IN - en-US - es-ES - es-MX - es-US - fr-CA - fr-FR - hi-IN - is-IS - it-IT - ja-JP - ko-KR - nb-NO - nl-NL - pl-PL - pt-BR - pt-PT - ro-RO - ru-RU - sv-SE - tr-TR example: en-US type: string payload: description: The text or SSML to be converted into speech. There is a 3,000 character limit. example: Say this to participants type: string payload_type: default: text description: The type of the provided payload. The payload can either be plain text, or Speech Synthesis Markup Language (SSML). enum: - text - ssml example: ssml type: string region: $ref: '#/components/schemas/ConferenceRegion' voice: description: "Specifies the voice used in speech synthesis.\n\n- Define voices using the format `..`. Specifying only the provider will give default values for voice_id and model_id.\n\n **Supported Providers:**\n- **AWS:** Use `AWS.Polly.` (e.g., `AWS.Polly.Joanna`). For neural voices, which provide more realistic, human-like speech, append `-Neural` to the `VoiceId` (e.g., `AWS.Polly.Joanna-Neural`). Check the [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) for compatibility.\n- **Azure:** Use `Azure.` (e.g., `Azure.en-CA-ClaraNeural`, `Azure.en-US-BrianMultilingualNeural`, `Azure.en-US-Ava:DragonHDLatestNeural`). For a complete list of voices, go to [Azure Voice Gallery](https://speech.microsoft.com/portal/voicegallery). Use `voice_settings` to configure custom deployments, regions, or API keys.\n- **ElevenLabs:** Use `ElevenLabs..` (e.g., `ElevenLabs.eleven_multilingual_v2.21m00Tcm4TlvDq8ikWAM`). The `ModelId` part is optional. To use ElevenLabs, you must provide your ElevenLabs API key as an integration identifier secret in `\"voice_settings\": {\"api_key_ref\": \"\"}`. See [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) for details. Check [available voices](https://elevenlabs.io/docs/api-reference/get-voices).\n- **Telnyx:** Use `Telnyx..` (e.g., `Telnyx.KokoroTTS.af`). Use `voice_settings` to configure voice_speed and other synthesis parameters.\n- **Minimax:** Use `Minimax..` (e.g., `Minimax.speech-02-hd.Wise_Woman`). Supported models: `speech-02-turbo`, `speech-02-hd`, `speech-2.6-turbo`, `speech-2.8-turbo`. Use `voice_settings` to configure speed, volume, pitch, and language_boost.\n- **Rime:** Use `Rime..` (e.g., `Rime.Arcana.cove`). Supported model_ids: `Arcana`, `Mist`. Use `voice_settings` to configure voice_speed.\n- **Resemble:** Use `Resemble.Turbo.` (e.g., `Resemble.Turbo.my_voice`). Only `Turbo` model is supported. Use `voice_settings` to configure precision, sample_rate, and format.\n- **Inworld:** Use `Inworld..` (e.g., `Inworld.Mini.Loretta`, `Inworld.Max.Oliver`). Supported models: `Mini`, `Max`.\n- **xAI:** Use `xAI.` (e.g., `xAI.eve`). Available voices: `eve`, `ara`, `rex`, `sal`, `leo`.\n\nFor service_level basic, you may define the gender of the speaker (male or female)." example: Telnyx.KokoroTTS.af type: string voice_settings: description: The settings associated with the voice selected discriminator: mapping: aws: '#/components/schemas/AWSVoiceSettings' azure: '#/components/schemas/AzureVoiceSettings' elevenlabs: '#/components/schemas/ElevenLabsVoiceSettings' inworld: '#/components/schemas/InworldVoiceSettings' minimax: '#/components/schemas/MinimaxVoiceSettings' resemble: '#/components/schemas/ResembleVoiceSettings' rime: '#/components/schemas/RimeVoiceSettings' telnyx: '#/components/schemas/TelnyxVoiceSettings' xai: '#/components/schemas/XAIVoiceSettings' propertyName: type oneOf: - $ref: '#/components/schemas/ElevenLabsVoiceSettings' - $ref: '#/components/schemas/TelnyxVoiceSettings' - $ref: '#/components/schemas/AWSVoiceSettings' - $ref: '#/components/schemas/MinimaxVoiceSettings' - $ref: '#/components/schemas/AzureVoiceSettings' - $ref: '#/components/schemas/RimeVoiceSettings' - $ref: '#/components/schemas/ResembleVoiceSettings' - $ref: '#/components/schemas/InworldVoiceSettings' - $ref: '#/components/schemas/XAIVoiceSettings' required: - payload - voice title: Conference Speak Request type: object ConferenceParticipantResource: properties: data: $ref: '#/components/schemas/ConferenceParticipant' title: Conference Participant Resource type: object PaginationMeta: properties: page_number: example: 2 type: integer page_size: example: 25 type: integer total_pages: example: 3 type: integer total_results: example: 55 type: integer type: object ResembleSampleRate: default: '48000' description: Audio sample rate in Hz. enum: - '8000' - '16000' - '22050' - '32000' - '44100' - '48000' title: Resemble Sample Rate type: string ConferenceUnmuteRequest: example: call_control_ids: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg properties: call_control_ids: description: List of unique identifiers and tokens for controlling the call. Enter each call control ID to be unmuted. When empty all participants will be unmuted. items: type: string type: array region: $ref: '#/components/schemas/ConferenceRegion' title: Conference Unmute Request type: object StartConferenceRecordingRequest: example: command_id: 891510ac-f3e4-11e8-af5b-de00688a4901 format: wav play_beep: true properties: channels: default: single description: When `dual`, final audio file will be stereo recorded with the conference creator on the first channel, and the rest on the second channel. enum: - single - dual example: dual type: string command_id: description: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `conference_id`. example: 891510ac-f3e4-11e8-af5b-de00688a4901 type: string custom_file_name: description: The custom recording file name to be used instead of the default `call_leg_id`. Telnyx will still add a Unix timestamp suffix. example: my_recording_file_name maxLength: 40 minLength: 1 type: string format: description: The audio file format used when storing the conference recording. Can be either `mp3` or `wav`. enum: - wav - mp3 example: mp3 type: string play_beep: description: If enabled, a beep sound will be played at the start of a recording. example: true type: boolean region: $ref: '#/components/schemas/ConferenceRegion' trim: description: When set to `trim-silence`, silence will be removed from the beginning and end of the recording. enum: - trim-silence example: trim-silence type: string required: - format title: Start Conference Recording Request type: object RimeVoiceSettings: properties: type: description: Voice settings provider type enum: - rime type: string voice_speed: default: 1.0 description: Speech speed multiplier. Default is 1.0. example: 1.0 format: float type: number required: - type title: Rime Voice Settings type: object ConferenceUnholdRequest: example: call_control_ids: - v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg properties: call_control_ids: description: List of unique identifiers and tokens for controlling the call. Enter each call control ID to be unheld. items: type: string type: array region: $ref: '#/components/schemas/ConferenceRegion' required: - call_control_ids title: Conference Unhold Request type: object XAIVoiceSettings: properties: language: default: auto description: Language code, or `auto` to detect automatically. type: string type: description: Voice settings provider type enum: - xai type: string required: - type title: xAI Voice Settings type: object ConferenceParticipant: properties: call_control_id: description: Unique identifier and token for controlling the participant's call leg. type: string call_leg_id: description: Unique identifier for the call leg. type: string conference_id: description: Unique identifier for the conference. type: string created_at: description: Timestamp when the participant joined. format: date-time type: string end_conference_on_exit: description: Whether the conference ends when this participant exits. type: boolean id: description: Uniquely identifies the participant. type: string label: description: Label assigned to the participant when joining. type: string muted: description: Whether the participant is muted. type: boolean on_hold: description: Whether the participant is on hold. type: boolean soft_end_conference_on_exit: description: Whether the conference soft-ends when this participant exits. type: boolean status: description: Status of the participant. enum: - joining - joined - left type: string updated_at: description: Timestamp when the participant was last updated. format: date-time type: string whisper_call_control_ids: description: List of call control IDs this participant is whispering to. items: type: string type: array title: Conference Participant type: object parameters: call-control_FilterConsolidated: description: 'Consolidated filter parameter (deepObject style). Originally: filter[application_name][contains], filter[outbound.outbound_voice_profile_id], filter[leg_id], filter[application_session_id], filter[connection_id], filter[product], filter[failed], filter[from], filter[to], filter[name], filter[type], filter[occurred_at][eq/gt/gte/lt/lte], filter[status]' explode: true in: query name: filter schema: properties: application_name: additionalProperties: false description: Application name filters properties: contains: default: 'null' description: If present, applications with application_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters. type: string type: object application_session_id: description: The unique identifier of the call session. A session may include multiple call leg events. format: uuid type: string connection_id: description: The unique identifier of the conection. type: string failed: description: Delivery failed or not. example: false type: boolean from: description: Filter by From number. example: '+12025550142' type: string leg_id: description: The unique identifier of an individual call leg. format: uuid type: string name: description: If present, conferences will be filtered to those with a matching `name` attribute. Matching is case-sensitive type: string occurred_at: additionalProperties: false description: Event occurred_at filters properties: eq: description: 'Event occurred_at: equal' example: '2019-03-29T11:10:00Z' type: string gt: description: 'Event occurred_at: greater than' example: '2019-03-29T11:10:00Z' type: string gte: description: 'Event occurred_at: greater than or equal' example: '2019-03-29T11:10:00Z' type: string lt: description: 'Event occurred_at: lower than' example: '2019-03-29T11:10:00Z' type: string lte: description: 'Event occurred_at: lower than or equal' example: '2019-03-29T11:10:00Z' type: string type: object outbound.outbound_voice_profile_id: description: Identifies the associated outbound voice profile. example: '1293384261075731499' type: string x-format: int64 product: description: Filter by product. enum: - call_control - fax - texml example: texml type: string status: description: If present, conferences will be filtered by status. enum: - init - in_progress - completed type: string to: description: Filter by To number. example: '+12025550142' type: string type: description: Event type enum: - command - webhook example: webhook type: string type: object style: deepObject ConferenceRegion: description: Region where the conference data is located in: query name: region required: false schema: enum: - Australia - Europe - Middle East - US type: string call-control_PageConsolidated: description: 'Consolidated page parameter (deepObject style). Originally: page[after], page[before], page[limit], page[size], page[number]' explode: true in: query name: page schema: properties: after: default: 'null' description: Opaque identifier of next page type: string before: default: 'null' description: Opaque identifier of previous page type: string limit: default: 20 description: Limit of records per single page maximum: 250 minimum: 1 type: integer number: default: 1 description: The page number to load minimum: 1 type: integer size: default: 20 description: The size of the page maximum: 250 minimum: 1 type: integer type: object style: deepObject securitySchemes: bearerAuth: scheme: bearer type: http branded-calling_bearerAuth: description: API key passed as a Bearer token in the Authorization header scheme: bearer type: http oauthClientAuth: description: OAuth 2.0 authentication for Telnyx API and MCP integrations flows: authorizationCode: authorizationUrl: https://api.telnyx.com/v2/oauth/authorize refreshUrl: https://api.telnyx.com/v2/oauth/token scopes: admin: Administrative access to Telnyx resources tokenUrl: https://api.telnyx.com/v2/oauth/token clientCredentials: scopes: admin: Administrative access to Telnyx resources tokenUrl: https://api.telnyx.com/v2/oauth/token type: oauth2 outbound-voice-profiles_bearerAuth: bearerFormat: JWT scheme: bearer type: http pronunciation-dicts_bearerAuth: description: Telnyx API v2 key. Obtain from https://portal.telnyx.com scheme: bearer type: http stored-payment-transactions_bearerAuth: bearerFormat: JWT scheme: bearer type: http