openapi: 3.0.3 info: title: Bandwidth description: Bandwidth's Communication APIs contact: name: Bandwidth url: https://dev.bandwidth.com email: letstalk@bandwidth.com version: 1.0.0 security: - Basic: [] tags: - name: Messages - name: Media - name: Calls - name: Conferences - name: Recordings - name: Statistics - name: Transcriptions - name: MFA - name: Phone Number Lookup paths: /users/{accountId}/media: get: summary: List Media description: Gets a list of your media files. No query parameters are supported. operationId: listMedia tags: - Media parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/continuationToken' responses: '200': $ref: '#/components/responses/listMediaResponse' '400': $ref: '#/components/responses/messagingBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '406': $ref: '#/components/responses/messagingNotAcceptableError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' servers: &ref_0 - url: https://messaging.bandwidth.com/api/v2 description: Production /users/{accountId}/media/{mediaId}: get: summary: Get Media description: Downloads a media file you previously uploaded. operationId: getMedia tags: - Media parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/mediaId' responses: '200': $ref: '#/components/responses/getMediaResponse' '400': $ref: '#/components/responses/messagingBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '406': $ref: '#/components/responses/messagingNotAcceptableError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' put: summary: Upload Media description: >- Upload a file. You may add headers to the request in order to provide some control to your media file. If a file is uploaded with the same name as a file that already exists under this account, the previous file will be overwritten. A list of supported media types can be found [here](https://support.bandwidth.com/hc/en-us/articles/360014128994-What-MMS-file-types-are-supported-). operationId: uploadMedia tags: - Media parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/mediaId' - $ref: '#/components/parameters/contentType' - $ref: '#/components/parameters/cacheControl' requestBody: $ref: '#/components/requestBodies/uploadMediaRequest' responses: '204': description: No Content '400': $ref: '#/components/responses/messagingBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '406': $ref: '#/components/responses/messagingNotAcceptableError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' delete: summary: Delete Media description: |- Deletes a media file from Bandwidth API server. Make sure you don't have any application scripts still using the media before you delete. If you accidentally delete a media file you can immediately upload a new file with the same name. operationId: deleteMedia tags: - Media parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/mediaId' responses: '204': description: No Content '400': $ref: '#/components/responses/messagingBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '406': $ref: '#/components/responses/messagingNotAcceptableError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' servers: *ref_0 /users/{accountId}/messages: get: summary: List Messages description: Returns a list of messages based on query parameters. operationId: listMessages tags: - Messages parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/messageId' - $ref: '#/components/parameters/sourceTn' - $ref: '#/components/parameters/destinationTn' - $ref: '#/components/parameters/messageStatus' - $ref: '#/components/parameters/messageDirection' - $ref: '#/components/parameters/carrierName' - $ref: '#/components/parameters/messageType' - $ref: '#/components/parameters/errorCode' - $ref: '#/components/parameters/fromDateTime' - $ref: '#/components/parameters/toDateTime' - $ref: '#/components/parameters/campaignId' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/limitTotalCount' responses: '200': $ref: '#/components/responses/listMessagesResponse' '400': $ref: '#/components/responses/messagingBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' post: summary: Create Message description: >- Endpoint for sending text messages and picture messages using V2 messaging. operationId: createMessage tags: - Messages parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/createMessageRequest' responses: '202': $ref: '#/components/responses/createMessageResponse' '400': $ref: '#/components/responses/createMessageBadRequestError' '401': $ref: '#/components/responses/messagingUnauthorizedError' '403': $ref: '#/components/responses/messagingForbiddenError' '404': $ref: '#/components/responses/messagingNotFoundError' '406': $ref: '#/components/responses/messagingNotAcceptableError' '415': $ref: '#/components/responses/messagingInvalidMediaTypeError' '429': $ref: '#/components/responses/messagingTooManyRequestsError' '500': $ref: '#/components/responses/messagingInternalServerError' callbacks: inboundCallback: $ref: '#/components/callbacks/inboundCallback' statusCallback: $ref: '#/components/callbacks/statusCallback' servers: *ref_0 /accounts/{accountId}/calls: post: tags: - Calls summary: Create Call description: >- Creates an outbound phone call. All calls are initially queued. Your outbound calls will initiated at a specific dequeueing rate, enabling your application to "fire and forget" when creating calls. Queued calls may not be modified until they are dequeued and placed, but may be removed from your queue on demand. Please note: Calls submitted to your queue will be placed approximately in order, but exact ordering is not guaranteed. operationId: createCall parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/createCallRequest' responses: '201': $ref: '#/components/responses/createCallResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' get: tags: - Calls summary: Get Calls description: >- Returns a max of 10000 calls, sorted by `createdTime` from oldest to newest. **NOTE:** If the number of calls in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel="next"`) will be returned in the response. The url can be used to retrieve the next page of call records. Also, call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an empty array [] in response. operationId: listCalls parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/to' - $ref: '#/components/parameters/from' - $ref: '#/components/parameters/minStartTimeCalls' - $ref: '#/components/parameters/maxStartTimeCalls' - $ref: '#/components/parameters/disconnectCause' - $ref: '#/components/parameters/pageSizeCalls' - $ref: '#/components/parameters/pageToken1' responses: '200': $ref: '#/components/responses/listCallsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: &ref_1 - url: https://voice.bandwidth.com/api/v2 description: Production /accounts/{accountId}/calls/{callId}: get: tags: - Calls summary: Get Call State Information description: >- Retrieve the current state of a specific call. This information is near-realtime, so it may take a few minutes for your call to be accessible using this endpoint. **Note**: Call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an HTTP 404 response. operationId: getCallState parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' responses: '200': $ref: '#/components/responses/getCallStateResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' post: tags: - Calls summary: Update Call description: >- Interrupts and redirects a call to a different URL that should return a BXML document. operationId: updateCall parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' requestBody: $ref: '#/components/requestBodies/updateCallRequest' responses: '200': $ref: '#/components/responses/updateCallResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '409': $ref: '#/components/responses/voiceConflictError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/bxml: put: tags: - Calls summary: Update Call BXML description: Interrupts and replaces an active call's BXML document. operationId: updateCallBxml parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' requestBody: $ref: '#/components/requestBodies/updateCallBxmlRequest' responses: '204': description: Call BXML was successfully replaced. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '409': $ref: '#/components/responses/voiceConflictError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences: get: tags: - Conferences summary: Get Conferences description: >- Returns a max of 1000 conferences, sorted by `createdTime` from oldest to newest. **NOTE:** If the number of conferences in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel="next"`) will be returned in the response. The url can be used to retrieve the next page of conference records. operationId: listConferences parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/name' - $ref: '#/components/parameters/minCreatedTime' - $ref: '#/components/parameters/maxCreatedTime' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageToken1' responses: '200': $ref: '#/components/responses/listConferencesResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}: get: tags: - Conferences summary: Get Conference Information description: Returns information about the specified conference. operationId: getConference parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' responses: '200': $ref: '#/components/responses/getConferenceResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' post: tags: - Conferences summary: Update Conference description: Update the conference state. operationId: updateConference parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' requestBody: $ref: '#/components/requestBodies/updateConferenceRequest' responses: '204': description: Conference was successfully modified. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}/bxml: put: tags: - Conferences summary: Update Conference BXML description: Update the conference BXML document. operationId: updateConferenceBxml parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' requestBody: $ref: '#/components/requestBodies/updateConferenceBxmlRequest' responses: '204': description: Conference successfully modified. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}: get: tags: - Conferences summary: Get Conference Member description: Returns information about the specified conference member. operationId: getConferenceMember parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/getConferenceMemberResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' put: tags: - Conferences summary: Update Conference Member description: Updates settings for a particular conference member. operationId: updateConferenceMember parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' - $ref: '#/components/parameters/memberId' requestBody: $ref: '#/components/requestBodies/updateConferenceMemberRequest' responses: '204': description: Conference member was successfully modified. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}/recordings: get: tags: - Conferences summary: Get Conference Recordings description: >- Returns a (potentially empty) list of metadata for the recordings that took place during the specified conference. operationId: listConferenceRecordings parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' responses: '200': $ref: '#/components/responses/listConferenceRecordingsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}: get: tags: - Conferences summary: Get Conference Recording Information description: Returns metadata for the specified recording. operationId: getConferenceRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' - $ref: '#/components/parameters/recordingId' responses: '200': $ref: '#/components/responses/getConferenceRecordingResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media: get: tags: - Conferences summary: Download Conference Recording description: Downloads the specified recording file. operationId: downloadConferenceRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/conferenceId' - $ref: '#/components/parameters/recordingId' responses: '200': $ref: '#/components/responses/downloadRecordingMediaResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/recordings: get: tags: - Recordings summary: Get Call Recordings description: >- Returns a list of metadata for the recordings associated with the specified account. The list can be filtered by the optional from, to, minStartTime, and maxStartTime arguments. The list is capped at 1000 entries and may be empty if no recordings match the specified criteria. operationId: listAccountCallRecordings parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/to' - $ref: '#/components/parameters/from' - $ref: '#/components/parameters/minStartTime' - $ref: '#/components/parameters/maxStartTime' responses: '200': $ref: '#/components/responses/listCallRecordingsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/recording: put: tags: - Recordings summary: Update Recording description: Pause or resume a recording on an active phone call. operationId: updateCallRecordingState parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' requestBody: $ref: '#/components/requestBodies/updateCallRecordingRequest' responses: '200': $ref: '#/components/responses/updateRecordingResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/recordings: get: tags: - Recordings summary: List Call Recordings description: |- Returns a (potentially empty) list of metadata for the recordings that took place during the specified call. operationId: listCallRecordings parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' responses: '200': $ref: '#/components/responses/listCallRecordingsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/recordings/{recordingId}: get: tags: - Recordings summary: Get Call Recording description: Returns metadata for the specified recording. operationId: getCallRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '200': $ref: '#/components/responses/getCallRecordingResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' delete: tags: - Recordings summary: Delete Recording description: >- Delete the recording information, media and transcription. Note: After the deletion is requested and a `204` is returned, neither the recording metadata nor the actual media nor its transcription will be accessible anymore. However, the media of the specified recording is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours. operationId: deleteRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '204': description: Recording was deleted. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media: get: tags: - Recordings summary: Download Recording description: Downloads the specified recording. operationId: downloadCallRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '200': $ref: '#/components/responses/downloadRecordingMediaResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' delete: tags: - Recordings summary: Delete Recording Media description: Deletes the specified recording's media. operationId: deleteRecordingMedia parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '204': description: The recording media was successfully deleted. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription: get: tags: - Recordings summary: Get Transcription description: >- Downloads the specified transcription. If the recording was multi-channel, then there will be 2 transcripts. The caller/called party transcript will be the first item while [``](/docs/voice/bxml/playAudio) and [``](/docs/voice/bxml/speakSentence) transcript will be the second item. During a [``](/docs/voice/bxml/transfer) the A-leg transcript will be the first item while the B-leg transcript will be the second item. operationId: getRecordingTranscription parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '200': $ref: '#/components/responses/getRecordingTranscriptionResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' post: tags: - Recordings summary: Create Transcription Request description: >- Generate the transcription for a specific recording. Transcription can succeed only for recordings of length greater than 500 milliseconds and less than 4 hours. operationId: transcribeCallRecording parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' requestBody: $ref: '#/components/requestBodies/transcribeRecordingRequest' responses: '204': description: Transcription was successfully requested. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' delete: tags: - Recordings summary: Delete Transcription description: >- Deletes the specified recording's transcription. Note: After the deletion is requested and a `204` is returned, the transcription will not be accessible anymore. However, it is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours. operationId: deleteRecordingTranscription parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/recordingId' responses: '204': description: The transcription was successfully deleted. '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/statistics: get: tags: - Statistics summary: Get Account Statistics description: Returns details about the current state of the account. operationId: getStatistics parameters: - $ref: '#/components/parameters/accountId' responses: '200': $ref: '#/components/responses/getStatisticsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/transcriptions: get: tags: - Transcriptions summary: Enumerate transcriptions made with StartTranscription description: >- Enumerates the transcriptions created on this call via [startTranscription](/docs/voice/bxml/startTranscription). operationId: listRealTimeTranscriptions parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' responses: '200': $ref: '#/components/responses/listTranscriptionsResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/calls/{callId}/transcriptions/{transcriptionId}: get: tags: - Transcriptions summary: Retrieve a specific transcription description: >- Retrieve the specified transcription that was created on this call via [startTranscription](/docs/voice/bxml/startTranscription). operationId: getRealTimeTranscription parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/transcriptionId' responses: '200': $ref: '#/components/responses/getCallTranscriptionResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' delete: tags: - Transcriptions summary: Delete a specific transcription description: >- Delete the specified transcription that was created on this call via [startTranscription](/docs/voice/bxml/startTranscription). Note: After the deletion is requested and a `200` is returned, the transcription will not be accessible anymore. However, it is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours. operationId: deleteRealTimeTranscription parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/callId' - $ref: '#/components/parameters/transcriptionId' responses: '200': $ref: '#/components/responses/deleteCallTranscriptionResponse' '400': $ref: '#/components/responses/voiceBadRequestError' '401': $ref: '#/components/responses/voiceUnauthorizedError' '403': $ref: '#/components/responses/voiceForbiddenError' '404': $ref: '#/components/responses/voiceNotFoundError' '405': $ref: '#/components/responses/voiceNotAllowedError' '415': $ref: '#/components/responses/voiceUnsupportedMediaTypeError' '429': $ref: '#/components/responses/voiceTooManyRequestsError' '500': $ref: '#/components/responses/voiceInternalServerError' servers: *ref_1 /accounts/{accountId}/code/voice: post: tags: - MFA summary: Voice Authentication Code description: Send an MFA Code via a phone call. operationId: generateVoiceCode parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/codeRequest' responses: '200': $ref: '#/components/responses/voiceCodeResponse' '400': $ref: '#/components/responses/mfaBadRequestError' '401': $ref: '#/components/responses/mfaUnauthorizedError' '403': $ref: '#/components/responses/mfaForbiddenError' '500': $ref: '#/components/responses/mfaInternalServerError' servers: &ref_2 - url: https://mfa.bandwidth.com/api/v1 description: Production /accounts/{accountId}/code/messaging: post: tags: - MFA summary: Messaging Authentication Code description: Send an MFA code via text message (SMS). operationId: generateMessagingCode parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/codeRequest' responses: '200': $ref: '#/components/responses/messagingCodeResponse' '400': $ref: '#/components/responses/mfaBadRequestError' '401': $ref: '#/components/responses/mfaUnauthorizedError' '403': $ref: '#/components/responses/mfaForbiddenError' '500': $ref: '#/components/responses/mfaInternalServerError' servers: *ref_2 /accounts/{accountId}/code/verify: post: tags: - MFA summary: Verify Authentication Code description: Verify a previously sent MFA code. operationId: verifyCode parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/codeVerify' responses: '200': $ref: '#/components/responses/verifyCodeResponse' '400': $ref: '#/components/responses/mfaBadRequestError' '401': $ref: '#/components/responses/mfaUnauthorizedError' '403': $ref: '#/components/responses/mfaForbiddenError' '429': $ref: '#/components/responses/mfaTooManyRequestsError' '500': $ref: '#/components/responses/mfaInternalServerError' servers: *ref_2 /accounts/{accountId}/tnlookup: post: summary: Create Lookup description: Create a Phone Number Lookup Request. operationId: createLookup tags: - Phone Number Lookup parameters: - $ref: '#/components/parameters/accountId' requestBody: $ref: '#/components/requestBodies/createLookupRequest' responses: '202': $ref: '#/components/responses/createLookupResponse' '400': $ref: '#/components/responses/tnLookupBadRequestError' '401': $ref: '#/components/responses/tnLookupUnauthorizedError' '403': $ref: '#/components/responses/tnLookupForbiddenError' '415': $ref: '#/components/responses/tnLookupMediaTypeError' '429': $ref: '#/components/responses/tnLookupTooManyRequestsError' '500': $ref: '#/components/responses/tnLookupInternalServerError' servers: &ref_3 - url: https://numbers.bandwidth.com/api/v1 description: Production /accounts/{accountId}/tnlookup/{requestId}: get: summary: Get Lookup Request Status description: Get an existing Phone Number Lookup Request. operationId: getLookupStatus tags: - Phone Number Lookup parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/requestId' responses: '200': $ref: '#/components/responses/getLookupResponse' '400': $ref: '#/components/responses/tnLookupBadRequestError' '401': $ref: '#/components/responses/tnLookupUnauthorizedError' '403': $ref: '#/components/responses/tnLookupForbiddenError' '404': $ref: '#/components/responses/tnLookupNotFoundError' '429': $ref: '#/components/responses/tnLookupTooManyRequestsError' '500': $ref: '#/components/responses/tnLookupInternalServerError' servers: *ref_3 components: schemas: priorityEnum: type: string description: |- The priority specified by the user. Not supported on MMS. enum: - default - high example: default messageStatusEnum: type: string description: >- The status of the message. One of RECEIVED QUEUED SENDING SENT FAILED DELIVERED ACCEPTED UNDELIVERED. enum: - RECEIVED - QUEUED - SENDING - SENT - FAILED - DELIVERED - ACCEPTED - UNDELIVERED example: RECEIVED listMessageDirectionEnum: type: string description: The direction of the message. One of INBOUND OUTBOUND. enum: - INBOUND - OUTBOUND messageDirectionEnum: type: string description: The direction of the message. One of in out. enum: - in - out messageTypeEnum: type: string description: The type of message. Either SMS or MMS. enum: - sms - mms example: sms fieldError: type: object properties: fieldName: type: string description: The name of the field that contains the error example: from description: type: string description: The error associated with the field example: >- '+invalid' must be replaced with a valid E164 formatted telephone number messagesList: title: MessagesList type: object properties: totalCount: type: integer description: >- The total number of messages matched by the search. When the request has limitTotalCount set to true this value is limited to 10,000. example: 100 pageInfo: $ref: '#/components/schemas/pageInfo' messages: type: array items: $ref: '#/components/schemas/listMessageItem' listMessageItem: title: listMessageItem type: object properties: messageId: type: string description: The message id example: 1589228074636lm4k2je7j7jklbn2 accountId: type: string description: The account id associated with this message. example: '9900000' sourceTn: type: string description: The source phone number of the message. example: '+15554443333' destinationTn: type: string description: The recipient phone number of the message. example: '+15554442222' messageStatus: $ref: '#/components/schemas/messageStatusEnum' messageDirection: $ref: '#/components/schemas/listMessageDirectionEnum' messageType: $ref: '#/components/schemas/messageTypeEnum' segmentCount: type: integer description: The number of segments the message was sent as. example: 1 errorCode: type: integer description: The numeric error code of the message. example: 9902 receiveTime: type: string format: date-time description: The ISO 8601 datetime of the message. example: 2020-04-07T14:03:07.000Z carrierName: type: string nullable: true description: >- The name of the carrier. Not currently supported for MMS coming soon. example: other messageSize: type: integer description: The size of the message including message content and headers. nullable: true example: 27 messageLength: type: integer description: The length of the message content. example: 18 attachmentCount: type: integer description: The number of attachments the message has. nullable: true example: 1 recipientCount: type: integer description: The number of recipients the message has. nullable: true example: 1 campaignClass: type: string description: The campaign class of the message if it has one. nullable: true example: T campaignId: type: string description: The campaign ID of the message if it has one. nullable: true example: CJEUMDK pageInfo: title: PageInfo type: object properties: prevPage: type: string description: The link to the previous page for pagination. example: >- https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902 nextPage: type: string description: The link to the next page for pagination. example: >- https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C prevPageToken: type: string description: The isolated pagination token for the previous page. example: DLAPE902 nextPageToken: type: string description: The isolated pagination token for the next page. example: GL83PD3C messagingRequestError: title: MessagingRequestError type: object properties: type: type: string description: type: string required: - type - description createMessageRequestError: title: CreateMessageRequestError type: object properties: type: type: string description: type: string fieldErrors: type: array items: $ref: '#/components/schemas/fieldError' required: - type - description media: title: Media type: object properties: content: type: string contentLength: type: integer mediaName: type: string tag: title: Tag type: object properties: key: type: string value: type: string deferredResult: title: DeferredResult type: object properties: result: type: object setOrExpired: type: boolean message: title: Message type: object properties: id: type: string description: The id of the message. example: 1589228074636lm4k2je7j7jklbn2 owner: type: string description: The Bandwidth phone number associated with the message. example: '+15554443333' applicationId: type: string description: The application ID associated with the message. example: 93de2206-9669-4e07-948d-329f4b722ee2 time: type: string format: date-time description: The datetime stamp of the message in ISO 8601 example: 2022-09-14T18:20:16.000Z segmentCount: type: integer description: >- The number of segments the original message from the user is broken into before sending over to carrier networks. example: 2 direction: $ref: '#/components/schemas/messageDirectionEnum' to: uniqueItems: true type: array items: type: string description: The phone number recipients of the message. example: - '+15552223333' from: type: string description: The phone number the message was sent from. example: '+15553332222' media: uniqueItems: true type: array items: type: string description: >- The list of media URLs sent in the message. Including a `filename` field in the `Content-Disposition` header of the media linked with a URL will set the displayed file name. This is a best practice to ensure that your media has a readable file name. example: - https://dev.bandwidth.com/images/bandwidth-logo.png text: type: string description: The contents of the message. example: Hello world tag: type: string description: The custom string set by the user. example: custom tag priority: $ref: '#/components/schemas/priorityEnum' expiration: type: string format: date-time description: The expiration date-time set by the user. example: '2021-02-01T11:29:18-05:00' messageRequest: title: MessageRequest type: object required: - applicationId - to - from properties: applicationId: type: string description: >- The ID of the Application your from number is associated with in the Bandwidth Phone Number Dashboard. example: 93de2206-9669-4e07-948d-329f4b722ee2 to: uniqueItems: true type: array description: The phone number(s) the message should be sent to in E164 format. example: - '+15554443333' - '+15552223333' items: type: string from: type: string description: >- Either an alphanumeric sender ID or the sender's Bandwidth phone number in E.164 format, which must be hosted within Bandwidth and linked to the account that is generating the message. Alphanumeric Sender IDs can contain up to 11 characters, upper-case letters A-Z, lower-case letters a-z, numbers 0-9, space, hyphen -, plus +, underscore _ and ampersand &. Alphanumeric Sender IDs must contain at least one letter. example: '+15551113333' text: type: string description: The contents of the text message. Must be 2048 characters or less. maxLength: 2048 example: Hello world media: type: array items: type: string format: uri maxLength: 4096 description: >- A list of URLs to include as media attachments as part of the message. Each URL can be at most 4096 characters. example: - https://dev.bandwidth.com/images/bandwidth-logo.png - https://dev.bandwidth.com/images/github_logo.png tag: type: string description: >- A custom string that will be included in callback events of the message. Max 1024 characters. example: custom string priority: $ref: '#/components/schemas/priorityEnum' expiration: type: string format: date-time description: >- A string with the date/time value that the message will automatically expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z or 2021-03-13T20:59:26-05:00. Must be a date-time in the future. Not supported on MMS. example: '2021-02-01T11:29:18-05:00' inboundMessageCallback: description: Inbound Message Callback type: object properties: time: type: string format: date-time example: 2016-09-14T18:20:16.000Z type: type: string example: message-received to: type: string example: '+15552223333' description: type: string example: Incoming message received message: $ref: '#/components/schemas/inboundMessageCallbackMessage' required: - time - type - to - description - message inboundMessageCallbackMessage: description: Inbound Message Callback Message Schema type: object properties: id: type: string example: 1661365814859loidf7mcwd4qacn7 owner: type: string example: '+15553332222' applicationId: type: string example: 93de2206-9669-4e07-948d-329f4b722ee2 time: type: string format: date-time example: 2016-09-14T18:20:16.000Z segmentCount: type: integer example: 1 direction: $ref: '#/components/schemas/messageDirectionEnum' to: uniqueItems: true type: array items: type: string example: - '+15552223333' from: type: string example: '+15553332222' text: type: string example: Hello world tag: type: string example: custom string media: type: array items: type: string format: uri example: - https://dev.bandwidth.com/images/bandwidth-logo.png - https://dev.bandwidth.com/images/github_logo.png priority: $ref: '#/components/schemas/priorityEnum' required: - id - owner - applicationId - time - segmentCount - direction - to - from - text messageSendingCallback: type: object description: Message Sending Callback properties: time: type: string format: date-time example: 2016-09-14T18:20:16.000Z type: type: string example: message-sending to: type: string example: '+15552223333' description: type: string example: Message is sending to carrier message: $ref: '#/components/schemas/messageSendingCallbackMessage' required: - time - type - to - description - message messageSendingCallbackMessage: description: Message Sending Callback Message Schema type: object properties: id: type: string example: 1661365814859loidf7mcwd4qacn7 owner: type: string example: '+15553332222' applicationId: type: string example: 93de2206-9669-4e07-948d-329f4b722ee2 time: type: string format: date-time example: 2016-09-14T18:20:16.000Z segmentCount: type: integer example: 1 direction: $ref: '#/components/schemas/messageDirectionEnum' to: uniqueItems: true type: array items: type: string example: - '+15552223333' from: type: string example: '+15553332222' text: type: string example: Hello world tag: type: string example: custom string media: type: array items: type: string format: uri example: - https://dev.bandwidth.com/images/bandwidth-logo.png - https://dev.bandwidth.com/images/github_logo.png priority: $ref: '#/components/schemas/priorityEnum' required: - id - owner - applicationId - time - segmentCount - direction - to - from - text - media messageDeliveredCallback: description: Message Delivered Callback type: object properties: time: type: string format: date-time example: 2016-09-14T18:20:16.000Z type: type: string example: message-delivered to: type: string example: '+15552223333' description: type: string example: Message delivered to carrier. message: $ref: '#/components/schemas/messageDeliveredCallbackMessage' required: - time - type - to - description - message messageDeliveredCallbackMessage: description: Message Delivered Callback Message Schema type: object properties: id: type: string example: 1661365814859loidf7mcwd4qacn7 owner: type: string example: '+15553332222' applicationId: type: string example: 93de2206-9669-4e07-948d-329f4b722ee2 time: type: string format: date-time example: 2016-09-14T18:20:16.000Z segmentCount: type: integer example: 1 direction: $ref: '#/components/schemas/messageDirectionEnum' to: uniqueItems: true type: array items: type: string example: - '+15552223333' from: type: string example: '+15553332222' text: type: string example: Hello world tag: type: string example: custom string media: type: array items: type: string format: uri example: - https://dev.bandwidth.com/images/bandwidth-logo.png - https://dev.bandwidth.com/images/github_logo.png priority: $ref: '#/components/schemas/priorityEnum' required: - id - owner - applicationId - time - segmentCount - direction - to - from - text - tag messageFailedCallback: description: Message Failed Callback type: object properties: time: type: string format: date-time example: 2016-09-14T18:20:16.000Z type: type: string example: message-failed to: type: string example: '+15552223333' description: type: string example: rejected-unallocated-from-number message: $ref: '#/components/schemas/messageFailedCallbackMessage' errorCode: type: integer example: 9902 required: - time - type - to - description - message - errorCode messageFailedCallbackMessage: description: Message Failed Callback Message Schema type: object properties: id: type: string example: 1661365814859loidf7mcwd4qacn7 owner: type: string example: '+15553332222' applicationId: type: string example: 93de2206-9669-4e07-948d-329f4b722ee2 time: type: string format: date-time example: 2016-09-14T18:20:16.000Z segmentCount: type: integer example: 1 direction: $ref: '#/components/schemas/messageDirectionEnum' to: uniqueItems: true type: array items: type: string example: - '+15552223333' from: type: string example: '+15553332222' text: type: string example: Hello world tag: type: string example: custom string media: type: array items: type: string format: uri example: - https://dev.bandwidth.com/images/bandwidth-logo.png - https://dev.bandwidth.com/images/github_logo.png priority: $ref: '#/components/schemas/priorityEnum' required: - id - owner - applicationId - time - segmentCount - direction - to - from - text - tag callbackMethodEnum: type: string nullable: true default: POST enum: - GET - POST description: >- The HTTP method to use to deliver the callback. GET or POST. Default value is POST. example: POST redirectMethodEnum: type: string nullable: true default: POST enum: - GET - POST description: >- The HTTP method to use for the request to `redirectUrl`. GET or POST. Default value is POST.

Not allowed if `state` is `completed`. example: POST recordingStateEnum: type: string enum: - paused - recording description: |- The recording state. Possible values: `paused` to pause an active recording `recording` to resume a paused recording example: paused callDirectionEnum: type: string enum: - inbound - outbound description: The direction of the call. example: inbound fileFormatEnum: type: string enum: - mp3 - wav description: The format that the recording is stored in. example: wav callStateEnum: nullable: true type: string default: active enum: - active - completed description: >- The call state. Possible values:
`active` to redirect the call (default)
`completed` to hang up the call if it is answered, cancel it if it is an unanswered outbound call, or reject it if it an unanswered inbound call example: completed conferenceStateEnum: nullable: true type: string default: active enum: - active - completed description: >- Setting the conference state to `completed` ends the conference and ejects all members. example: completed machineDetectionModeEnum: type: string default: async enum: - sync - async description: >- The machine detection mode. If set to 'async', the detection result will be sent in a 'machineDetectionComplete' callback. If set to 'sync', the 'answer' callback will wait for the machine detection to complete and will include its result. example: async callTranscriptionDetectedLanguageEnum: type: string enum: - en-US - es-US - fr-FR description: The detected language for this transcription. example: en-US callTranscriptionTrackEnum: type: string enum: - inbound - outbound description: Which `track` this transcription is derived from. example: inbound createCall: type: object required: - answerUrl - applicationId - from - to properties: to: type: string description: >- The destination to call (must be an E.164 formatted number (e.g. `+15555551212`) or a SIP URI (e.g. `sip:user@server.example`)). example: '+19195551234' from: type: string description: >- A Bandwidth phone number on your account the call should come from (must be in E.164 format, like `+15555551212`) even if `privacy` is set to true. example: '+15555551212' privacy: nullable: true type: boolean description: >- Hide the calling number. The `displayName` field can be used to customize the displayed name. example: false displayName: nullable: true type: string description: >- The caller display name to use when the call is created. May not exceed 256 characters nor contain control characters such as new lines. If `privacy` is true, only the following values are valid: `Restricted`, `Anonymous`, `Private`, or `Unavailable`. maxLength: 256 example: John Doe uui: nullable: true type: string example: >- eyJhbGciOiJIUzI1NiJ9.WyJoaSJd.-znkjYyCkgz4djmHUPSXl9YrJ6Nix_XvmlwKGFh5ERM;encoding=jwt,aGVsbG8gd29ybGQ;encoding=base64 description: >- A comma-separated list of 'User-To-User' headers to be sent in the INVITE when calling a SIP URI. Each value must end with an 'encoding' parameter as described in RFC 7433. Only 'jwt' and 'base64' encodings are allowed. The entire value cannot exceed 350 characters, including parameters and separators. applicationId: type: string description: The id of the application associated with the `from` number. example: 1234-qwer-5679-tyui answerUrl: type: string format: uri description: >- The full URL to send the Answer event to when the called party answers. This endpoint should return the first BXML document to be executed in the call. Must use `https` if specifying `username` and `password`. maxLength: 2048 example: https://www.myCallbackServer.example/webhooks/answer answerMethod: $ref: '#/components/schemas/callbackMethodEnum' username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! answerFallbackUrl: nullable: true type: string format: uri description: >- A fallback url which, if provided, will be used to retry the `answer` webhook delivery in case `answerUrl` fails to respond Must use `https` if specifying `fallbackUsername` and `fallbackPassword`. maxLength: 2048 example: https://www.myFallbackServer.example/webhooks/answer answerFallbackMethod: $ref: '#/components/schemas/callbackMethodEnum' fallbackUsername: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername fallbackPassword: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! disconnectUrl: nullable: true type: string format: uri description: >- The URL to send the Disconnect event to when the call ends. This event does not expect a BXML response. maxLength: 2048 example: https://www.myCallbackServer.example/webhooks/disconnect disconnectMethod: $ref: '#/components/schemas/callbackMethodEnum' callTimeout: nullable: true type: number format: double description: >- The timeout (in seconds) for the callee to answer the call after it starts ringing. If the call does not start ringing within 30s, the call will be cancelled regardless of this value. Can be any numeric value (including decimals) between 1 and 300. minimum: 1 maximum: 300 default: 30 example: 30 callbackTimeout: nullable: true type: number format: double description: >- This is the timeout (in seconds) to use when delivering webhooks for the call. Can be any numeric value (including decimals) between 1 and 25. minimum: 1 maximum: 25 default: 15 example: 15 machineDetection: $ref: '#/components/schemas/machineDetectionConfiguration' priority: nullable: true type: integer minimum: 1 maximum: 5 default: 5 description: >- The priority of this call over other calls from your account. For example, if during a call your application needs to place a new call and bridge it with the current call, you might want to create the call with priority 1 so that it will be the next call picked off your queue, ahead of other less time sensitive calls. A lower value means higher priority, so a priority 1 call takes precedence over a priority 2 call. example: 5 tag: nullable: true type: string description: >- A custom string that will be sent with all webhooks for this call unless overwritten by a future `` verb or `tag` attribute on another verb, or cleared. May be cleared by setting `tag=""` Max length 256 characters. maxLength: 256 example: arbitrary text here createCallResponse: type: object required: - accountId - answerMethod - answerUrl - applicationId - callId - callUrl - disconnectMethod - from - to properties: applicationId: type: string example: 04e88489-df02-4e34-a0ee-27a91849555f description: The id of the application associated with the `from` number. accountId: type: string example: '9900000' description: The bandwidth account ID associated with the call. callId: type: string example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 description: Programmable Voice API Call ID. to: type: string example: '+19195551234' description: Recipient of the outgoing call. from: type: string example: '+19195554321' description: Phone number that created the outbound call. enqueuedTime: nullable: true type: string format: date-time description: The time at which the call was accepted into the queue. example: '2022-06-16T13:15:07.160Z' callUrl: type: string format: uri example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 description: The URL to update this call's state. callTimeout: type: number format: double example: 30 description: >- The timeout (in seconds) for the callee to answer the call after it starts ringing. callbackTimeout: type: number format: double example: 15 description: >- This is the timeout (in seconds) to use when delivering webhooks for the call. tag: nullable: true type: string example: My custom tag value description: Custom tag value. answerMethod: $ref: '#/components/schemas/callbackMethodEnum' answerUrl: type: string format: uri example: https://myServer.example/bandwidth/webhooks/answer description: URL to deliver the `answer` event webhook. answerFallbackMethod: $ref: '#/components/schemas/callbackMethodEnum' answerFallbackUrl: nullable: true type: string format: uri example: https://myFallbackServer.example/bandwidth/webhooks/answer description: Fallback URL to deliver the `answer` event webhook. disconnectMethod: $ref: '#/components/schemas/callbackMethodEnum' disconnectUrl: nullable: true type: string format: uri example: https://myServer.example/bandwidth/webhooks/disconnect description: URL to deliver the `disconnect` event webhook. username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! fallbackUsername: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername fallbackPassword: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! priority: nullable: true type: integer example: 5 description: The priority of this call over other calls from your account. callState: type: object properties: applicationId: type: string description: The application id associated with the call. example: 04e88489-df02-4e34-a0ee-27a91849555f accountId: type: string description: The account id associated with the call. example: '9900000' callId: type: string description: The programmable voice API call ID. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 parentCallId: nullable: true type: string description: >- The A-leg call id, set only if this call is the B-leg of a [``](/docs/voice/bxml/transfer). example: c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 to: type: string description: >- The phone number that received the call, in E.164 format (e.g. +15555555555), or if the call was to a SIP URI, the SIP URI. example: '+19195551234' from: type: string description: >- The phone number that made the call, in E.164 format (e.g. +15555555555). example: '+19195554321' direction: $ref: '#/components/schemas/callDirectionEnum' state: description: >- The current state of the call. Current possible values are `queued`, `initiated`, `answered` and `disconnected`. Additional states may be added in the future, so your application must be tolerant of unknown values. type: string example: disconnected stirShaken: nullable: true type: object description: >- For inbound calls, the Bandwidth STIR/SHAKEN implementation will verify the information provided in the inbound invite request `Identity` header. The verification status is stored in the call state `stirShaken` property as follows. | Property | Description | |:------------------|:------------| | verstat | (optional) The verification status indicating whether the verification was successful or not. Possible values are `TN-Verification-Passed` or `TN-Verification-Failed`. | | attestationIndicator | (optional) The attestation level verified by Bandwidth. Possible values are `A` (full), `B` (partial) or `C` (gateway). | | originatingId | (optional) A unique origination identifier. | Note that these are common properties but that the `stirShaken` object is free form and can contain other key-value pairs. More information: [Understanding STIR/SHAKEN](https://www.bandwidth.com/regulations/stir-shaken). additionalProperties: type: string example: verstat: TN-Verification-Passed attestationIndicator: A originatingId: abc123 identity: nullable: true type: string description: >- The value of the `Identity` header from the inbound invite request. Only present for inbound calls and if the account is configured to forward this header. example: >- eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9idy1zaGFrZW4tY2VydC1wdWIuczMuYW1hem9uYXdzLmNvbS9iYW5kd2lkdGgtc2hha2VuLWNlcnRfMjAyMzA3MTYucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxOTg0MjgyMDI4MCJdfSwiaWF0IjoxNjU2NTM0MzM2LCJvcmlnIjp7InRuIjoiMTkxOTQ0NDI2ODMifSwib3JpZ2lkIjoiNDk0NTlhOGEtNDJmNi0zNTFjLTkzNjEtYWRmNTdhOWUwOGNhIn0.56un9sRw_uH-sbJvnUsqdevlVxbOVjn8MVlGTlBMicjaZuRRwxfiNp-C9zYCMKTTCbc-QdYPN05F61XNVN4D3w;info=;alg=ES256;ppt=shaken enqueuedTime: nullable: true type: string format: date-time description: The time this call was placed in queue. example: '2022-06-16T13:15:07.160Z' startTime: nullable: true type: string format: date-time description: >- The time the call was initiated, in ISO 8601 format. `null` if the call is still in your queue. example: '2022-06-16T13:15:07.160Z' answerTime: nullable: true type: string format: date-time description: >- Populated once the call has been answered, with the time in ISO 8601 format. example: '2022-06-16T13:15:18.126Z' endTime: nullable: true type: string format: date-time description: Populated once the call has ended, with the time in ISO 8601 format. example: '2022-06-16T13:15:18.314Z' disconnectCause: nullable: true type: string description: >- | Cause | Description | |:------|:------------| | `hangup`| One party hung up the call, a [``](../../bxml/verbs/hangup.md) verb was executed, or there was no more BXML to execute; it indicates that the call ended normally. | | `busy` | Callee was busy. | | `timeout` | Call wasn't answered before the `callTimeout` was reached. | | `cancel` | Call was cancelled by its originator while it was ringing. | | `rejected` | Call was rejected by the callee. | | `callback-error` | BXML callback couldn't be delivered to your callback server. | | `invalid-bxml` | Invalid BXML was returned in response to a callback. | | `application-error` | An unsupported action was tried on the call, e.g. trying to play a .ogg audio. | | `account-limit` | Account rate limits were reached. | | `node-capacity-exceeded` | System maximum capacity was reached. | | `error` | Some error not described in any of the other causes happened on the call. | | `unknown` | Unknown error happened on the call. | Note: This list is not exhaustive and other values can appear in the future. errorMessage: nullable: true type: string description: >- Populated only if the call ended with an error, with text explaining the reason. example: null errorId: nullable: true type: string description: >- Populated only if the call ended with an error, with a Bandwidth internal id that references the error event. example: null lastUpdate: type: string format: date-time description: The last time the call had a state update, in ISO 8601 format. example: '2022-06-16T13:15:18.314Z' updateCall: type: object properties: state: $ref: '#/components/schemas/callStateEnum' redirectUrl: description: |- The URL to send the [Redirect](/docs/voice/bxml/redirect) event to which will provide new BXML. Required if `state` is `active`. Not allowed if `state` is `completed`. nullable: true type: string format: uri example: https://myServer.example/bandwidth/webhooks/redirect redirectMethod: $ref: '#/components/schemas/redirectMethodEnum' username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! redirectFallbackUrl: nullable: true type: string format: uri description: |- A fallback url which, if provided, will be used to retry the redirect callback delivery in case `redirectUrl` fails to respond. example: https://myFallbackServer.example/bandwidth/webhooks/redirect redirectFallbackMethod: $ref: '#/components/schemas/redirectMethodEnum' fallbackUsername: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername fallbackPassword: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! tag: nullable: true type: string description: >- A custom string that will be sent with this and all future callbacks unless overwritten by a future `tag` attribute or [``](/docs/voice/bxml/tag) verb, or cleared. May be cleared by setting `tag=""`. Max length 256 characters. Not allowed if `state` is `completed`. maxLength: 256 example: My Custom Tag updateCallRecording: type: object required: - state properties: state: $ref: '#/components/schemas/recordingStateEnum' accountStatistics: type: object properties: currentCallQueueSize: type: integer description: The number of calls currently enqueued. example: 0 maxCallQueueSize: type: integer description: >- The maximum size of the queue before outgoing calls start being rejected. example: 900 callRecordingMetadata: type: object properties: applicationId: $ref: '#/components/schemas/applicationId' accountId: $ref: '#/components/schemas/accountId' callId: $ref: '#/components/schemas/callId' parentCallId: $ref: '#/components/schemas/parentCallId' recordingId: $ref: '#/components/schemas/recordingId' to: $ref: '#/components/schemas/to' from: $ref: '#/components/schemas/from' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' duration: $ref: '#/components/schemas/duration' direction: $ref: '#/components/schemas/callDirectionEnum' channels: $ref: '#/components/schemas/channels' startTime: $ref: '#/components/schemas/startTime' endTime: $ref: '#/components/schemas/endTime' fileFormat: $ref: '#/components/schemas/fileFormatEnum' status: $ref: '#/components/schemas/status' mediaUrl: $ref: '#/components/schemas/mediaUrl' transcription: $ref: '#/components/schemas/recordingTranscriptionMetadata' recordingName: $ref: '#/components/schemas/recordingName' conference: type: object properties: id: type: string description: The Bandwidth-generated conference ID. example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9 name: type: string description: The name of the conference, as specified by your application. example: my-conference-name createdTime: type: string format: date-time description: The time the conference was initiated, in ISO 8601 format. example: '2022-06-17T22:19:40.375Z' completedTime: nullable: true type: string format: date-time description: The time the conference was terminated, in ISO 8601 format. example: '2022-06-17T22:20:00.000Z' conferenceEventUrl: nullable: true type: string format: uri description: The URL to send the conference-related events. example: https://myServer.example/bandwidth/webhooks/conferenceEvent conferenceEventMethod: $ref: '#/components/schemas/callbackMethodEnum' tag: nullable: true type: string description: >- The custom string attached to the conference that will be sent with callbacks. example: my custom tag activeMembers: type: array nullable: true items: $ref: '#/components/schemas/conferenceMember' description: >- A list of active members of the conference. Omitted if this is a response to the [Get Conferences endpoint](/apis/voice#tag/Conferences/operation/listConferences). updateConference: type: object properties: status: $ref: '#/components/schemas/conferenceStateEnum' redirectUrl: nullable: true type: string format: uri description: >- The URL to send the [conferenceRedirect](/docs/voice/webhooks/conferenceRedirect) event which will provide new BXML. Not allowed if `state` is `completed`, but required if `state` is `active`. example: https://myServer.example/bandwidth/webhooks/conferenceRedirect redirectMethod: $ref: '#/components/schemas/redirectMethodEnum' username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! redirectFallbackUrl: nullable: true type: string format: uri description: >- A fallback url which, if provided, will be used to retry the `conferenceRedirect` webhook delivery in case `redirectUrl` fails to respond. Not allowed if `state` is `completed`. example: >- https://myFallbackServer.example/bandwidth/webhooks/conferenceRedirect redirectFallbackMethod: $ref: '#/components/schemas/redirectMethodEnum' fallbackUsername: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername fallbackPassword: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! conferenceMember: type: object properties: callId: $ref: '#/components/schemas/callId' conferenceId: $ref: '#/components/schemas/conferenceId' memberUrl: type: string format: uri description: >- A URL that may be used to retrieve information about or update the state of this conference member. This is the URL of this member's [Get Conference Member](/apis/voice/#operation/getConferenceMember) endpoint and [Modify Conference Member](/apis/voice/#operation/updateConferenceMember) endpoint. example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 mute: type: boolean description: >- Whether or not this member is currently muted. Members who are muted are still able to hear other participants. If used in a PUT request, updates this member's mute status. Has no effect if omitted. example: false hold: type: boolean description: >- Whether or not this member is currently on hold. Members who are on hold are not able to hear or speak in the conference. If used in a PUT request, updates this member's hold status. Has no effect if omitted. example: false callIdsToCoach: nullable: true type: array items: type: string description: >- If this member had a value set for `callIdsToCoach` in its [Conference](/docs/voice/bxml/conference) verb or this list was added with a previous PUT request to modify the member, this is that list of calls. If present in a PUT request, modifies the calls that this member is coaching. Has no effect if omitted. See the documentation for the [Conference](/docs/voice/bxml/conference) verb for more details about coaching. Note that this will not add the matching calls to the conference; each call must individually execute a Conference verb to join. example: - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 updateConferenceMember: type: object properties: mute: type: boolean description: >- Whether or not this member is currently muted. Members who are muted are still able to hear other participants. Updates this member's mute status. Has no effect if omitted. example: false hold: type: boolean description: >- Whether or not this member is currently on hold. Members who are on hold are not able to hear or speak in the conference. Updates this member's hold status. Has no effect if omitted. example: false callIdsToCoach: nullable: true type: array items: type: string description: >- If this member had a value set for `callIdsToCoach` in its [Conference](/docs/voice/bxml/conference) verb or this list was added with a previous PUT request to modify the member, this is that list of calls. Modifies the calls that this member is coaching. Has no effect if omitted. See the documentation for the [Conference](/docs/voice/bxml/conference) verb for more details about coaching. Note that this will not add the matching calls to the conference; each call must individually execute a Conference verb to join. example: - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 conferenceRecordingMetadata: type: object properties: accountId: $ref: '#/components/schemas/accountId' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' recordingId: $ref: '#/components/schemas/recordingId' duration: $ref: '#/components/schemas/duration' channels: $ref: '#/components/schemas/channels' startTime: $ref: '#/components/schemas/startTime' endTime: $ref: '#/components/schemas/endTime' fileFormat: $ref: '#/components/schemas/fileFormatEnum' status: $ref: '#/components/schemas/status' mediaUrl: $ref: '#/components/schemas/mediaUrl' recordingName: $ref: '#/components/schemas/recordingName' machineDetectionConfiguration: type: object description: >- The machine detection request used to perform machine detection on the call. Currently, there is an issue where decimal values are not getting processed correctly. Please use whole number values. We are working to resolve this issue. Please contact Bandwidth Support if you need more information. properties: mode: $ref: '#/components/schemas/machineDetectionModeEnum' detectionTimeout: nullable: true type: number format: double description: >- The timeout used for the whole operation, in seconds. If no result is determined in this period, a callback with a `timeout` result is sent. default: 15 example: 15 silenceTimeout: nullable: true type: number format: double description: >- If no speech is detected in this period, a callback with a 'silence' result is sent. default: 10 example: 10 speechThreshold: nullable: true type: number format: double description: >- When speech has ended and a result couldn't be determined based on the audio content itself, this value is used to determine if the speaker is a machine based on the speech duration. If the length of the speech detected is greater than or equal to this threshold, the result will be 'answering-machine'. If the length of speech detected is below this threshold, the result will be 'human'. default: 10 example: 10 speechEndThreshold: nullable: true type: number format: double description: >- Amount of silence (in seconds) before assuming the callee has finished speaking. default: 5 example: 5 machineSpeechEndThreshold: nullable: true type: number format: double description: >- When an answering machine is detected, the amount of silence (in seconds) before assuming the message has finished playing. If not provided it will default to the speechEndThreshold value. example: 5 delayResult: nullable: true type: boolean description: >- If set to 'true' and if an answering machine is detected, the 'answering-machine' callback will be delayed until the machine is done speaking, or an end of message tone is detected, or until the 'detectionTimeout' is exceeded. If false, the 'answering-machine' result is sent immediately. default: false example: false callbackUrl: nullable: true description: >- The URL to send the 'machineDetectionComplete' webhook when the detection is completed. Only for 'async' mode. type: string format: uri maxLength: 2048 example: https://myServer.example/bandwidth/webhooks/machineDetectionComplete callbackMethod: $ref: '#/components/schemas/callbackMethodEnum' username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! fallbackUrl: nullable: true type: string format: uri description: >- A fallback URL which, if provided, will be used to retry the machine detection complete webhook delivery in case `callbackUrl` fails to respond maxLength: 2048 example: >- https://myFallbackServer.example/bandwidth/webhooks/machineDetectionComplete fallbackMethod: $ref: '#/components/schemas/callbackMethodEnum' fallbackUsername: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername fallbackPassword: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! transcribeRecording: type: object properties: callbackUrl: type: string format: uri description: >- The URL to send the [TranscriptionAvailable](/docs/voice/webhooks/transcriptionAvailable) event to. You should not include sensitive or personally-identifiable information in the callbackUrl field! Always use the proper username and password fields for authorization. example: https://myServer.example/bandwidth/webhooks/transcriptionAvailable callbackMethod: $ref: '#/components/schemas/callbackMethodEnum' username: type: string nullable: true description: Basic auth username. maxLength: 1024 example: mySecretUsername password: type: string nullable: true description: Basic auth password. maxLength: 1024 example: mySecretPassword1! tag: $ref: '#/components/schemas/tag1' callbackTimeout: nullable: true type: number format: double minimum: 1 maximum: 25 default: 15 description: >- This is the timeout (in seconds) to use when delivering the webhook to `callbackUrl`. Can be any numeric value (including decimals) between 1 and 25. example: 5.5 detectLanguage: type: boolean nullable: true description: >- A boolean value to indicate that the recording may not be in English, and the transcription service will need to detect the dominant language the recording is in and transcribe accordingly. Current supported languages are English, French, and Spanish. default: false example: true recordingTranscriptions: type: object properties: transcripts: type: array items: $ref: '#/components/schemas/transcription' callTranscriptionMetadataList: type: array items: $ref: '#/components/schemas/callTranscriptionMetadata' example: - transcriptionId: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b transcriptionName: live_transcription transcriptionUrl: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-fef240ff-5cfc9091-8069-4863-a8c0-a4dcbbf1f1a4/transcriptions/t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b callTranscriptionMetadata: type: object properties: transcriptionId: type: string description: The programmable voice API transcription ID. example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b transcriptionName: type: string description: >- The programmable voice API transcription name. This name could be provided by the user when creating the transcription. example: live_transcription transcriptionUrl: type: string description: >- A URL that may be used to retrieve the transcription itself. This points to the [Get Call Transcription](/apis/voice/#operation/getCallTranscription) endpoint. example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-fef240ff-5cfc9091-8069-4863-a8c0-a4dcbbf1f1a4/transcriptions/t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b callTranscriptionResponse: type: object properties: accountId: type: string description: The user account associated with the call. example: '9900000' callId: type: string description: The call id associated with the event. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 transcriptionId: type: string description: The programmable voice API transcription ID. example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b tracks: type: array items: $ref: '#/components/schemas/callTranscription' example: - detectedLanguage: en-US track: inbound transcript: Hello World! This is an example. confidence: 0.9 callTranscription: type: object properties: detectedLanguage: $ref: '#/components/schemas/callTranscriptionDetectedLanguageEnum' track: $ref: '#/components/schemas/callTranscriptionTrackEnum' transcript: type: string description: The transcription itself. example: Hello World! This is an example. confidence: type: number format: double minimum: 0 maximum: 1 description: >- How confident the transcription engine was in transcribing the associated audio (from `0` to `1`). example: 0.9 recordingTranscriptionMetadata: nullable: true type: object description: If the recording was transcribed, metadata about the transcription properties: id: type: string description: The unique transcription ID example: t-387bd648-18f3-4823-9d16-746bca0003c9 status: $ref: '#/components/schemas/status' completedTime: type: string format: date-time description: The time that the transcription was completed example: '2022-06-13T18:46:29.715Z' url: type: string format: uri description: The URL of the [transcription](#operation/getCallTranscription) example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcription voiceApiError: type: object properties: type: type: string description: type: string id: nullable: true type: string answerCallback: type: object description: >- The Answer event is sent to the answerUrl specified in the createCall request when an outbound call is answered. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' machineDetectionResult: $ref: '#/components/schemas/machineDetectionResult' bridgeCompleteCallback: type: object description: >- If the target call leaves the , then this callback is sent to the bridgeCompleteUrl, and the BXML returned in it is executed on the call. If this webhook is sent, the Bridge Target Complete webhook is NOT sent. This callback is also sent if any problem occurs that prevents the calls to be bridged. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' cause: $ref: '#/components/schemas/cause' errorMessage: $ref: '#/components/schemas/errorMessage' errorId: $ref: '#/components/schemas/errorId' bridgeTargetCompleteCallback: type: object description: >- If the originating call leaves the , then this callback is sent to the bridgeTargetCompleteUrl, and the BXML returned in it is executed on the target call. If this webhook is sent, the Bridge Complete webhook is NOT sent. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' conferenceCreatedCallback: type: object description: >- The Conference Created event is fired whenever a new conference that specified a callbackUrl is created. The response may be either empty or a BXML document. Only the following verbs are valid for conferences: PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording, ResumeRecording. Audio verbs will be heard by all members of the conference. Recordings capture audio from all members who are not muted or on hold, as well as any audio verbs that are played into the conference. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' tag: $ref: '#/components/schemas/tag1' conferenceRedirectCallback: type: object description: >- The Conference Redirect event is fired whenever an existing conference is modified via a POST request made to the /conferences/{conferenceId} endpoint. The response may be either empty or a BXML document. Only the following verbs are valid for conferences: PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording, ResumeRecording. Audio verbs will be heard by all members of the conference. Recordings capture audio from all members who are not muted or on hold, as well as any audio verbs that are played into the conference. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' tag: $ref: '#/components/schemas/tag1' conferenceMemberJoinCallback: type: object description: >- The Conference Member Join event is fired whenever a caller joins a conference that specified a callbackUrl. The response may be either empty or a BXML document. Only the following verbs are valid for conferences: PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording, ResumeRecording. Audio verbs will be heard by all members of the conference. Recordings capture audio from all members who are not muted or on hold, as well as any audio verbs that are played into the conference. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' callId: $ref: '#/components/schemas/callId' tag: $ref: '#/components/schemas/tag1' conferenceMemberExitCallback: type: object description: >- The Conference Member Exit event is fired whenever a caller exits a conference that specified a callbackUrl. The response may be either empty or a BXML document. Only the following verbs are valid for conferences: PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording, ResumeRecording. Audio verbs will be heard by all members of the conference. Recordings capture audio from all members who are not muted or on hold, as well as any audio verbs that are played into the conference. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' callId: $ref: '#/components/schemas/callId' tag: $ref: '#/components/schemas/tag1' conferenceCompletedCallback: type: object description: >- The Conference Completed event is fired when the last member leaves the conference. The response to this event may not contain BXML. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' tag: $ref: '#/components/schemas/tag1' conferenceRecordingAvailableCallback: type: object description: >- The Conference Recording Available event is sent after a conference recording has been processed. It indicates that the recording is available for download. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' conferenceId: $ref: '#/components/schemas/conferenceId' name: $ref: '#/components/schemas/name' accountId: $ref: '#/components/schemas/accountId' recordingId: $ref: '#/components/schemas/recordingId' channels: $ref: '#/components/schemas/channels' startTime: $ref: '#/components/schemas/startTime' endTime: $ref: '#/components/schemas/endTime' duration: $ref: '#/components/schemas/duration' fileFormat: $ref: '#/components/schemas/fileFormatEnum' mediaUrl: $ref: '#/components/schemas/mediaUrl' tag: $ref: '#/components/schemas/tag1' status: $ref: '#/components/schemas/status' disconnectCallback: type: object description: The Disconnect event is fired when a call ends, for any reason. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' callId: $ref: '#/components/schemas/callId' direction: $ref: '#/components/schemas/callDirectionEnum' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' endTime: $ref: '#/components/schemas/endTime' cause: $ref: '#/components/schemas/cause' errorMessage: $ref: '#/components/schemas/errorMessage' errorId: $ref: '#/components/schemas/errorId' tag: $ref: '#/components/schemas/tag1' dtmfCallback: type: object description: >- The DTMF event is sent for every digit detected after a verb is executed. You may not respond to this event with BXML. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' callId: $ref: '#/components/schemas/callId' direction: $ref: '#/components/schemas/callDirectionEnum' digit: $ref: '#/components/schemas/digit' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' parentCallId: $ref: '#/components/schemas/parentCallId' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' tag: $ref: '#/components/schemas/tag1' gatherCallback: type: object description: >- The gather event is sent after a verb is executed. Its purpose is to report the gathered digits to the calling application. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' digits: $ref: '#/components/schemas/digits' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' parentCallId: $ref: '#/components/schemas/parentCallId' terminatingDigit: $ref: '#/components/schemas/terminatingDigit' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' tag: $ref: '#/components/schemas/tag1' initiateCallback: type: object description: >- The Initiate event is fired when an inbound call is received for a Telephone Number on your Account. It is sent to the URL specified in the application associated with the location (sip-peer) that the called telephone number belongs to. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' startTime: $ref: '#/components/schemas/startTime' diversion: $ref: '#/components/schemas/diversion' stirShaken: $ref: '#/components/schemas/stirShaken' machineDetectionCompleteCallback: type: object description: >- This event is sent to the url informed when requesting a machine detection operation. It contains the machine detection operation result, which can be: human, answering-machine, silence, timeout, error. This event is not sent when sync answering machine detection mode is chosen. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' machineDetectionResult: $ref: '#/components/schemas/machineDetectionResult' recordingCompleteCallback: type: object description: >- The Record Complete event is sent after a verb has executed if the call is still active. The BXML returned by this callback is executed next. When the recording is available for download, a Recording Available event will be sent. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' parentCallId: $ref: '#/components/schemas/parentCallId' recordingId: $ref: '#/components/schemas/recordingId' mediaUrl: $ref: '#/components/schemas/mediaUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' endTime: $ref: '#/components/schemas/endTime' duration: $ref: '#/components/schemas/duration' fileFormat: $ref: '#/components/schemas/fileFormatEnum' channels: $ref: '#/components/schemas/channels' tag: $ref: '#/components/schemas/tag1' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' recordingAvailableCallback: type: object description: >- The Recording Available event is sent after a recording has been processed. It indicates that the recording is available for download. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' parentCallId: $ref: '#/components/schemas/parentCallId' recordingId: $ref: '#/components/schemas/recordingId' mediaUrl: $ref: '#/components/schemas/mediaUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' endTime: $ref: '#/components/schemas/endTime' duration: $ref: '#/components/schemas/duration' fileFormat: $ref: '#/components/schemas/fileFormatEnum' channels: $ref: '#/components/schemas/channels' tag: $ref: '#/components/schemas/tag1' status: $ref: '#/components/schemas/status' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' redirectCallback: type: object description: >- The Redirect event is fired when a verb is executed. Its purpose is to get the next set of verbs from the calling application. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' parentCallId: $ref: '#/components/schemas/parentCallId' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' transcriptionAvailableCallback: type: object description: >- The Transcription Available event is sent when the recording transcription is available to be downloaded. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' mediaUrl: $ref: '#/components/schemas/mediaUrl' parentCallId: $ref: '#/components/schemas/parentCallId' recordingId: $ref: '#/components/schemas/recordingId' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' endTime: $ref: '#/components/schemas/endTime' duration: $ref: '#/components/schemas/duration' fileFormat: $ref: '#/components/schemas/fileFormatEnum' tag: $ref: '#/components/schemas/tag1' transcription: $ref: '#/components/schemas/transcription' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' transferAnswerCallback: type: object description: >- When processing a verb, this event is sent when a called party (B-leg) answers. The event is sent to the endpoint specified in the transferAnswerUrl attribute of the tag that answered. BXML returned by this callback will be executed for the called party only. After all BXML has been executed, the called party will be bridged to the original call. Most BXML verbs are allowed in response to a transferAnswer event, but some are not allowed. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' transferCompleteCallback: type: object description: >- This event is sent to the transferCompleteUrl of the A-leg's verb when the transferred call (B-leg) completes. In a simultaneous ringing scenario, only one B-leg succeeds and this event corresponds to that successful leg. If none of the calls were answered, the transferComplete event corresponds to one of the legs. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' tag: $ref: '#/components/schemas/tag1' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' cause: $ref: '#/components/schemas/cause' errorMessage: $ref: '#/components/schemas/errorMessage' errorId: $ref: '#/components/schemas/errorId' transferDisconnectCallback: type: object description: >- This event is sent to the transferDisconnectUrl of each tag when its respective call leg ends for any reason. The event is sent in the normal case, when the transferred leg is answered and later hung up, but is also sent if the new leg was never answered in the first place, if it was rejected, and if the original call leg hung up before the transferred leg. properties: eventType: $ref: '#/components/schemas/eventType' eventTime: $ref: '#/components/schemas/eventTime' accountId: $ref: '#/components/schemas/accountId' applicationId: $ref: '#/components/schemas/applicationId' from: $ref: '#/components/schemas/from' to: $ref: '#/components/schemas/to' direction: $ref: '#/components/schemas/callDirectionEnum' callId: $ref: '#/components/schemas/callId' callUrl: $ref: '#/components/schemas/callUrl' parentCallId: $ref: '#/components/schemas/parentCallId' enqueuedTime: $ref: '#/components/schemas/enqueuedTime' startTime: $ref: '#/components/schemas/startTime' answerTime: $ref: '#/components/schemas/answerTime' endTime: $ref: '#/components/schemas/endTime' tag: $ref: '#/components/schemas/tag1' transferCallerId: $ref: '#/components/schemas/transferCallerId' transferTo: $ref: '#/components/schemas/transferTo' cause: $ref: '#/components/schemas/cause' errorMessage: $ref: '#/components/schemas/errorMessage' errorId: $ref: '#/components/schemas/errorId' eventType: type: string description: >- The event type, value can be one of the following: answer, bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect, conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable, disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete, recordingAvailable, redirect, transcriptionAvailable, transferAnswer, transferComplete, transferDisconnect. example: bridgeComplete eventTime: type: string format: date-time description: >- The approximate UTC date and time when the event was generated by the Bandwidth server, in ISO 8601 format. This may not be exactly the time of event execution. example: '2022-06-17T22:19:40.375Z' accountId: type: string description: The user account associated with the call. example: '9900000' applicationId: type: string description: The id of the application associated with the call. example: 04e88489-df02-4e34-a0ee-27a91849555f to: type: string description: >- The phone number that received the call, in E.164 format (e.g. +15555555555). example: '+15555555555' from: type: string description: >- The provided identifier of the caller. Must be a phone number in E.164 format (e.g. +15555555555). example: '+15555555555' conferenceId: type: string description: The unique, Bandwidth-generated ID of the conference that was recorded example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9 name: type: string description: The user-specified name of the conference that was recorded example: my-conference-name recordingId: type: string description: The unique ID of this recording example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833 duration: type: string description: The duration of the recording in ISO-8601 format example: PT13.67S channels: type: integer format: int32 description: >- Always `1` for conference recordings; multi-channel recordings are not supported on conferences. example: 1 digit: type: string description: The digit collected in the call. example: '2' digits: type: string description: >- (optional) The digits, letters, and/or symbols entered by the user. The string is empty if a timeout occurred before any buttons were pressed. example: '123' terminatingDigit: type: string description: >- (optional) The digit the user pressed to end the gather. Empty string value if no terminating digit was pressed. example: '#' startTime: type: string format: date-time description: Time the call was started, in ISO 8601 format. example: '2022-06-17T22:19:40.375Z' enqueuedTime: type: string format: date-time description: >- (optional) If call queueing is enabled and this is an outbound call, time the call was queued, in ISO 8601 format. example: '2022-06-17T22:20:00.000Z' nullable: true answerTime: type: string format: date-time description: Time the call was answered, in ISO 8601 format. example: '2022-06-17T22:20:00.000Z' nullable: true endTime: type: string format: date-time description: The time that the recording ended in ISO-8601 format example: '2022-06-17T22:20:00.000Z' status: type: string description: >- The current status of the process. For recording, current possible values are 'processing', 'partial', 'complete', 'deleted', and 'error'. For transcriptions, current possible values are 'none', 'processing', 'available', 'error', 'timeout', 'file-size-too-big', and 'file-size-too-small'. Additional states may be added in the future, so your application must be tolerant of unknown values. example: completed transferCallerId: type: string description: >- The phone number used as the from field of the B-leg call, in E.164 format (e.g. +15555555555). example: '+15555555555' transferTo: type: string description: >- The phone number used as the to field of the B-leg call, in E.164 format (e.g. +15555555555). example: '+15555555555' mediaUrl: nullable: true type: string format: uri description: >- The URL that can be used to download the recording. Only present if the recording is finished and may be downloaded. example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media callId: type: string description: The call id associated with the event. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 recordingName: type: string description: A name to identify this recording. example: my-recording-name callUrl: type: string format: uri description: The URL of the call associated with the event. example: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 parentCallId: type: string description: >- (optional) If the event is related to the B leg of a , the call id of the original call leg that executed the . Otherwise, this field will not be present. example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d tag1: type: string description: >- (optional) The tag specified on call creation. If no tag was specified or it was previously cleared, this field will not be present. example: exampleTag nullable: true cause: type: string description: >- Reason the call failed - hangup, busy, timeout, cancel, rejected, callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded, error, or unknown. example: busy errorMessage: type: string description: >- Text explaining the reason that caused the call to fail in case of errors. example: >- Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already bridged with another call nullable: true errorId: type: string description: Bandwidth's internal id that references the error event. example: 4642074b-7b58-478b-96e4-3a60955c6765 nullable: true machineDetectionResult: type: object description: >- (optional) if machine detection was requested in sync mode, the result will be specified here. Possible values are the same as the async counterpart: Machine Detection Complete properties: value: type: string description: >- Possible values are answering-machine, human, silence, timeout, or error. example: answering-machine duration: type: string description: The amount of time it took to determine the result. example: PT4.9891287S nullable: true diversion: type: object properties: reason: type: string description: >- The reason for the diversion. Common values: unknown, user-busy, no-answer, unavailable, unconditional, time-of-day, do-not-disturb, deflection, follow-me, out-of-service, away. example: unavailable privacy: type: string description: off or full example: 'off' screen: type: string description: >- No if the number was provided by the user, yes if the number was provided by the network example: 'no' counter: type: string description: The number of diversions that have occurred example: '2' limit: type: string description: The maximum number of diversions allowed for this session example: '3' unknown: type: string description: >- The normal list of values is not exhaustive. Your application must be tolerant of unlisted keys and unlisted values of those keys. example: unknownValue origTo: type: string description: >- Always present. Indicates the last telephone number that the call was diverted from. example: '+15558884444' transcription: type: object properties: text: type: string description: The transcribed text example: Nice talking to you, friend! confidence: type: number format: double description: >- The confidence on the recognized content, ranging from `0.0` to `1.0` with `1.0` being the highest confidence. example: 0.9 stirShaken: type: object properties: verstat: type: string description: >- (optional) The verification status indicating whether the verification was successful or not. Possible values are TN-Verification-Passed and TN-Verification-Failed. example: Tn-Verification-Passed attestationIndicator: type: string description: >- (optional) The attestation level verified by Bandwidth. Possible values are A (full), B (partial) or C (gateway). example: A originatingId: type: string description: (optional) A unique origination identifier. example: 99759086-1335-11ed-9bcf-5f7d464e91af codeRequest: type: object properties: to: type: string description: The phone number to send the mfa code to. pattern: ^\+[1-9]\d{1,14}$ example: '+19195551234' from: type: string description: The application phone number, the sender of the mfa code. pattern: ^\+[1-9]\d{1,14}$ maxLength: 32 example: '+19195554321' applicationId: type: string description: The application unique ID, obtained from Bandwidth. maxLength: 50 example: 66fd98ae-ac8d-a00f-7fcd-ba3280aeb9b1 scope: type: string description: >- An optional field to denote what scope or action the mfa code is addressing. If not supplied, defaults to "2FA". maxLength: 25 example: 2FA message: type: string description: >- The message format of the mfa code. There are three values that the system will replace "{CODE}", "{NAME}", "{SCOPE}". The "{SCOPE}" and "{NAME} value template are optional, while "{CODE}" must be supplied. As the name would suggest, code will be replace with the actual mfa code. Name is replaced with the application name, configured during provisioning of mfa. The scope value is the same value sent during the call and partitioned by the server. maxLength: 2048 example: Your temporary {NAME} {SCOPE} code is {CODE} digits: type: integer description: >- The number of digits for your mfa code. The valid number ranges from 2 to 8, inclusively. minimum: 4 maximum: 8 example: 6 required: - to - from - applicationId - message - digits voiceCodeResponse: type: object properties: callId: type: string description: Programmable Voice API Call ID. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 messagingCodeResponse: type: object properties: messageId: type: string description: Messaging API Message ID. example: 1589228074636lm4k2je7j7jklbn2 verifyCodeRequest: type: object properties: to: type: string description: The phone number to send the mfa code to. pattern: ^\+[1-9]\d{1,14}$ example: '+19195551234' scope: type: string description: >- An optional field to denote what scope or action the mfa code is addressing. If not supplied, defaults to "2FA". example: 2FA expirationTimeInMinutes: type: number description: >- The time period, in minutes, to validate the mfa code. By setting this to 3 minutes, it will mean any code generated within the last 3 minutes are still valid. The valid range for expiration time is between 0 and 15 minutes, exclusively and inclusively, respectively. minimum: 1 maximum: 15 example: 3 code: type: string description: The generated mfa code to check if valid. minLength: 4 maxLength: 8 example: '123456' required: - to - expirationTimeInMinutes - code verifyCodeResponse: type: object properties: valid: type: boolean description: Whether or not the supplied code is valid. example: true mfaRequestError: type: object properties: error: type: string description: A message describing the error with your request. example: 400 Request is malformed or invalid requestId: type: string description: The associated requestId from AWS. example: 354cc8a3-6701-461e-8fa7-8671703dd898 mfaUnauthorizedRequestError: type: object properties: message: type: string description: Unauthorized example: Unauthorized mfaForbiddenRequestError: type: object properties: message: type: string description: >- The message containing the reason behind the request being forbidden. example: Missing Authentication Token lookupStatusEnum: type: string description: >- The status of the request (IN_PROGRESS, COMPLETE, PARTIAL_COMPLETE, or FAILED). enum: - IN_PROGRESS - COMPLETE - PARTIAL_COMPLETE - FAILED example: COMPLETE lookupRequest: type: object description: Create phone number lookup request. properties: tns: type: array items: type: string required: - tns createLookupResponse: type: object description: >- The request has been accepted for processing but not yet finished and in a terminal state (COMPLETE, PARTIAL_COMPLETE, or FAILED). properties: requestId: type: string description: The phone number lookup request ID from Bandwidth. status: $ref: '#/components/schemas/lookupStatusEnum' lookupStatus: type: object description: >- If requestId exists, the result for that request is returned. See the Examples for details on the various responses that you can receive. Generally, if you see a Response Code of 0 in a result for a TN, information will be available for it. Any other Response Code will indicate no information was available for the TN. properties: requestId: type: string description: The requestId. example: 004223a0-8b17-41b1-bf81-20732adf5590 status: $ref: '#/components/schemas/lookupStatusEnum' result: type: array description: The carrier information results for the specified telephone number. items: $ref: '#/components/schemas/lookupResult' failedTelephoneNumbers: type: array description: The telephone numbers whose lookup failed. items: type: string example: - '+191955512345' lookupResult: type: object description: Carrier information results for the specified telephone number. properties: Response Code: type: integer description: Our vendor's response code. example: 0 Message: type: string description: Message associated with the response code. example: NOERROR E.164 Format: type: string description: The telephone number in E.164 format. example: '+19195551234' Formatted: type: string description: The formatted version of the telephone number. example: (919) 555-1234 Country: type: string description: The country of the telephone number. example: US Line Type: type: string description: The line type of the telephone number. example: Mobile Line Provider: type: string description: The messaging service provider of the telephone number. example: Verizon Wireless Mobile Country Code: type: string description: The first half of the Home Network Identity (HNI). example: '310' Mobile Network Code: type: string description: The second half of the HNI. example: '010' tnLookupRequestError: type: object properties: message: type: string description: A description of what validation error occurred. example: example error message responses: createMessageResponse: description: Accepted content: application/json: schema: $ref: '#/components/schemas/message' listMessagesResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/messagesList' getMediaResponse: description: OK content: application/octet-stream: schema: type: string description: Successful Operation format: binary listMediaResponse: description: OK headers: Continuation-Token: description: Continuation token used to retrieve subsequent media. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/media' messagingBadRequestError: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingNotAcceptableError: description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' createMessageBadRequestError: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/createMessageRequestError' messagingUnauthorizedError: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingForbiddenError: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingNotFoundError: description: Not Found content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingInvalidMediaTypeError: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingTooManyRequestsError: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' messagingInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/messagingRequestError' createCallResponse: description: Created headers: Location: description: The URL for further interactions with this call schema: type: string content: application/json: schema: $ref: '#/components/schemas/createCallResponse' examples: createCall Response: $ref: '#/components/examples/createCallResponseExample' getCallStateResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/callState' updateCallResponse: description: OK listCallsResponse: description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/callState' getStatisticsResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/accountStatistics' updateRecordingResponse: description: OK listCallRecordingsResponse: description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/callRecordingMetadata' getCallRecordingResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/callRecordingMetadata' downloadRecordingMediaResponse: description: OK content: audio/vnd.wave: schema: type: string format: binary audio/mpeg: schema: type: string format: binary getRecordingTranscriptionResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/recordingTranscriptions' listTranscriptionsResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/callTranscriptionMetadataList' getCallTranscriptionResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/callTranscriptionResponse' deleteCallTranscriptionResponse: description: No Content listConferencesResponse: description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/conference' examples: listConferences Response: $ref: '#/components/examples/listConferencesResponseExample' getConferenceResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/conference' getConferenceMemberResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/conferenceMember' listConferenceRecordingsResponse: description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/conferenceRecordingMetadata' getConferenceRecordingResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/conferenceRecordingMetadata' voiceBadRequestError: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: badRequestErrorExample: $ref: '#/components/examples/voiceBadRequestErrorExample' voiceUnauthorizedError: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: unauthorizedErrorExample: $ref: '#/components/examples/voiceUnauthorizedErrorExample' voiceForbiddenError: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: forbiddenErrorExample: $ref: '#/components/examples/voiceForbiddenErrorExample' voiceNotFoundError: description: Not Found content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: notFoundErrorExample: $ref: '#/components/examples/voiceNotFoundErrorExample' voiceNotAllowedError: description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: notAllowedErrorExample: $ref: '#/components/examples/voiceNotAllowedErrorExample' voiceConflictError: description: Conflict content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: conflictErrorExample: $ref: '#/components/examples/voiceConflictErrorExample' voiceUnsupportedMediaTypeError: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: tooManyRequestsErrorExample: $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample' voiceTooManyRequestsError: description: Too Many Requests headers: Retry-After: description: When you should try your request again. schema: type: string content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: tooManyRequestsErrorExample: $ref: '#/components/examples/voiceTooManyRequestsErrorExample' voiceInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/voiceApiError' examples: internalServerErrorExample: $ref: '#/components/examples/voiceInternalServerErrorExample' voiceCodeResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/voiceCodeResponse' messagingCodeResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/messagingCodeResponse' verifyCodeResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/verifyCodeResponse' mfaBadRequestError: description: Bad Request headers: {} content: application/json: schema: $ref: '#/components/schemas/mfaRequestError' mfaUnauthorizedError: description: Unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/mfaUnauthorizedRequestError' mfaForbiddenError: description: Forbidden headers: {} content: application/json: schema: $ref: '#/components/schemas/mfaForbiddenRequestError' mfaTooManyRequestsError: description: Too Many Requests headers: {} content: application/json: schema: $ref: '#/components/schemas/mfaRequestError' mfaInternalServerError: description: Internal Server Error headers: {} content: application/json: schema: $ref: '#/components/schemas/mfaRequestError' createLookupResponse: description: Accepted content: application/json: schema: $ref: '#/components/schemas/createLookupResponse' examples: lookupResponseExample: $ref: '#/components/examples/lookupInProgressExample' getLookupResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/lookupStatus' examples: lookupInProgressExample: $ref: '#/components/examples/lookupInProgressExample' lookupFailedExample: $ref: '#/components/examples/lookupFailedExample' lookupSingleNumberCompleteExample: $ref: '#/components/examples/lookupSingleNumberCompleteExample' lookupMultipleNumbersCompleteExample: $ref: '#/components/examples/lookupMultipleNumbersCompleteExample' lookupMultipleNumbersPartialCompleteExample: $ref: >- #/components/examples/lookupMultipleNumbersPartialCompleteExample lookupSingleNumberCompleteNoInfoExample: $ref: '#/components/examples/lookupSingleNumberCompleteNoInfoExample' tnLookupBadRequestError: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: badRequest: summary: Example Bad Request Error value: message: 'Some tns do not match e164 format: 1234' tnLookupUnauthorizedError: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: unauthorized: summary: Example Unauthorized Error value: message: Unauthorized tnLookupForbiddenError: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: forbidden: summary: Example Forbidden Error value: message: >- Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=Basic Y2tvZloPTGhHgywYIzGlcGVlcGvvcGovYTIGIt==' tnLookupMediaTypeError: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: mediaType: summary: Example Unsupported Media Type Error value: message: Content-Type must be application/json. tnLookupNotFoundError: description: Not Found tnLookupTooManyRequestsError: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: mediaType: summary: Example Too Many Requests Error value: message: Too many requests. tnLookupInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/tnLookupRequestError' examples: mediaType: summary: Example Internal Server Error Error value: message: Request has not been passed further. parameters: accountId: in: path name: accountId required: true schema: type: string description: Your Bandwidth Account ID. example: '9900000' mediaId: in: path name: mediaId required: true description: Media ID to retrieve. example: 14762070468292kw2fuqty55yp2b2/0/bw.png schema: type: string contentType: in: header name: Content-Type style: simple explode: false description: The media type of the entity-body. example: audio/wav schema: type: string cacheControl: in: header name: Cache-Control style: simple explode: false description: >- General-header field is used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain. example: no-cache schema: type: string continuationToken: in: header name: Continuation-Token description: Continuation token used to retrieve subsequent media. example: >- 1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39 schema: type: string messageId: in: query name: messageId required: false description: >- The ID of the message to search for. Special characters need to be encoded using URL encoding. Message IDs could come in different formats, e.g., 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6 and 1589228074636lm4k2je7j7jklbn2 are valid message ID formats. Note that you must include at least one query parameter. example: 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6 schema: type: string sourceTn: in: query name: sourceTn required: false description: >- The phone number that sent the message. Accepted values are: a single full phone number a comma separated list of full phone numbers (maximum of 10) or a single partial phone number (minimum of 5 characters e.g. '%2B1919'). example: '%2B15554443333' schema: type: string destinationTn: in: query name: destinationTn required: false description: >- The phone number that received the message. Accepted values are: a single full phone number a comma separated list of full phone numbers (maximum of 10) or a single partial phone number (minimum of 5 characters e.g. '%2B1919'). example: '%2B15554443333' schema: type: string messageStatus: in: query name: messageStatus required: false description: >- The status of the message. One of RECEIVED QUEUED SENDING SENT FAILED DELIVERED ACCEPTED UNDELIVERED. schema: $ref: '#/components/schemas/messageStatusEnum' messageDirection: in: query name: messageDirection required: false description: The direction of the message. One of INBOUND OUTBOUND. schema: $ref: '#/components/schemas/listMessageDirectionEnum' carrierName: in: query name: carrierName required: false description: >- The name of the carrier used for this message. Possible values include but are not limited to Verizon and TMobile. Special characters need to be encoded using URL encoding (i.e. AT&T should be passed as AT%26T). example: Verizon schema: type: string messageType: in: query name: messageType required: false description: The type of message. Either sms or mms. schema: $ref: '#/components/schemas/messageTypeEnum' errorCode: in: query name: errorCode required: false description: The error code of the message. example: 9902 schema: type: integer fromDateTime: in: query name: fromDateTime required: false description: >- The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. example: 2022-09-14T18:20:16.000Z schema: type: string toDateTime: in: query name: toDateTime required: false description: >- The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. example: 2022-09-14T18:20:16.000Z schema: type: string campaignId: in: query name: campaignId required: false description: The campaign ID of the message. example: CJEUMDK schema: type: string sort: in: query name: sort required: false description: >- The field and direction to sort by combined with a colon. Direction is either asc or desc. example: sourceTn:desc schema: type: string pageToken: in: query name: pageToken required: false description: A base64 encoded value used for pagination of results. example: gdEewhcJLQRB5 schema: type: string limit: in: query name: limit required: false description: >- The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. schema: type: integer example: 50 limitTotalCount: in: query name: limitTotalCount required: false description: >- When set to true, the response's totalCount field will have a maximum value of 10,000. When set to false, or excluded, this will give an accurate totalCount of all messages that match the provided filters. If you are experiencing latency, try using this parameter to limit your results. example: true schema: type: boolean callId: name: callId in: path required: true schema: type: string description: Programmable Voice API Call ID. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 recordingId: name: recordingId in: path required: true schema: type: string description: Programmable Voice API Recording ID. example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 conferenceId: name: conferenceId in: path required: true schema: type: string description: Programmable Voice API Conference ID. example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9 memberId: name: memberId in: path required: true schema: type: string description: Programmable Voice API Conference Member ID. example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 transcriptionId: name: transcriptionId in: path required: true schema: type: string description: Programmable Voice API Transcription ID. example: t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 to: name: to in: query required: false schema: type: string description: Filter results by the `to` field. example: '%2b19195551234' from: name: from in: query required: false schema: type: string description: Filter results by the `from` field. example: '%2b19195554321' name: name: name in: query required: false schema: type: string description: Filter results by the `name` field. example: my-custom-name minCreatedTime: name: minCreatedTime in: query required: false schema: type: string description: >- Filter results to conferences which have a `createdTime` after or at `minCreatedTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' maxCreatedTime: name: maxCreatedTime in: query required: false schema: type: string description: >- Filter results to conferences which have a `createdTime` before or at `maxCreatedTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' minStartTime: name: minStartTime in: query required: false schema: type: string description: >- Filter results to recordings which have a `startTime` after or including `minStartTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' maxStartTime: name: maxStartTime in: query required: false schema: type: string description: >- Filter results to recordings which have a `startTime` before `maxStartTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' pageSize: name: pageSize in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 1000 default: 1000 description: Specifies the max number of conferences that will be returned. example: 500 minStartTimeCalls: name: minStartTime in: query required: false schema: type: string description: >- Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' maxStartTimeCalls: name: maxStartTime in: query required: false schema: type: string description: >- Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format). example: '2022-06-21T19:13:21Z' pageSizeCalls: name: pageSize in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 10000 default: 1000 description: Specifies the max number of calls that will be returned. example: 500 pageToken1: name: pageToken in: query required: false schema: type: string description: >- Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. disconnectCause: name: disconnectCause in: query required: false schema: type: string description: Filter results to calls with specified call Disconnect Cause. example: hangup requestId: name: requestId in: path required: true schema: type: string description: The phone number lookup request ID from Bandwidth. example: 004223a0-8b17-41b1-bf81-20732adf5590 requestBodies: createMessageRequest: content: application/json: schema: $ref: '#/components/schemas/messageRequest' required: true uploadMediaRequest: content: application/json: schema: type: string format: binary application/ogg: schema: type: string format: binary application/pdf: schema: type: string format: binary application/rtf: schema: type: string format: binary application/zip: schema: type: string format: binary application/x-tar: schema: type: string format: binary application/xml: schema: type: string format: binary application/gzip: schema: type: string format: binary application/x-bzip2: schema: type: string format: binary application/x-gzip: schema: type: string format: binary application/smil: schema: type: string format: binary application/javascript: schema: type: string format: binary audio/mp4: schema: type: string format: binary audio/mpeg: schema: type: string format: binary audio/ogg: schema: type: string format: binary audio/flac: schema: type: string format: binary audio/webm: schema: type: string format: binary audio/wav: schema: type: string format: binary audio/amr: schema: type: string format: binary audio/3gpp: schema: type: string format: binary image/bmp: schema: type: string format: binary image/gif: schema: type: string format: binary image/jpeg: schema: type: string format: binary image/pjpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/svg+xml: schema: type: string format: binary image/tiff: schema: type: string format: binary image/webp: schema: type: string format: binary image/x-icon: schema: type: string format: binary text/css: schema: type: string format: binary text/csv: schema: type: string format: binary text/calendar: schema: type: string format: binary text/plain: schema: type: string format: binary text/javascript: schema: type: string format: binary text/vcard: schema: type: string format: binary text/vnd.wap.wml: schema: type: string format: binary text/xml: schema: type: string format: binary video/avi: schema: type: string format: binary video/mp4: schema: type: string format: binary video/mpeg: schema: type: string format: binary video/ogg: schema: type: string format: binary video/quicktime: schema: type: string format: binary video/webm: schema: type: string format: binary video/x-ms-wmv: schema: type: string format: binary required: true createCallRequest: description: JSON object containing information to create an outbound call required: true content: application/json: schema: $ref: '#/components/schemas/createCall' updateCallRequest: description: >- JSON object containing information to redirect an existing call to a new BXML document required: true content: application/json: schema: $ref: '#/components/schemas/updateCall' updateCallBxmlRequest: required: true content: application/xml: schema: type: string description: A valid BXML document to replace the call's current BXML. examples: speakSentence: summary: Speak Sentence value: |- This is a test sentence. redirectUrl: summary: Redirect value: |- updateCallRecordingRequest: required: true content: application/json: schema: $ref: '#/components/schemas/updateCallRecording' transcribeRecordingRequest: required: true content: application/json: schema: $ref: '#/components/schemas/transcribeRecording' updateConferenceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/updateConference' updateConferenceBxmlRequest: required: true content: application/xml: schema: type: string description: A valid BXML document to replace the call's current BXML. examples: stopRecording: summary: Stop Recording value: |- updateConferenceMemberRequest: required: true content: application/json: schema: $ref: '#/components/schemas/updateConferenceMember' codeRequest: description: MFA code request body. required: true content: application/json: schema: $ref: '#/components/schemas/codeRequest' codeVerify: description: MFA code verify request body. required: true content: application/json: schema: $ref: '#/components/schemas/verifyCodeRequest' createLookupRequest: description: Phone number lookup request. required: true content: application/json: schema: $ref: '#/components/schemas/lookupRequest' examples: singleNumberRequestExample: $ref: '#/components/examples/singleNumberRequestExample' multipleNumberRequestExample: $ref: '#/components/examples/multipleNumberRequestExample' securitySchemes: Basic: type: http scheme: basic description: >- Basic authentication is a simple authentication scheme built into the HTTP protocol. To use it, send your HTTP requests with an `Authorization` header that contains the word `Basic` followed by a space and a Base64-encoded string `username:password`. - Example: `Authorization: Basic ZGVtbZpwQDU1dzByZA==` callbacks: inboundCallback: '{inboundCallbackUrl}': post: requestBody: required: true description: Inbound Message Callback Payload content: application/json: schema: $ref: '#/components/schemas/inboundMessageCallback' responses: '200': description: OK statusCallback: '{statusCallbackUrl}': post: requestBody: required: true description: Status Callback Payload content: application/json: schema: type: object oneOf: - $ref: '#/components/schemas/messageSendingCallback' - $ref: '#/components/schemas/messageDeliveredCallback' - $ref: '#/components/schemas/messageFailedCallback' responses: '200': description: OK examples: createCallResponseExample: summary: Example of a createCall Response value: applicationId: 04e88489-df02-4e34-a0ee-27a91849555f accountId: '9900000' callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 to: '+19195551234' from: '+19195554312' enqueuedTime: '2022-06-16T13:15:07.160Z' callUrl: >- https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85 callTimeout: 30 callbackTimeout: 15 tag: My custom tag value answerMethod: POST answerUrl: https://myServer.example/bandwidth/webhooks/answer answerFallbackMethod: POST answerFallbackUrl: https://myServer.example/bandwidth/webhooks/answerFallback disconnectMethod: POST disconnectUrl: https://myServer.example/bandwidth/webhooks/disconnect username: mySecretUsername password: '*****' fallbackUsername: mySecretUsername fallbackPassword: '*****' priority: 5 listConferencesResponseExample: summary: Example of a listConferences Response value: - id: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9 name: my-conference-name createdTime: '2022-06-17T22:19:40.375Z' completedTime: '2022-06-17T22:20:00.000Z' conferenceEventUrl: https://myServer.example/bandwidth/webhooks/conferenceEvent conferenceEventMethod: POST tag: my custom tag voiceBadRequestErrorExample: summary: Example of a Bad Request (400) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceUnauthorizedErrorExample: summary: Example of an Unauthorized (401) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceForbiddenErrorExample: summary: Example of a Forbidden (403) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceNotFoundErrorExample: summary: Example of a Not Found (404) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceNotAllowedErrorExample: summary: Example of a Not Allowed (405) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceConflictErrorExample: summary: Example of a Conflict (409) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceUnsupportedMediaTypeErrorExample: summary: Example of an Unsupported Media Type (415) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceTooManyRequestsErrorExample: summary: Example of a Too Many Requests (429) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' voiceInternalServerErrorExample: summary: Example of an Internal Server (500) Error value: type: validation description: 'Invalid answerUrl: only http and https are allowed.' singleNumberRequestExample: summary: Example Number Lookup Request for One Number value: tns: - '+19195551234' multipleNumberRequestExample: summary: Example Number Lookup Request for Multiple Numbers value: tns: - '+19195551234' - '+19195554321' lookupInProgressExample: summary: Example Lookup In Progress Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: IN_PROGRESS lookupFailedExample: summary: Example Lookup Failed Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: FAILED failedTelephoneNumbers: - '+191955512345' lookupSingleNumberCompleteExample: summary: Example Single Number Lookup Complete Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: COMPLETE result: - Response Code: 0 Message: NOERROR E.164 Format: '+19195551234' Formatted: (919) 555-1234 Country: US Line Type: Mobile Line Provider: Verizon Wireless Mobile Country Code: '310' Mobile Network Code: '010' lookupMultipleNumbersCompleteExample: summary: Example Multiple Numbers Lookup Complete Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: COMPLETE result: - Response Code: 0 Message: NOERROR E.164 Format: '+19195551234' Formatted: (919) 555-1234 Country: US Line Type: Mobile Line Provider: Verizon Wireless Mobile Country Code: '310' Mobile Network Code: '010' - Response Code: 0 Message: NOERROR E.164 Format: '+19195554321' Formatted: (919) 555-4321 Country: US Line Type: Mobile Line Provider: T-Mobile USA Mobile Country Code: '310' Mobile Network Code: '160' lookupMultipleNumbersPartialCompleteExample: summary: Example Multiple Numbers Lookup Partial Complete Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: PARTIAL_COMPLETE result: - Response Code: 0 Message: NOERROR E.164 Format: '+19195551234' Formatted: (919) 555-1234 Country: US Line Type: Mobile Line Provider: Verizon Wireless Mobile Country Code: '310' Mobile Network Code: '010' failedTelephoneNumbers: - '+191955512345' lookupSingleNumberCompleteNoInfoExample: summary: Example Single Number Lookup Complete with No Information Response value: requestId: 004223a0-8b17-41b1-bf81-20732adf5590 status: COMPLETE result: - Response Code: 3 Message: NXDOMAIN E.164 Format: '+19195550000' Formatted: (919) 555-0000 Country: US