diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml
deleted file mode 100644
index 2e22c520..00000000
--- a/.github/workflows/test-nightly.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-name: Test Main and Feature Branch Nightly
-on:
- schedule:
- - cron: "0 4 * * *"
-
-env:
- BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
- BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
- BW_USERNAME: ${{ secrets.BW_USERNAME }}
- BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
- BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
- BW_NUMBER: ${{ secrets.BW_NUMBER }}
- USER_NUMBER: ${{ secrets.USER_NUMBER }}
- BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
- BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
- BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
- MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
- MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
- MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
- MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
- ATT_NUMBER: ${{ secrets.ATT_NUMBER }}
- T_MOBILE_NUMBER: ${{ secrets.T_MOBILE_NUMBER }}
- VZW_NUMBER: ${{ secrets.VZW_NUMBER }}
-
-jobs:
- test_main:
- name: Test Main Branch Nightly
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-2022, windows-2019, ubuntu-20.04, ubuntu-22.04]
- java-version: ['8', '11']
- distribution: ['zulu', 'temurin']
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- ref: 'main'
-
- - name: Set up JDK
- uses: actions/setup-java@v3
- with:
- distribution: ${{ matrix.distribution }}
- java-version: ${{ matrix.java-version }}
-
- - name: Test
- run: mvn -B package --file pom.xml
-
- test_feature:
- name: Test Feature Branch Nightly
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-2022, windows-2019, ubuntu-20.04, ubuntu-22.04]
- java-version: ["11", "17", "19"]
- distribution: ["zulu", "temurin"]
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- ref: 'feature/openapi-generator-sdk'
-
- - name: Set up JDK
- uses: actions/setup-java@v3
- with:
- distribution: ${{ matrix.distribution }}
- java-version: ${{ matrix.java-version }}
-
- - name: Test
- env:
- JAVA_VERSION: ${{ matrix.java-version }}
- RUNNER_OS: ${{ matrix.os }}
- OPERATING_SYSTEM: ${{ matrix.os }}
- DISTRIBUTION: ${{ matrix.distribution }}
- run: mvn -B package --file pom.xml
-
- notify_for_failures:
- name: Notify for Failures
- needs: [test_main, test_feature]
- if: failure()
- runs-on: ubuntu-latest
- steps:
- - name: Notify Slack of Failures
- uses: Bandwidth/build-notify-slack-action@v1.0.0
- with:
- job-status: failure
- slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
- slack-channel: ${{ secrets.SLACK_CHANNEL }}
diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml
deleted file mode 100644
index ce3d6b5b..00000000
--- a/.github/workflows/test-pr.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-name: Test PR
-on:
- pull_request:
-
-env:
- BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
- BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
- BW_USERNAME: ${{ secrets.BW_USERNAME }}
- BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
- BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
- BW_NUMBER: ${{ secrets.BW_NUMBER }}
- USER_NUMBER: ${{ secrets.USER_NUMBER }}
- BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
- BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
- BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
- MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
- MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
- MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
- MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
- ATT_NUMBER: ${{ secrets.ATT_NUMBER }}
- T_MOBILE_NUMBER: ${{ secrets.T_MOBILE_NUMBER }}
- VZW_NUMBER: ${{ secrets.VZW_NUMBER }}
-
-jobs:
- test_pr_main:
- name: Test PR to Main Branch
- runs-on: ${{ matrix.os }}
- if: github.base_ref == 'main'
- strategy:
- matrix:
- os: [windows-2022, windows-2019, ubuntu-20.04, ubuntu-22.04]
- java-version: ['8', '11']
- distribution: ['zulu', 'temurin']
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Set up JDK
- uses: actions/setup-java@v3
- with:
- distribution: ${{ matrix.distribution }}
- java-version: ${{ matrix.java-version }}
-
- - name: Test
- run: mvn -B package --file pom.xml
-
- test_feature:
- name: Test PR to Feature Branch
- runs-on: ${{ matrix.os }}
- if: github.base_ref == 'feature/openapi-generator-sdk'
- strategy:
- matrix:
- os: [windows-2022, windows-2019, ubuntu-20.04, ubuntu-22.04]
- java-version: ["11", "17", "19"]
- distribution: ["zulu", "temurin"]
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Set up JDK
- uses: actions/setup-java@v3
- with:
- distribution: ${{ matrix.distribution }}
- java-version: ${{ matrix.java-version }}
-
- - name: Test
- env:
- JAVA_VERSION: ${{ matrix.java-version }}
- RUNNER_OS: ${{ matrix.os }}
- OPERATING_SYSTEM: ${{ matrix.os }}
- DISTRIBUTION: ${{ matrix.distribution }}
- run: mvn -B package --file pom.xml
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000..106096aa
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,61 @@
+name: Test
+on:
+ # schedule:
+ # - cron: "0 4 * * *"
+ pull_request:
+ branches:
+ - main
+ - feature/*
+ workflow_dispatch:
+
+jobs:
+ test:
+ name: Test
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [windows-2022, windows-2019, ubuntu-20.04, ubuntu-22.04]
+ java-version: ["11", "17", "19"]
+ distribution: ["zulu", "temurin"]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Set up JDK
+ uses: actions/setup-java@v3
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version: ${{ matrix.java-version }}
+
+ - name: Test
+ env:
+ BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
+ BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
+ BW_USERNAME: ${{ secrets.BW_USERNAME }}
+ BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
+ BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
+ BW_NUMBER: ${{ secrets.BW_NUMBER }}
+ USER_NUMBER: ${{ secrets.USER_NUMBER }}
+ BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
+ JAVA_VERSION: ${{ matrix.java-version }}
+ RUNNER_OS: ${{ matrix.os }}
+ BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
+ BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
+ MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
+ MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
+ MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
+ MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
+ OPERATING_SYSTEM: ${{ matrix.os }}
+ DISTRIBUTION: ${{ matrix.distribution }}
+ ATT_NUMBER: ${{ secrets.ATT_NUMBER }}
+ T_MOBILE_NUMBER: ${{ secrets.T_MOBILE_NUMBER }}
+ VZW_NUMBER: ${{ secrets.VZW_NUMBER }}
+ run: mvn -B package --file pom.xml
+
+ - name: Notify Slack of Failures
+ uses: Bandwidth/build-notify-slack-action@v1.0.1
+ if: failure() && !github.event.pull_request.draft
+ with:
+ job-status: ${{ job.status }}
+ slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
+ slack-channel: ${{ secrets.SLACK_CHANNEL }}
diff --git a/.github/workflows/update-sdk.yml b/.github/workflows/update-sdk.yml
new file mode 100644
index 00000000..8bb23e4e
--- /dev/null
+++ b/.github/workflows/update-sdk.yml
@@ -0,0 +1,102 @@
+name: Update SDK
+
+on:
+ schedule:
+ - cron: "0 14 * * 2"
+ workflow_dispatch:
+
+jobs:
+ update-sdk:
+ name: Update SDK if Necessary
+ runs-on: ubuntu-latest
+ outputs:
+ generate: ${{ steps.compare.outputs.generate }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Combine Product Specs
+ uses: Bandwidth/api-specs-combine-action@v1.0.0
+ with:
+ token: ${{ secrets.DX_GITHUB_TOKEN }}
+
+ - name: Determine if a New SDK is Needed
+ id: compare
+ run: |
+ if cmp -s "bandwidth.yml" "api-specs/bandwidth.yml"; then :; else mv -f api-specs/bandwidth.yml bandwidth.yml; rm -r -f api-specs; echo "generate=true" >> $GITHUB_OUTPUT; fi
+
+ - name: Create JIRA Card for SDK Update
+ if: ${{ steps.compare.outputs.generate == 'true' }}
+ id: jira
+ run: |
+ JIRA_KEY=$(jq -r '.key' <<< $(curl -s -u $JIRA_USERNAME:$JIRA_TOKEN \
+ -X POST https://bandwidth-jira.atlassian.net/rest/api/2/issue \
+ -H "Content-Type: application/json" \
+ --data-binary @- << EOF
+ {
+ "fields": {
+ "project": {
+ "key": "SWI"
+ },
+ "summary": "[$LANGUAGE] Update SDK for New Spec Version",
+ "description": "Prepare the $LANGUAGE SDK for release based on the latest spec changes.",
+ "issuetype": {
+ "name": "Story"
+ },
+ "customfield_12108": "$LANGUAGE SDK is ready for release. Tests are created/updated if need be.",
+ "customfield_10205": "$EPIC",
+ "components": [{
+ "name": "Client SDKs"
+ }]
+ }
+ }
+ EOF
+ ))
+ echo "jira-key=$JIRA_KEY" >> $GITHUB_OUTPUT
+ env:
+ LANGUAGE: Java
+ EPIC: SWI-1876
+ JIRA_USERNAME: ${{ secrets.JIRA_USERNAME }}
+ JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
+
+ - name: Build SDK
+ id: build
+ if: ${{ startsWith(steps.jira.outputs.jira-key, 'SWI') }}
+ uses: Bandwidth/generate-sdk-action@v3.0.0
+ with:
+ branch-name: ${{ steps.jira.outputs.jira-key }}
+ token: ${{ secrets.DX_GITHUB_TOKEN }}
+ openapi-generator-version: 7.0.0
+ language: java
+ config: ./openapi-config.yml
+
+ - name: Setup Java
+ if: steps.build.outputs.changes
+ uses: actions/setup-java@v3
+ with:
+ java-version: 17
+
+ - name: Clean SDK
+ if: steps.build.outputs.changes
+ run: |
+ mvn clean
+
+ - name: Open Pull Request
+ if: steps.build.outputs.changes
+ run: |
+ gh pr create -B main -H Bandwidth:${{ steps.jira.outputs.jira-key }} -t '${{ steps.jira.outputs.jira-key }} Update SDK Based on Recent Spec Changes' -b 'Auto-generated by Update SDK Workflow'
+ env:
+ GITHUB_TOKEN: ${{ secrets.DX_GITHUB_TOKEN }}
+
+ notify_for_failures:
+ name: Notify for Failures
+ needs: [update-sdk]
+ if: failure()
+ runs-on: ubuntu-latest
+ steps:
+ - name: Notify Slack of Failures
+ uses: Bandwidth/build-notify-slack-action@v1.0.0
+ with:
+ job-status: failure
+ slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
+ slack-channel: ${{ secrets.SLACK_CHANNEL }}
diff --git a/.gitignore b/.gitignore
index fdc641b1..a0826267 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,24 @@
-#macOS system files
-.DS_Store
+*.class
-#IntelliJ IDE files
-.idea
-target
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
-#Eclipse IDE files
-.classpath
-.project
+# Package Files #
+*.jar
+*.war
+*.ear
-*.iml
-*.class
+# exclude jar for gradle wrapper
+!gradle/wrapper/*.jar
-tempsettings.xml
-*.bin
-*.lock
-*.properties
-*.prefs
-.vscode/settings.json
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+# build files
+**/target
+target
+.gradle
+build
+
+.DS_Store
+.idea
diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore
new file mode 100644
index 00000000..39f9dba2
--- /dev/null
+++ b/.openapi-generator-ignore
@@ -0,0 +1,28 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+pom.xml
+.idea
+.gitignore
+.github/workflows/maven.yml
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
new file mode 100644
index 00000000..1bb1699e
--- /dev/null
+++ b/.openapi-generator/FILES
@@ -0,0 +1,225 @@
+.github/workflows/maven.yml
+.gitignore
+.travis.yml
+README.md
+api/openapi.yaml
+build.gradle
+build.sbt
+docs/AccountStatistics.md
+docs/AnswerCallback.md
+docs/BridgeCompleteCallback.md
+docs/BridgeTargetCompleteCallback.md
+docs/CallDirectionEnum.md
+docs/CallRecordingMetadata.md
+docs/CallState.md
+docs/CallStateEnum.md
+docs/CallbackMethodEnum.md
+docs/CallsApi.md
+docs/CodeRequest.md
+docs/Conference.md
+docs/ConferenceCompletedCallback.md
+docs/ConferenceCreatedCallback.md
+docs/ConferenceMember.md
+docs/ConferenceMemberExitCallback.md
+docs/ConferenceMemberJoinCallback.md
+docs/ConferenceRecordingAvailableCallback.md
+docs/ConferenceRecordingMetadata.md
+docs/ConferenceRedirectCallback.md
+docs/ConferenceStateEnum.md
+docs/ConferencesApi.md
+docs/CreateCall.md
+docs/CreateCallResponse.md
+docs/CreateLookupResponse.md
+docs/CreateMessageRequestError.md
+docs/DeferredResult.md
+docs/DisconnectCallback.md
+docs/Diversion.md
+docs/DtmfCallback.md
+docs/FieldError.md
+docs/FileFormatEnum.md
+docs/GatherCallback.md
+docs/InboundMessageCallback.md
+docs/InboundMessageCallbackMessage.md
+docs/InitiateCallback.md
+docs/ListMessageDirectionEnum.md
+docs/ListMessageItem.md
+docs/LookupRequest.md
+docs/LookupResult.md
+docs/LookupStatus.md
+docs/LookupStatusEnum.md
+docs/MachineDetectionCompleteCallback.md
+docs/MachineDetectionConfiguration.md
+docs/MachineDetectionModeEnum.md
+docs/MachineDetectionResult.md
+docs/Media.md
+docs/MediaApi.md
+docs/Message.md
+docs/MessageDeliveredCallback.md
+docs/MessageDeliveredCallbackMessage.md
+docs/MessageDirectionEnum.md
+docs/MessageFailedCallback.md
+docs/MessageFailedCallbackMessage.md
+docs/MessageRequest.md
+docs/MessageSendingCallback.md
+docs/MessageSendingCallbackMessage.md
+docs/MessageStatusEnum.md
+docs/MessageTypeEnum.md
+docs/MessagesApi.md
+docs/MessagesList.md
+docs/MessagingCodeResponse.md
+docs/MessagingRequestError.md
+docs/MfaApi.md
+docs/MfaForbiddenRequestError.md
+docs/MfaRequestError.md
+docs/MfaUnauthorizedRequestError.md
+docs/PageInfo.md
+docs/PhoneNumberLookupApi.md
+docs/PriorityEnum.md
+docs/RecordingAvailableCallback.md
+docs/RecordingCompleteCallback.md
+docs/RecordingStateEnum.md
+docs/RecordingsApi.md
+docs/RedirectCallback.md
+docs/RedirectMethodEnum.md
+docs/StatisticsApi.md
+docs/StirShaken.md
+docs/Tag.md
+docs/TnLookupRequestError.md
+docs/TranscribeRecording.md
+docs/Transcription.md
+docs/TranscriptionAvailableCallback.md
+docs/TranscriptionList.md
+docs/TranscriptionMetadata.md
+docs/TransferAnswerCallback.md
+docs/TransferCompleteCallback.md
+docs/TransferDisconnectCallback.md
+docs/UpdateCall.md
+docs/UpdateCallRecording.md
+docs/UpdateConference.md
+docs/UpdateConferenceMember.md
+docs/VerifyCodeRequest.md
+docs/VerifyCodeResponse.md
+docs/VoiceApiError.md
+docs/VoiceCodeResponse.md
+git_push.sh
+gradle.properties
+gradle/wrapper/gradle-wrapper.jar
+gradle/wrapper/gradle-wrapper.properties
+gradlew
+gradlew.bat
+settings.gradle
+src/main/AndroidManifest.xml
+src/main/java/com/bandwidth/sdk/ApiCallback.java
+src/main/java/com/bandwidth/sdk/ApiClient.java
+src/main/java/com/bandwidth/sdk/ApiException.java
+src/main/java/com/bandwidth/sdk/ApiResponse.java
+src/main/java/com/bandwidth/sdk/Configuration.java
+src/main/java/com/bandwidth/sdk/GzipRequestInterceptor.java
+src/main/java/com/bandwidth/sdk/JSON.java
+src/main/java/com/bandwidth/sdk/Pair.java
+src/main/java/com/bandwidth/sdk/ProgressRequestBody.java
+src/main/java/com/bandwidth/sdk/ProgressResponseBody.java
+src/main/java/com/bandwidth/sdk/ServerConfiguration.java
+src/main/java/com/bandwidth/sdk/ServerVariable.java
+src/main/java/com/bandwidth/sdk/StringUtil.java
+src/main/java/com/bandwidth/sdk/api/CallsApi.java
+src/main/java/com/bandwidth/sdk/api/ConferencesApi.java
+src/main/java/com/bandwidth/sdk/api/MediaApi.java
+src/main/java/com/bandwidth/sdk/api/MessagesApi.java
+src/main/java/com/bandwidth/sdk/api/MfaApi.java
+src/main/java/com/bandwidth/sdk/api/PhoneNumberLookupApi.java
+src/main/java/com/bandwidth/sdk/api/RecordingsApi.java
+src/main/java/com/bandwidth/sdk/api/StatisticsApi.java
+src/main/java/com/bandwidth/sdk/auth/ApiKeyAuth.java
+src/main/java/com/bandwidth/sdk/auth/Authentication.java
+src/main/java/com/bandwidth/sdk/auth/HttpBasicAuth.java
+src/main/java/com/bandwidth/sdk/auth/HttpBearerAuth.java
+src/main/java/com/bandwidth/sdk/model/AbstractOpenApiSchema.java
+src/main/java/com/bandwidth/sdk/model/AccountStatistics.java
+src/main/java/com/bandwidth/sdk/model/AnswerCallback.java
+src/main/java/com/bandwidth/sdk/model/BridgeCompleteCallback.java
+src/main/java/com/bandwidth/sdk/model/BridgeTargetCompleteCallback.java
+src/main/java/com/bandwidth/sdk/model/CallDirectionEnum.java
+src/main/java/com/bandwidth/sdk/model/CallRecordingMetadata.java
+src/main/java/com/bandwidth/sdk/model/CallState.java
+src/main/java/com/bandwidth/sdk/model/CallStateEnum.java
+src/main/java/com/bandwidth/sdk/model/CallbackMethodEnum.java
+src/main/java/com/bandwidth/sdk/model/CodeRequest.java
+src/main/java/com/bandwidth/sdk/model/Conference.java
+src/main/java/com/bandwidth/sdk/model/ConferenceCompletedCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceCreatedCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceMember.java
+src/main/java/com/bandwidth/sdk/model/ConferenceMemberExitCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceMemberJoinCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceRecordingAvailableCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceRecordingMetadata.java
+src/main/java/com/bandwidth/sdk/model/ConferenceRedirectCallback.java
+src/main/java/com/bandwidth/sdk/model/ConferenceStateEnum.java
+src/main/java/com/bandwidth/sdk/model/CreateCall.java
+src/main/java/com/bandwidth/sdk/model/CreateCallResponse.java
+src/main/java/com/bandwidth/sdk/model/CreateLookupResponse.java
+src/main/java/com/bandwidth/sdk/model/CreateMessageRequestError.java
+src/main/java/com/bandwidth/sdk/model/DeferredResult.java
+src/main/java/com/bandwidth/sdk/model/DisconnectCallback.java
+src/main/java/com/bandwidth/sdk/model/Diversion.java
+src/main/java/com/bandwidth/sdk/model/DtmfCallback.java
+src/main/java/com/bandwidth/sdk/model/FieldError.java
+src/main/java/com/bandwidth/sdk/model/FileFormatEnum.java
+src/main/java/com/bandwidth/sdk/model/GatherCallback.java
+src/main/java/com/bandwidth/sdk/model/InboundMessageCallback.java
+src/main/java/com/bandwidth/sdk/model/InboundMessageCallbackMessage.java
+src/main/java/com/bandwidth/sdk/model/InitiateCallback.java
+src/main/java/com/bandwidth/sdk/model/ListMessageDirectionEnum.java
+src/main/java/com/bandwidth/sdk/model/ListMessageItem.java
+src/main/java/com/bandwidth/sdk/model/LookupRequest.java
+src/main/java/com/bandwidth/sdk/model/LookupResult.java
+src/main/java/com/bandwidth/sdk/model/LookupStatus.java
+src/main/java/com/bandwidth/sdk/model/LookupStatusEnum.java
+src/main/java/com/bandwidth/sdk/model/MachineDetectionCompleteCallback.java
+src/main/java/com/bandwidth/sdk/model/MachineDetectionConfiguration.java
+src/main/java/com/bandwidth/sdk/model/MachineDetectionModeEnum.java
+src/main/java/com/bandwidth/sdk/model/MachineDetectionResult.java
+src/main/java/com/bandwidth/sdk/model/Media.java
+src/main/java/com/bandwidth/sdk/model/Message.java
+src/main/java/com/bandwidth/sdk/model/MessageDeliveredCallback.java
+src/main/java/com/bandwidth/sdk/model/MessageDeliveredCallbackMessage.java
+src/main/java/com/bandwidth/sdk/model/MessageDirectionEnum.java
+src/main/java/com/bandwidth/sdk/model/MessageFailedCallback.java
+src/main/java/com/bandwidth/sdk/model/MessageFailedCallbackMessage.java
+src/main/java/com/bandwidth/sdk/model/MessageRequest.java
+src/main/java/com/bandwidth/sdk/model/MessageSendingCallback.java
+src/main/java/com/bandwidth/sdk/model/MessageSendingCallbackMessage.java
+src/main/java/com/bandwidth/sdk/model/MessageStatusEnum.java
+src/main/java/com/bandwidth/sdk/model/MessageTypeEnum.java
+src/main/java/com/bandwidth/sdk/model/MessagesList.java
+src/main/java/com/bandwidth/sdk/model/MessagingCodeResponse.java
+src/main/java/com/bandwidth/sdk/model/MessagingRequestError.java
+src/main/java/com/bandwidth/sdk/model/MfaForbiddenRequestError.java
+src/main/java/com/bandwidth/sdk/model/MfaRequestError.java
+src/main/java/com/bandwidth/sdk/model/MfaUnauthorizedRequestError.java
+src/main/java/com/bandwidth/sdk/model/PageInfo.java
+src/main/java/com/bandwidth/sdk/model/PriorityEnum.java
+src/main/java/com/bandwidth/sdk/model/RecordingAvailableCallback.java
+src/main/java/com/bandwidth/sdk/model/RecordingCompleteCallback.java
+src/main/java/com/bandwidth/sdk/model/RecordingStateEnum.java
+src/main/java/com/bandwidth/sdk/model/RedirectCallback.java
+src/main/java/com/bandwidth/sdk/model/RedirectMethodEnum.java
+src/main/java/com/bandwidth/sdk/model/StirShaken.java
+src/main/java/com/bandwidth/sdk/model/Tag.java
+src/main/java/com/bandwidth/sdk/model/TnLookupRequestError.java
+src/main/java/com/bandwidth/sdk/model/TranscribeRecording.java
+src/main/java/com/bandwidth/sdk/model/Transcription.java
+src/main/java/com/bandwidth/sdk/model/TranscriptionAvailableCallback.java
+src/main/java/com/bandwidth/sdk/model/TranscriptionList.java
+src/main/java/com/bandwidth/sdk/model/TranscriptionMetadata.java
+src/main/java/com/bandwidth/sdk/model/TransferAnswerCallback.java
+src/main/java/com/bandwidth/sdk/model/TransferCompleteCallback.java
+src/main/java/com/bandwidth/sdk/model/TransferDisconnectCallback.java
+src/main/java/com/bandwidth/sdk/model/UpdateCall.java
+src/main/java/com/bandwidth/sdk/model/UpdateCallRecording.java
+src/main/java/com/bandwidth/sdk/model/UpdateConference.java
+src/main/java/com/bandwidth/sdk/model/UpdateConferenceMember.java
+src/main/java/com/bandwidth/sdk/model/VerifyCodeRequest.java
+src/main/java/com/bandwidth/sdk/model/VerifyCodeResponse.java
+src/main/java/com/bandwidth/sdk/model/VoiceApiError.java
+src/main/java/com/bandwidth/sdk/model/VoiceCodeResponse.java
diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION
new file mode 100644
index 00000000..41225218
--- /dev/null
+++ b/.openapi-generator/VERSION
@@ -0,0 +1 @@
+7.0.0
\ No newline at end of file
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 95e6598f..718da910 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,576 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+enableParallelJavaIndexSearch=true
+org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.camelCaseMatch=enabled
+org.eclipse.jdt.core.codeComplete.deprecationCheck=disabled
+org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck=disabled
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck=enabled
+org.eclipse.jdt.core.codeComplete.forceImplicitQualification=disabled
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.subwordMatch=disabled
+org.eclipse.jdt.core.codeComplete.suggestStaticImports=enabled
+org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.lambda.genericSignature=do not generate
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.shareCommonFinallyBlocks=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.emulateJavacBug8031744=enabled
+org.eclipse.jdt.core.compiler.generateClassFiles=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement=disabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.5
\ No newline at end of file
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.tasks=warning
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.uninternedIdentityComparison=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.processAnnotations=enabled
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
+org.eclipse.jdt.core.compiler.storeAnnotations=disabled
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.computeJavaBuildOrder=ignore
+org.eclipse.jdt.core.encoding=utf8
+org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line=true
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
+org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=0
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=49
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assertion_message=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_arrow=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon=16
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_record_components=16
+org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow=20
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_type_annotations=0
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
+org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.text_block_indentation=0
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
+org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator=false
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
+org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc=50
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..1b6741c0
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,22 @@
+#
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
+#
+language: java
+jdk:
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
+before_install:
+ # ensure gradlew has proper permission
+ - chmod a+x ./gradlew
+script:
+ # test using maven
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
+ # - sbt test
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..7721ac5a
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "java.configuration.updateBuildConfiguration": "automatic",
+ "java.compile.nullAnalysis.mode": "automatic"
+}
diff --git a/README.md b/README.md
index da53ceb3..35d2d99a 100644
--- a/README.md
+++ b/README.md
@@ -1,177 +1,272 @@
-# Bandwidth Java SDK
-
-[](https://github.com/Bandwidth/java-sdk/actions/workflows/test.yml)
-
-| **OS** | **Java** | **Distribution** |
-|:---:|:---:|:---:|
-| Windows 2016 | 8, 11 | Zulu OpenJDK, Eclipse Temurin |
-| Windows 2019 | 8, 11 | Zulu OpenJDK, Eclipse Temurin |
-| Ubuntu 20.04 | 8, 11 | Zulu OpenJDK, Eclipse Temurin |
-| Ubuntu 22.04 | 8, 11 | Zulu OpenJDK, Eclipse Temurin |
-## Getting Started
-
-### Installation
-
-Add the following dependency to your `pom.xml` file
-
-```xml
-
-
-
- com.bandwidth.sdk
- bandwidth-sdk
- {version}
-
-
-```
-
-### Initialize
-
-```java
-
-BandwidthClient client = new BandwidthClient.Builder()
- .messagingBasicAuthCredentials("username", "password")
- .voiceBasicAuthCredentials("username", "password")
- .twoFactorAuthBasicAuthCredentials("username", "password")
- .webRtcBasicAuthCredentials("username", "password")
- .build();
-String accountId = "12345";
-
-```
-
-### Create A Phone Call
-
-```java
-
-com.bandwidth.voice.controllers.APIController voiceController = client.getVoiceClient().getAPIController();
-
-String to = "+15554443333";
-String from = "+15553334444";
-String applicationId = "3-a-b-c";
-String answerUrl = "https://sample.com";
-
-ApiCreateCallRequest body = new ApiCreateCallRequest();
-body.setTo(to);
-body.setFrom(from);
-body.setApplicationId(applicationId);
-body.setAnswerUrl(answerUrl);
-
-ApiResponse createCallResponse = voiceController.createCall(accountId, body);
-System.out.println(createCallResponse.getResult().getCallId());
-
-```
-
-### Send A Text Message
-
-```java
-
-String to = "+15554443333";
-ArrayList toNumbers = new ArrayList();
-toNumbers.add(to);
-String from = "+15553334444";
-String applicationId = "3-a-b-d";
-String text = "Hello from Java";
-
-MessageRequest body = new MessageRequest();
-body.setTo(toNumbers);
-body.setFrom(from);
-body.setText(text);
-body.setApplicationId(applicationId);
-
-ApiResponse createMessageResponse = messagingController.createMessage(accountId, body);
-System.out.println(createMessageResponse.getResult().getMessageId());
-
-```
-
-### Create BXML
-
-```java
-
-SpeakSentence speakSentence = SpeakSentence.builder()
- .text("Hello world")
- .voice("susan")
- .gender("female")
- .locale("en_US")
- .build();
-
-String response = new Response()
- .add(speakSentence)
- .toBXML();
-System.out.println(response);
-
-```
-
-### Create A MFA Request
-
-```java
-
-String to = "+15554443333";
-String from = "+15553334444";
-String applicationId = "3-a-c-b");
-String scope = "scope";
-int digits = 6;
-String message = "Your temporary {NAME} {SCOPE} code is {CODE}";
-
-TwoFactorCodeRequestSchema body = new TwoFactorCodeRequestSchema();
-body.setTo(to);
-body.setFrom(from);
-body.setApplicationId(applicationId);
-body.setScope(scope);
-body.setDigits(digits);
-body.setMessage(message);
-
-mfaController.createVoiceTwoFactor(accountId, body);
-
-String code = "123456"; //this is the user code to verify
-int expirationTimeInMinutes = 3;
-
-TwoFactorVerifyRequestSchema body = new TwoFactorVerifyRequestSchema();
-body.setTo(to);
-body.setApplicationId(applicationId);
-body.setScope(scope);
-body.setCode(code);
-body.setExpirationTimeInMinutes(expirationTimeInMinutes);
-
-ApiResponse response = mfaController.createVerifyTwoFactor(accountId, body);
-System.out.println(response.getResult().getValid());
-
-```
-
-### WebRtc Participant & Session Management
-
-```java
-
-Session createSessionBody = new Session();
-createSessionBody.setTag("new-session");
-
-ApiResponse createSessionResponse = webrtcController.createSession(accountId, createSessionBody);
-String sessionId = createSessionResponse.getResult().getId();
-
-Participant createParticipantBody = new Participant();
-createParticipantBody.setCallbackUrl("https://sample.com");
-ArrayList publishPermissions = new ArrayList();
-publishPermissions.add(PublishPermissionEnum.AUDIO);
-publishPermissions.add(PublishPermissionEnum.VIDEO);
-
-ApiResponse createParticipantResponse = webrtcController.createParticipant(accountId, createParticipantBody);
-String participantId = createParticipantResponse.getResult().getParticipant().getId();
-
-List participantSubscriptions = new ArrayList<>();
-participantSubscriptions.add(new ParticipantSubscription(participantId));
-
-webrtcController.addParticipantToSession(accountId, sessionId, participantId, new Subscriptions(sessionId, participantSubscriptions));
-
-```
-
-## Supported Java Versions
-
-This package can be used with Java >= 1.8
-
-## Documentation
-
-Documentation for this package can be found at https://dev.bandwidth.com/sdks/java
-
-## Credentials
-
-Information for credentials for this package can be found at https://dev.bandwidth.com/guides/accountCredentials.html
-
+# bandwidth-sdk
+
+Bandwidth
+- API version: 1.0.0
+ - Build date: 2023-08-29T14:24:34.966664-04:00[America/New_York]
+
+Bandwidth's Communication APIs
+
+ For more information, please visit [https://dev.bandwidth.com](https://dev.bandwidth.com)
+
+*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)*
+
+
+## Requirements
+
+Building the API client library requires:
+1. Java 1.8+
+2. Maven (3.8.3+)/Gradle (7.2+)
+
+## Installation
+
+To install the API client library to your local Maven repository, simply execute:
+
+```shell
+mvn clean install
+```
+
+To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
+
+```shell
+mvn clean deploy
+```
+
+Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.
+
+### Maven users
+
+Add this dependency to your project's POM:
+
+```xml
+
+ com.bandwidth.sdk
+ bandwidth-sdk
+ 9.0.0
+ compile
+
+```
+
+### Gradle users
+
+Add this dependency to your project's build file:
+
+```groovy
+ repositories {
+ mavenCentral() // Needed if the 'bandwidth-sdk' jar has been published to maven central.
+ mavenLocal() // Needed if the 'bandwidth-sdk' jar has been published to the local maven repo.
+ }
+
+ dependencies {
+ implementation "com.bandwidth.sdk:bandwidth-sdk:9.0.0"
+ }
+```
+
+### Others
+
+At first generate the JAR by executing:
+
+```shell
+mvn clean package
+```
+
+Then manually install the following JARs:
+
+* `target/bandwidth-sdk-9.0.0.jar`
+* `target/lib/*.jar`
+
+## Getting Started
+
+Please follow the [installation](#installation) instruction and execute the following Java code:
+
+```java
+
+// Import classes:
+import com.bandwidth.sdk.ApiClient;
+import com.bandwidth.sdk.ApiException;
+import com.bandwidth.sdk.Configuration;
+import com.bandwidth.sdk.auth.*;
+import com.bandwidth.sdk.models.*;
+import com.bandwidth.sdk.api.CallsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("http://localhost");
+
+ // Configure HTTP basic authorization: Basic
+ HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
+ Basic.setUsername("YOUR USERNAME");
+ Basic.setPassword("YOUR PASSWORD");
+
+ CallsApi apiInstance = new CallsApi(defaultClient);
+ String accountId = "9900000"; // String | Your Bandwidth Account ID.
+ CreateCall createCall = new CreateCall(); // CreateCall | JSON object containing information to create an outbound call
+ try {
+ CreateCallResponse result = apiInstance.createCall(accountId, createCall);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CallsApi#createCall");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*CallsApi* | [**createCall**](docs/CallsApi.md#createCall) | **POST** /accounts/{accountId}/calls | Create Call
+*CallsApi* | [**getCallState**](docs/CallsApi.md#getCallState) | **GET** /accounts/{accountId}/calls/{callId} | Get Call State Information
+*CallsApi* | [**updateCall**](docs/CallsApi.md#updateCall) | **POST** /accounts/{accountId}/calls/{callId} | Update Call
+*CallsApi* | [**updateCallBxml**](docs/CallsApi.md#updateCallBxml) | **PUT** /accounts/{accountId}/calls/{callId}/bxml | Update Call BXML
+*ConferencesApi* | [**downloadConferenceRecording**](docs/ConferencesApi.md#downloadConferenceRecording) | **GET** /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media | Download Conference Recording
+*ConferencesApi* | [**getConference**](docs/ConferencesApi.md#getConference) | **GET** /accounts/{accountId}/conferences/{conferenceId} | Get Conference Information
+*ConferencesApi* | [**getConferenceMember**](docs/ConferencesApi.md#getConferenceMember) | **GET** /accounts/{accountId}/conferences/{conferenceId}/members/{memberId} | Get Conference Member
+*ConferencesApi* | [**getConferenceRecording**](docs/ConferencesApi.md#getConferenceRecording) | **GET** /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId} | Get Conference Recording Information
+*ConferencesApi* | [**listConferenceRecordings**](docs/ConferencesApi.md#listConferenceRecordings) | **GET** /accounts/{accountId}/conferences/{conferenceId}/recordings | Get Conference Recordings
+*ConferencesApi* | [**listConferences**](docs/ConferencesApi.md#listConferences) | **GET** /accounts/{accountId}/conferences | Get Conferences
+*ConferencesApi* | [**updateConference**](docs/ConferencesApi.md#updateConference) | **POST** /accounts/{accountId}/conferences/{conferenceId} | Update Conference
+*ConferencesApi* | [**updateConferenceBxml**](docs/ConferencesApi.md#updateConferenceBxml) | **PUT** /accounts/{accountId}/conferences/{conferenceId}/bxml | Update Conference BXML
+*ConferencesApi* | [**updateConferenceMember**](docs/ConferencesApi.md#updateConferenceMember) | **PUT** /accounts/{accountId}/conferences/{conferenceId}/members/{memberId} | Update Conference Member
+*MediaApi* | [**deleteMedia**](docs/MediaApi.md#deleteMedia) | **DELETE** /users/{accountId}/media/{mediaId} | Delete Media
+*MediaApi* | [**getMedia**](docs/MediaApi.md#getMedia) | **GET** /users/{accountId}/media/{mediaId} | Get Media
+*MediaApi* | [**listMedia**](docs/MediaApi.md#listMedia) | **GET** /users/{accountId}/media | List Media
+*MediaApi* | [**uploadMedia**](docs/MediaApi.md#uploadMedia) | **PUT** /users/{accountId}/media/{mediaId} | Upload Media
+*MessagesApi* | [**createMessage**](docs/MessagesApi.md#createMessage) | **POST** /users/{accountId}/messages | Create Message
+*MessagesApi* | [**listMessages**](docs/MessagesApi.md#listMessages) | **GET** /users/{accountId}/messages | List Messages
+*MfaApi* | [**generateMessagingCode**](docs/MfaApi.md#generateMessagingCode) | **POST** /accounts/{accountId}/code/messaging | Messaging Authentication Code
+*MfaApi* | [**generateVoiceCode**](docs/MfaApi.md#generateVoiceCode) | **POST** /accounts/{accountId}/code/voice | Voice Authentication Code
+*MfaApi* | [**verifyCode**](docs/MfaApi.md#verifyCode) | **POST** /accounts/{accountId}/code/verify | Verify Authentication Code
+*PhoneNumberLookupApi* | [**createLookup**](docs/PhoneNumberLookupApi.md#createLookup) | **POST** /accounts/{accountId}/tnlookup | Create Lookup
+*PhoneNumberLookupApi* | [**getLookupStatus**](docs/PhoneNumberLookupApi.md#getLookupStatus) | **GET** /accounts/{accountId}/tnlookup/{requestId} | Get Lookup Request Status
+*RecordingsApi* | [**deleteCallTranscription**](docs/RecordingsApi.md#deleteCallTranscription) | **DELETE** /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription | Delete Transcription
+*RecordingsApi* | [**deleteRecording**](docs/RecordingsApi.md#deleteRecording) | **DELETE** /accounts/{accountId}/calls/{callId}/recordings/{recordingId} | Delete Recording
+*RecordingsApi* | [**deleteRecordingMedia**](docs/RecordingsApi.md#deleteRecordingMedia) | **DELETE** /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media | Delete Recording Media
+*RecordingsApi* | [**downloadCallRecording**](docs/RecordingsApi.md#downloadCallRecording) | **GET** /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media | Download Recording
+*RecordingsApi* | [**getCallRecording**](docs/RecordingsApi.md#getCallRecording) | **GET** /accounts/{accountId}/calls/{callId}/recordings/{recordingId} | Get Call Recording
+*RecordingsApi* | [**getCallTranscription**](docs/RecordingsApi.md#getCallTranscription) | **GET** /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription | Get Transcription
+*RecordingsApi* | [**listAccountCallRecordings**](docs/RecordingsApi.md#listAccountCallRecordings) | **GET** /accounts/{accountId}/recordings | Get Call Recordings
+*RecordingsApi* | [**listCallRecordings**](docs/RecordingsApi.md#listCallRecordings) | **GET** /accounts/{accountId}/calls/{callId}/recordings | List Call Recordings
+*RecordingsApi* | [**transcribeCallRecording**](docs/RecordingsApi.md#transcribeCallRecording) | **POST** /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription | Create Transcription Request
+*RecordingsApi* | [**updateCallRecordingState**](docs/RecordingsApi.md#updateCallRecordingState) | **PUT** /accounts/{accountId}/calls/{callId}/recording | Update Recording
+*StatisticsApi* | [**getStatistics**](docs/StatisticsApi.md#getStatistics) | **GET** /accounts/{accountId}/statistics | Get Account Statistics
+
+
+## Documentation for Models
+
+ - [AccountStatistics](docs/AccountStatistics.md)
+ - [AnswerCallback](docs/AnswerCallback.md)
+ - [BridgeCompleteCallback](docs/BridgeCompleteCallback.md)
+ - [BridgeTargetCompleteCallback](docs/BridgeTargetCompleteCallback.md)
+ - [CallDirectionEnum](docs/CallDirectionEnum.md)
+ - [CallRecordingMetadata](docs/CallRecordingMetadata.md)
+ - [CallState](docs/CallState.md)
+ - [CallStateEnum](docs/CallStateEnum.md)
+ - [CallbackMethodEnum](docs/CallbackMethodEnum.md)
+ - [CodeRequest](docs/CodeRequest.md)
+ - [Conference](docs/Conference.md)
+ - [ConferenceCompletedCallback](docs/ConferenceCompletedCallback.md)
+ - [ConferenceCreatedCallback](docs/ConferenceCreatedCallback.md)
+ - [ConferenceMember](docs/ConferenceMember.md)
+ - [ConferenceMemberExitCallback](docs/ConferenceMemberExitCallback.md)
+ - [ConferenceMemberJoinCallback](docs/ConferenceMemberJoinCallback.md)
+ - [ConferenceRecordingAvailableCallback](docs/ConferenceRecordingAvailableCallback.md)
+ - [ConferenceRecordingMetadata](docs/ConferenceRecordingMetadata.md)
+ - [ConferenceRedirectCallback](docs/ConferenceRedirectCallback.md)
+ - [ConferenceStateEnum](docs/ConferenceStateEnum.md)
+ - [CreateCall](docs/CreateCall.md)
+ - [CreateCallResponse](docs/CreateCallResponse.md)
+ - [CreateLookupResponse](docs/CreateLookupResponse.md)
+ - [CreateMessageRequestError](docs/CreateMessageRequestError.md)
+ - [DeferredResult](docs/DeferredResult.md)
+ - [DisconnectCallback](docs/DisconnectCallback.md)
+ - [Diversion](docs/Diversion.md)
+ - [DtmfCallback](docs/DtmfCallback.md)
+ - [FieldError](docs/FieldError.md)
+ - [FileFormatEnum](docs/FileFormatEnum.md)
+ - [GatherCallback](docs/GatherCallback.md)
+ - [InboundMessageCallback](docs/InboundMessageCallback.md)
+ - [InboundMessageCallbackMessage](docs/InboundMessageCallbackMessage.md)
+ - [InitiateCallback](docs/InitiateCallback.md)
+ - [ListMessageDirectionEnum](docs/ListMessageDirectionEnum.md)
+ - [ListMessageItem](docs/ListMessageItem.md)
+ - [LookupRequest](docs/LookupRequest.md)
+ - [LookupResult](docs/LookupResult.md)
+ - [LookupStatus](docs/LookupStatus.md)
+ - [LookupStatusEnum](docs/LookupStatusEnum.md)
+ - [MachineDetectionCompleteCallback](docs/MachineDetectionCompleteCallback.md)
+ - [MachineDetectionConfiguration](docs/MachineDetectionConfiguration.md)
+ - [MachineDetectionModeEnum](docs/MachineDetectionModeEnum.md)
+ - [MachineDetectionResult](docs/MachineDetectionResult.md)
+ - [Media](docs/Media.md)
+ - [Message](docs/Message.md)
+ - [MessageDeliveredCallback](docs/MessageDeliveredCallback.md)
+ - [MessageDeliveredCallbackMessage](docs/MessageDeliveredCallbackMessage.md)
+ - [MessageDirectionEnum](docs/MessageDirectionEnum.md)
+ - [MessageFailedCallback](docs/MessageFailedCallback.md)
+ - [MessageFailedCallbackMessage](docs/MessageFailedCallbackMessage.md)
+ - [MessageRequest](docs/MessageRequest.md)
+ - [MessageSendingCallback](docs/MessageSendingCallback.md)
+ - [MessageSendingCallbackMessage](docs/MessageSendingCallbackMessage.md)
+ - [MessageStatusEnum](docs/MessageStatusEnum.md)
+ - [MessageTypeEnum](docs/MessageTypeEnum.md)
+ - [MessagesList](docs/MessagesList.md)
+ - [MessagingCodeResponse](docs/MessagingCodeResponse.md)
+ - [MessagingRequestError](docs/MessagingRequestError.md)
+ - [MfaForbiddenRequestError](docs/MfaForbiddenRequestError.md)
+ - [MfaRequestError](docs/MfaRequestError.md)
+ - [MfaUnauthorizedRequestError](docs/MfaUnauthorizedRequestError.md)
+ - [PageInfo](docs/PageInfo.md)
+ - [PriorityEnum](docs/PriorityEnum.md)
+ - [RecordingAvailableCallback](docs/RecordingAvailableCallback.md)
+ - [RecordingCompleteCallback](docs/RecordingCompleteCallback.md)
+ - [RecordingStateEnum](docs/RecordingStateEnum.md)
+ - [RedirectCallback](docs/RedirectCallback.md)
+ - [RedirectMethodEnum](docs/RedirectMethodEnum.md)
+ - [StirShaken](docs/StirShaken.md)
+ - [Tag](docs/Tag.md)
+ - [TnLookupRequestError](docs/TnLookupRequestError.md)
+ - [TranscribeRecording](docs/TranscribeRecording.md)
+ - [Transcription](docs/Transcription.md)
+ - [TranscriptionAvailableCallback](docs/TranscriptionAvailableCallback.md)
+ - [TranscriptionList](docs/TranscriptionList.md)
+ - [TranscriptionMetadata](docs/TranscriptionMetadata.md)
+ - [TransferAnswerCallback](docs/TransferAnswerCallback.md)
+ - [TransferCompleteCallback](docs/TransferCompleteCallback.md)
+ - [TransferDisconnectCallback](docs/TransferDisconnectCallback.md)
+ - [UpdateCall](docs/UpdateCall.md)
+ - [UpdateCallRecording](docs/UpdateCallRecording.md)
+ - [UpdateConference](docs/UpdateConference.md)
+ - [UpdateConferenceMember](docs/UpdateConferenceMember.md)
+ - [VerifyCodeRequest](docs/VerifyCodeRequest.md)
+ - [VerifyCodeResponse](docs/VerifyCodeResponse.md)
+ - [VoiceApiError](docs/VoiceApiError.md)
+ - [VoiceCodeResponse](docs/VoiceCodeResponse.md)
+
+
+
+## Documentation for Authorization
+
+
+Authentication schemes defined for the API:
+
+### Basic
+
+- **Type**: HTTP basic authentication
+
+
+## Recommendation
+
+It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.
+
+## Author
+
+letstalk@bandwidth.com
+
diff --git a/api/openapi.yaml b/api/openapi.yaml
new file mode 100644
index 00000000..5f777470
--- /dev/null
+++ b/api/openapi.yaml
@@ -0,0 +1,9610 @@
+openapi: 3.0.3
+info:
+ contact:
+ email: letstalk@bandwidth.com
+ name: Bandwidth
+ url: https://dev.bandwidth.com
+ description: Bandwidth's Communication APIs
+ title: Bandwidth
+ version: 1.0.0
+servers:
+- url: /
+security:
+- Basic: []
+tags:
+- name: Messages
+- name: Media
+- name: Calls
+- name: Conferences
+- name: Recordings
+- name: Statistics
+- name: MFA
+- name: Phone Number Lookup
+paths:
+ /users/{accountId}/media:
+ get:
+ description: Gets a list of your media files. No query parameters are supported.
+ operationId: listMedia
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Continuation token used to retrieve subsequent media.
+ example: 1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39
+ explode: false
+ in: header
+ name: Continuation-Token
+ required: false
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/media'
+ type: array
+ description: OK
+ headers:
+ Continuation-Token:
+ description: Continuation token used to retrieve subsequent media.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "406":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: List Media
+ tags:
+ - Media
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://messaging.bandwidth.com/api/v2
+ /users/{accountId}/media/{mediaId}:
+ delete:
+ 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
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Media ID to retrieve.
+ example: 14762070468292kw2fuqty55yp2b2/0/bw.png
+ explode: false
+ in: path
+ name: mediaId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "204":
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "406":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: Delete Media
+ tags:
+ - Media
+ x-accepts: application/json
+ get:
+ description: Downloads a media file you previously uploaded.
+ operationId: getMedia
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Media ID to retrieve.
+ example: 14762070468292kw2fuqty55yp2b2/0/bw.png
+ explode: false
+ in: path
+ name: mediaId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/octet-stream:
+ schema:
+ description: Successful Operation
+ format: binary
+ type: string
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "406":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: Get Media
+ tags:
+ - Media
+ x-accepts: application/json
+ put:
+ 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
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Media ID to retrieve.
+ example: 14762070468292kw2fuqty55yp2b2/0/bw.png
+ explode: false
+ in: path
+ name: mediaId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: The media type of the entity-body.
+ example: audio/wav
+ explode: false
+ in: header
+ name: Content-Type
+ required: false
+ schema:
+ type: string
+ style: simple
+ - 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
+ explode: false
+ in: header
+ name: Cache-Control
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/uploadMediaRequest'
+ responses:
+ "204":
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "406":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: Upload Media
+ tags:
+ - Media
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://messaging.bandwidth.com/api/v2
+ /users/{accountId}/messages:
+ get:
+ description: Returns a list of messages based on query parameters.
+ operationId: listMessages
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - 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
+ explode: true
+ in: query
+ name: messageId
+ required: false
+ schema:
+ type: string
+ style: form
+ - 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'
+ explode: true
+ in: query
+ name: sourceTn
+ required: false
+ schema:
+ type: string
+ style: form
+ - 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'
+ explode: true
+ in: query
+ name: destinationTn
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The status of the message. One of RECEIVED QUEUED SENDING SENT
+ FAILED DELIVERED ACCEPTED UNDELIVERED.
+ explode: true
+ in: query
+ name: messageStatus
+ required: false
+ schema:
+ $ref: '#/components/schemas/messageStatusEnum'
+ style: form
+ - description: The direction of the message. One of INBOUND OUTBOUND.
+ explode: true
+ in: query
+ name: messageDirection
+ required: false
+ schema:
+ $ref: '#/components/schemas/listMessageDirectionEnum'
+ style: form
+ - 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
+ explode: true
+ in: query
+ name: carrierName
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The type of message. Either sms or mms.
+ explode: true
+ in: query
+ name: messageType
+ required: false
+ schema:
+ $ref: '#/components/schemas/messageTypeEnum'
+ style: form
+ - description: The error code of the message.
+ example: 9902
+ explode: true
+ in: query
+ name: errorCode
+ required: false
+ schema:
+ type: integer
+ style: form
+ - 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
+ explode: true
+ in: query
+ name: fromDateTime
+ required: false
+ schema:
+ type: string
+ style: form
+ - 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
+ explode: true
+ in: query
+ name: toDateTime
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The campaign ID of the message.
+ example: CJEUMDK
+ explode: true
+ in: query
+ name: campaignId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The field and direction to sort by combined with a colon. Direction
+ is either asc or desc.
+ example: sourceTn:desc
+ explode: true
+ in: query
+ name: sort
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: A base64 encoded value used for pagination of results.
+ example: gdEewhcJLQRB5
+ explode: true
+ in: query
+ name: pageToken
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The maximum records requested in search result. Default 100.
+ The sum of limit and after cannot be more than 10000.
+ example: 50
+ explode: true
+ in: query
+ name: limit
+ required: false
+ schema:
+ type: integer
+ style: form
+ - 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
+ explode: true
+ in: query
+ name: limitTotalCount
+ required: false
+ schema:
+ type: boolean
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagesList'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: List Messages
+ tags:
+ - Messages
+ x-accepts: application/json
+ post:
+ callbacks:
+ inboundCallback:
+ $ref: '#/components/callbacks/inboundCallback'
+ statusCallback:
+ $ref: '#/components/callbacks/statusCallback'
+ description: Endpoint for sending text messages and picture messages using V2
+ messaging.
+ operationId: createMessage
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/createMessageRequest'
+ responses:
+ "202":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/message'
+ description: Accepted
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/createMessageRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ "406":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ "415":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ summary: Create Message
+ tags:
+ - Messages
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://messaging.bandwidth.com/api/v2
+ /accounts/{accountId}/calls:
+ post:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/createCallRequest'
+ responses:
+ "201":
+ content:
+ application/json:
+ examples:
+ createCall Response:
+ $ref: '#/components/examples/createCallResponseExample'
+ schema:
+ $ref: '#/components/schemas/createCallResponse'
+ description: Call Successfully Created
+ headers:
+ Location:
+ description: The URL for further interactions with this call
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Create Call
+ tags:
+ - Calls
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}:
+ get:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/callState'
+ description: Call found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Call State Information
+ tags:
+ - Calls
+ x-accepts: application/json
+ post:
+ description: Interrupts and redirects a call to a different URL that should
+ return a BXML document.
+ operationId: updateCall
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateCallRequest'
+ responses:
+ "200":
+ description: Call was successfully modified.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "409":
+ content:
+ application/json:
+ examples:
+ conflictErrorExample:
+ $ref: '#/components/examples/voiceConflictErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Conflict
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Call
+ tags:
+ - Calls
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/bxml:
+ put:
+ description: Interrupts and replaces an active call's BXML document.
+ operationId: updateCallBxml
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateCallBxmlRequest'
+ responses:
+ "204":
+ description: Call BXML was successfully replaced.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "409":
+ content:
+ application/json:
+ examples:
+ conflictErrorExample:
+ $ref: '#/components/examples/voiceConflictErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Conflict
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Call BXML
+ tags:
+ - Calls
+ x-content-type: application/xml
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences:
+ get:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Filter results by the `name` field.
+ example: my-custom-name
+ explode: true
+ in: query
+ name: name
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Filter results to conferences which have a `createdTime` after
+ or at `minCreatedTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: minCreatedTime
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Filter results to conferences which have a `createdTime` before
+ or at `maxCreatedTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: maxCreatedTime
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Specifies the max number of conferences that will be returned.
+ example: 500
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 1000
+ format: int32
+ maximum: 1000
+ minimum: 1
+ type: integer
+ style: form
+ - 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."
+ explode: true
+ in: query
+ name: pageToken
+ required: false
+ schema:
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ listConferences Response:
+ $ref: '#/components/examples/listConferencesResponseExample'
+ schema:
+ items:
+ $ref: '#/components/schemas/conference'
+ type: array
+ description: Conferences retrieved successfully
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Conferences
+ tags:
+ - Conferences
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}:
+ get:
+ description: Returns information about the specified conference.
+ operationId: getConference
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conference'
+ description: Conferences retrieved successfully
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Conference Information
+ tags:
+ - Conferences
+ x-accepts: application/json
+ post:
+ description: Update the conference state.
+ operationId: updateConference
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateConferenceRequest'
+ responses:
+ "204":
+ description: Conference was successfully modified.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Conference
+ tags:
+ - Conferences
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}/bxml:
+ put:
+ description: Update the conference BXML document.
+ operationId: updateConferenceBxml
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateConferenceBxmlRequest'
+ responses:
+ "204":
+ description: Conference successfully modified.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Conference BXML
+ tags:
+ - Conferences
+ x-content-type: application/xml
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}:
+ get:
+ description: Returns information about the specified conference member.
+ operationId: getConferenceMember
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference Member ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: memberId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conferenceMember'
+ description: Conference member found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Conference Member
+ tags:
+ - Conferences
+ x-accepts: application/json
+ put:
+ description: Updates settings for a particular conference member.
+ operationId: updateConferenceMember
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference Member ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: memberId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateConferenceMemberRequest'
+ responses:
+ "204":
+ description: Conference member was successfully modified.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Conference Member
+ tags:
+ - Conferences
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}/recordings:
+ get:
+ description: Returns a (potentially empty) list of metadata for the recordings
+ that took place during the specified conference.
+ operationId: listConferenceRecordings
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/conferenceRecordingMetadata'
+ type: array
+ description: Conference recordings retrieved successfully
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Conference Recordings
+ tags:
+ - Conferences
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}:
+ get:
+ description: Returns metadata for the specified recording.
+ operationId: getConferenceRecording
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conferenceRecordingMetadata'
+ description: Conference recording found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Conference Recording Information
+ tags:
+ - Conferences
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media:
+ get:
+ description: Downloads the specified recording file.
+ operationId: downloadConferenceRecording
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ audio/vnd.wave:
+ schema:
+ format: binary
+ type: string
+ audio/mpeg:
+ schema:
+ format: binary
+ type: string
+ description: Media found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Download Conference Recording
+ tags:
+ - Conferences
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/recordings:
+ get:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Filter results by the `to` field.
+ example: '%2b19195551234'
+ explode: true
+ in: query
+ name: to
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Filter results by the `from` field.
+ example: '%2b19195554321'
+ explode: true
+ in: query
+ name: from
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Filter results to recordings which have a `startTime` after or
+ including `minStartTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: minStartTime
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Filter results to recordings which have a `startTime` before
+ `maxStartTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: maxStartTime
+ required: false
+ schema:
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/callRecordingMetadata'
+ type: array
+ description: Recordings retrieved successfully
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Call Recordings
+ tags:
+ - Recordings
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/recording:
+ put:
+ description: Pause or resume a recording on an active phone call.
+ operationId: updateCallRecordingState
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/updateCallRecordingRequest'
+ responses:
+ "200":
+ description: Recording state was successfully modified.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Update Recording
+ tags:
+ - Recordings
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/recordings:
+ get:
+ description: |-
+ Returns a (potentially empty) list of metadata for the recordings
+ that took place during the specified call.
+ operationId: listCallRecordings
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/callRecordingMetadata'
+ type: array
+ description: Recordings retrieved successfully
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: List Call Recordings
+ tags:
+ - Recordings
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/recordings/{recordingId}:
+ delete:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "204":
+ description: Recording was deleted.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Delete Recording
+ tags:
+ - Recordings
+ x-accepts: application/json
+ get:
+ description: Returns metadata for the specified recording.
+ operationId: getCallRecording
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/callRecordingMetadata'
+ description: Recording found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Call Recording
+ tags:
+ - Recordings
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media:
+ delete:
+ description: Deletes the specified recording's media.
+ operationId: deleteRecordingMedia
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "204":
+ description: The recording media was successfully deleted.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Delete Recording Media
+ tags:
+ - Recordings
+ x-accepts: application/json
+ get:
+ description: Downloads the specified recording.
+ operationId: downloadCallRecording
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ audio/vnd.wave:
+ schema:
+ format: binary
+ type: string
+ audio/mpeg:
+ schema:
+ format: binary
+ type: string
+ description: Media found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Download Recording
+ tags:
+ - Recordings
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription:
+ delete:
+ 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: deleteCallTranscription
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "204":
+ description: The transcription was successfully deleted.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Delete Transcription
+ tags:
+ - Recordings
+ x-accepts: application/json
+ get:
+ description: |-
+ Downloads the specified transcription.
+
+ If the transcribed 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: getCallTranscription
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/transcriptionList'
+ description: Transcription found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Transcription
+ tags:
+ - Recordings
+ x-accepts: application/json
+ post:
+ 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:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/transcribeRecordingRequest'
+ responses:
+ "204":
+ description: Transcription was successfully requested.
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Create Transcription Request
+ tags:
+ - Recordings
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/statistics:
+ get:
+ description: Returns details about the current state of the account.
+ operationId: getStatistics
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/accountStatistics'
+ description: Statistics Found
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ "405":
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ "415":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "500":
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ summary: Get Account Statistics
+ tags:
+ - Statistics
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://voice.bandwidth.com/api/v2
+ /accounts/{accountId}/code/voice:
+ post:
+ description: Send an MFA Code via a phone call.
+ operationId: generateVoiceCode
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/codeRequest'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/voiceCodeResponse'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaUnauthorizedRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaForbiddenRequestError'
+ description: Forbidden
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Internal Server Error
+ summary: Voice Authentication Code
+ tags:
+ - MFA
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://mfa.bandwidth.com/api/v1
+ /accounts/{accountId}/code/messaging:
+ post:
+ description: Send an MFA code via text message (SMS).
+ operationId: generateMessagingCode
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/codeRequest'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingCodeResponse'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaUnauthorizedRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaForbiddenRequestError'
+ description: Forbidden
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Internal Server Error
+ summary: Messaging Authentication Code
+ tags:
+ - MFA
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://mfa.bandwidth.com/api/v1
+ /accounts/{accountId}/code/verify:
+ post:
+ description: Verify a previously sent MFA code.
+ operationId: verifyCode
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/codeVerify'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/verifyCodeResponse'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaUnauthorizedRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaForbiddenRequestError'
+ description: Forbidden
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Internal Server Error
+ summary: Verify Authentication Code
+ tags:
+ - MFA
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://mfa.bandwidth.com/api/v1
+ /accounts/{accountId}/tnlookup:
+ post:
+ description: Create a Phone Number Lookup Request.
+ operationId: createLookup
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/createLookupRequest'
+ responses:
+ "202":
+ content:
+ application/json:
+ examples:
+ lookupResponseExample:
+ $ref: '#/components/examples/lookupInProgressExample'
+ schema:
+ $ref: '#/components/schemas/createLookupResponse'
+ description: Accepted
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequest:
+ summary: Example Bad Request Error
+ value:
+ message: "Some tns do not match e164 format: 1234"
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorized:
+ summary: Example Unauthorized Error
+ value:
+ message: Unauthorized
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ 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=='
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Forbidden
+ "415":
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Unsupported Media Type Error
+ value:
+ message: Content-Type must be application/json.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Unsupported Media Type
+ "429":
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Too Many Requests Error
+ value:
+ message: Too many requests.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Internal Server Error Error
+ value:
+ message: Request has not been passed further.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Internal Server Error
+ summary: Create Lookup
+ tags:
+ - Phone Number Lookup
+ x-content-type: application/json
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://numbers.bandwidth.com/api/v1
+ /accounts/{accountId}/tnlookup/{requestId}:
+ get:
+ description: Get an existing Phone Number Lookup Request.
+ operationId: getLookupStatus
+ parameters:
+ - description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: The phone number lookup request ID from Bandwidth.
+ example: 004223a0-8b17-41b1-bf81-20732adf5590
+ explode: false
+ in: path
+ name: requestId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ 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'
+ schema:
+ $ref: '#/components/schemas/lookupStatus'
+ description: OK
+ "400":
+ content:
+ application/json:
+ examples:
+ badRequest:
+ summary: Example Bad Request Error
+ value:
+ message: "Some tns do not match e164 format: 1234"
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ examples:
+ unauthorized:
+ summary: Example Unauthorized Error
+ value:
+ message: Unauthorized
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ 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=='
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Forbidden
+ "404":
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Too Many Requests Error
+ value:
+ message: Too many requests.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Too Many Requests
+ "500":
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Internal Server Error Error
+ value:
+ message: Request has not been passed further.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Internal Server Error
+ summary: Get Lookup Request Status
+ tags:
+ - Phone Number Lookup
+ x-accepts: application/json
+ servers:
+ - description: Production
+ url: https://numbers.bandwidth.com/api/v1
+components:
+ callbacks:
+ inboundCallback:
+ '{inboundCallbackUrl}':
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/inboundMessageCallback'
+ description: Inbound Message Callback Payload
+ required: true
+ responses:
+ "200":
+ description: OK
+ statusCallback:
+ '{statusCallbackUrl}':
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/messageSendingCallback'
+ - $ref: '#/components/schemas/messageDeliveredCallback'
+ - $ref: '#/components/schemas/messageFailedCallback'
+ type: object
+ description: Status Callback Payload
+ required: true
+ 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
+ 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
+ parameters:
+ accountId:
+ description: Your Bandwidth Account ID.
+ example: "9900000"
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ type: string
+ style: simple
+ mediaId:
+ description: Media ID to retrieve.
+ example: 14762070468292kw2fuqty55yp2b2/0/bw.png
+ explode: false
+ in: path
+ name: mediaId
+ required: true
+ schema:
+ type: string
+ style: simple
+ contentType:
+ description: The media type of the entity-body.
+ example: audio/wav
+ explode: false
+ in: header
+ name: Content-Type
+ required: false
+ schema:
+ type: string
+ style: simple
+ cacheControl:
+ 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
+ explode: false
+ in: header
+ name: Cache-Control
+ required: false
+ schema:
+ type: string
+ style: simple
+ continuationToken:
+ description: Continuation token used to retrieve subsequent media.
+ example: 1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39
+ explode: false
+ in: header
+ name: Continuation-Token
+ required: false
+ schema:
+ type: string
+ style: simple
+ messageId:
+ 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
+ explode: true
+ in: query
+ name: messageId
+ required: false
+ schema:
+ type: string
+ style: form
+ sourceTn:
+ 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'
+ explode: true
+ in: query
+ name: sourceTn
+ required: false
+ schema:
+ type: string
+ style: form
+ destinationTn:
+ 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'
+ explode: true
+ in: query
+ name: destinationTn
+ required: false
+ schema:
+ type: string
+ style: form
+ messageStatus:
+ description: The status of the message. One of RECEIVED QUEUED SENDING SENT
+ FAILED DELIVERED ACCEPTED UNDELIVERED.
+ explode: true
+ in: query
+ name: messageStatus
+ required: false
+ schema:
+ $ref: '#/components/schemas/messageStatusEnum'
+ style: form
+ messageDirection:
+ description: The direction of the message. One of INBOUND OUTBOUND.
+ explode: true
+ in: query
+ name: messageDirection
+ required: false
+ schema:
+ $ref: '#/components/schemas/listMessageDirectionEnum'
+ style: form
+ carrierName:
+ 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
+ explode: true
+ in: query
+ name: carrierName
+ required: false
+ schema:
+ type: string
+ style: form
+ messageType:
+ description: The type of message. Either sms or mms.
+ explode: true
+ in: query
+ name: messageType
+ required: false
+ schema:
+ $ref: '#/components/schemas/messageTypeEnum'
+ style: form
+ errorCode:
+ description: The error code of the message.
+ example: 9902
+ explode: true
+ in: query
+ name: errorCode
+ required: false
+ schema:
+ type: integer
+ style: form
+ fromDateTime:
+ 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
+ explode: true
+ in: query
+ name: fromDateTime
+ required: false
+ schema:
+ type: string
+ style: form
+ toDateTime:
+ 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
+ explode: true
+ in: query
+ name: toDateTime
+ required: false
+ schema:
+ type: string
+ style: form
+ campaignId:
+ description: The campaign ID of the message.
+ example: CJEUMDK
+ explode: true
+ in: query
+ name: campaignId
+ required: false
+ schema:
+ type: string
+ style: form
+ sort:
+ description: The field and direction to sort by combined with a colon. Direction
+ is either asc or desc.
+ example: sourceTn:desc
+ explode: true
+ in: query
+ name: sort
+ required: false
+ schema:
+ type: string
+ style: form
+ pageToken:
+ description: A base64 encoded value used for pagination of results.
+ example: gdEewhcJLQRB5
+ explode: true
+ in: query
+ name: pageToken
+ required: false
+ schema:
+ type: string
+ style: form
+ limit:
+ description: The maximum records requested in search result. Default 100. The
+ sum of limit and after cannot be more than 10000.
+ example: 50
+ explode: true
+ in: query
+ name: limit
+ required: false
+ schema:
+ type: integer
+ style: form
+ limitTotalCount:
+ 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
+ explode: true
+ in: query
+ name: limitTotalCount
+ required: false
+ schema:
+ type: boolean
+ style: form
+ callId:
+ description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: callId
+ required: true
+ schema:
+ type: string
+ style: simple
+ recordingId:
+ description: Programmable Voice API Recording ID.
+ example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: recordingId
+ required: true
+ schema:
+ type: string
+ style: simple
+ conferenceId:
+ description: Programmable Voice API Conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ explode: false
+ in: path
+ name: conferenceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ memberId:
+ description: Programmable Voice API Conference Member ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ explode: false
+ in: path
+ name: memberId
+ required: true
+ schema:
+ type: string
+ style: simple
+ to:
+ description: Filter results by the `to` field.
+ example: '%2b19195551234'
+ explode: true
+ in: query
+ name: to
+ required: false
+ schema:
+ type: string
+ style: form
+ from:
+ description: Filter results by the `from` field.
+ example: '%2b19195554321'
+ explode: true
+ in: query
+ name: from
+ required: false
+ schema:
+ type: string
+ style: form
+ name:
+ description: Filter results by the `name` field.
+ example: my-custom-name
+ explode: true
+ in: query
+ name: name
+ required: false
+ schema:
+ type: string
+ style: form
+ minCreatedTime:
+ description: Filter results to conferences which have a `createdTime` after
+ or at `minCreatedTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: minCreatedTime
+ required: false
+ schema:
+ type: string
+ style: form
+ maxCreatedTime:
+ description: Filter results to conferences which have a `createdTime` before
+ or at `maxCreatedTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: maxCreatedTime
+ required: false
+ schema:
+ type: string
+ style: form
+ minStartTime:
+ description: Filter results to recordings which have a `startTime` after or
+ including `minStartTime` (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: minStartTime
+ required: false
+ schema:
+ type: string
+ style: form
+ maxStartTime:
+ description: Filter results to recordings which have a `startTime` before `maxStartTime`
+ (in ISO8601 format).
+ example: 2022-06-21T19:13:21Z
+ explode: true
+ in: query
+ name: maxStartTime
+ required: false
+ schema:
+ type: string
+ style: form
+ pageSize:
+ description: Specifies the max number of conferences that will be returned.
+ example: 500
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 1000
+ format: int32
+ maximum: 1000
+ minimum: 1
+ type: integer
+ style: form
+ pageToken1:
+ 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."
+ explode: true
+ in: query
+ name: pageToken
+ required: false
+ schema:
+ type: string
+ style: form
+ requestId:
+ description: The phone number lookup request ID from Bandwidth.
+ example: 004223a0-8b17-41b1-bf81-20732adf5590
+ explode: false
+ in: path
+ name: requestId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBodies:
+ createMessageRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messageRequest'
+ required: true
+ uploadMediaRequest:
+ content:
+ application/json:
+ schema:
+ format: binary
+ type: string
+ application/ogg:
+ schema:
+ format: binary
+ type: string
+ application/pdf:
+ schema:
+ format: binary
+ type: string
+ application/rtf:
+ schema:
+ format: binary
+ type: string
+ application/zip:
+ schema:
+ format: binary
+ type: string
+ application/x-tar:
+ schema:
+ format: binary
+ type: string
+ application/xml:
+ schema:
+ format: binary
+ type: string
+ application/gzip:
+ schema:
+ format: binary
+ type: string
+ application/x-bzip2:
+ schema:
+ format: binary
+ type: string
+ application/x-gzip:
+ schema:
+ format: binary
+ type: string
+ application/smil:
+ schema:
+ format: binary
+ type: string
+ application/javascript:
+ schema:
+ format: binary
+ type: string
+ audio/mp4:
+ schema:
+ format: binary
+ type: string
+ audio/mpeg:
+ schema:
+ format: binary
+ type: string
+ audio/ogg:
+ schema:
+ format: binary
+ type: string
+ audio/flac:
+ schema:
+ format: binary
+ type: string
+ audio/webm:
+ schema:
+ format: binary
+ type: string
+ audio/wav:
+ schema:
+ format: binary
+ type: string
+ audio/amr:
+ schema:
+ format: binary
+ type: string
+ audio/3gpp:
+ schema:
+ format: binary
+ type: string
+ image/bmp:
+ schema:
+ format: binary
+ type: string
+ image/gif:
+ schema:
+ format: binary
+ type: string
+ image/jpeg:
+ schema:
+ format: binary
+ type: string
+ image/pjpeg:
+ schema:
+ format: binary
+ type: string
+ image/png:
+ schema:
+ format: binary
+ type: string
+ image/svg+xml:
+ schema:
+ format: binary
+ type: string
+ image/tiff:
+ schema:
+ format: binary
+ type: string
+ image/webp:
+ schema:
+ format: binary
+ type: string
+ image/x-icon:
+ schema:
+ format: binary
+ type: string
+ text/css:
+ schema:
+ format: binary
+ type: string
+ text/csv:
+ schema:
+ format: binary
+ type: string
+ text/calendar:
+ schema:
+ format: binary
+ type: string
+ text/plain:
+ schema:
+ format: binary
+ type: string
+ text/javascript:
+ schema:
+ format: binary
+ type: string
+ text/vcard:
+ schema:
+ format: binary
+ type: string
+ text/vnd.wap.wml:
+ schema:
+ format: binary
+ type: string
+ text/xml:
+ schema:
+ format: binary
+ type: string
+ video/avi:
+ schema:
+ format: binary
+ type: string
+ video/mp4:
+ schema:
+ format: binary
+ type: string
+ video/mpeg:
+ schema:
+ format: binary
+ type: string
+ video/ogg:
+ schema:
+ format: binary
+ type: string
+ video/quicktime:
+ schema:
+ format: binary
+ type: string
+ video/webm:
+ schema:
+ format: binary
+ type: string
+ video/x-ms-wmv:
+ schema:
+ format: binary
+ type: string
+ required: true
+ createCallRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/createCall'
+ description: JSON object containing information to create an outbound call
+ required: true
+ updateCallRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/updateCall'
+ description: JSON object containing information to redirect an existing call
+ to a new BXML document
+ required: true
+ updateCallBxmlRequest:
+ content:
+ application/xml:
+ examples:
+ speakSentence:
+ summary: Speak Sentence
+ value: |-
+
+
+ This is a test sentence.
+
+ redirectUrl:
+ summary: Redirect
+ value: |-
+
+
+
+
+ schema:
+ description: A valid BXML document to replace the call's current BXML.
+ type: string
+ required: true
+ updateCallRecordingRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/updateCallRecording'
+ required: true
+ transcribeRecordingRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/transcribeRecording'
+ required: true
+ updateConferenceRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/updateConference'
+ required: true
+ updateConferenceBxmlRequest:
+ content:
+ application/xml:
+ examples:
+ stopRecording:
+ summary: Stop Recording
+ value: |-
+
+
+
+
+ schema:
+ description: A valid BXML document to replace the call's current BXML.
+ type: string
+ required: true
+ updateConferenceMemberRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/updateConferenceMember'
+ required: true
+ codeRequest:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/codeRequest'
+ description: MFA code request body.
+ required: true
+ codeVerify:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/verifyCodeRequest'
+ description: MFA code verify request body.
+ required: true
+ createLookupRequest:
+ content:
+ application/json:
+ examples:
+ singleNumberRequestExample:
+ $ref: '#/components/examples/singleNumberRequestExample'
+ multipleNumberRequestExample:
+ $ref: '#/components/examples/multipleNumberRequestExample'
+ schema:
+ $ref: '#/components/schemas/lookupRequest'
+ description: Phone number lookup request.
+ required: true
+ responses:
+ createMessageResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/message'
+ description: Accepted
+ listMessagesResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagesList'
+ description: OK
+ getMediaResponse:
+ content:
+ application/octet-stream:
+ schema:
+ description: Successful Operation
+ format: binary
+ type: string
+ description: OK
+ listMediaResponse:
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/media'
+ type: array
+ description: OK
+ headers:
+ Continuation-Token:
+ description: Continuation token used to retrieve subsequent media.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ messagingBadRequestError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Bad Request
+ messagingNotAcceptableError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Acceptable
+ createMessageBadRequestError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/createMessageRequestError'
+ description: Bad Request
+ messagingUnauthorizedError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unauthorized
+ messagingForbiddenError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Forbidden
+ messagingNotFoundError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Not Found
+ messagingInvalidMediaTypeError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Unsupported Media Type
+ messagingTooManyRequestsError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Too Many Requests
+ messagingInternalServerError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingRequestError'
+ description: Internal Server Error
+ createCallResponse:
+ content:
+ application/json:
+ examples:
+ createCall Response:
+ $ref: '#/components/examples/createCallResponseExample'
+ schema:
+ $ref: '#/components/schemas/createCallResponse'
+ description: Call Successfully Created
+ headers:
+ Location:
+ description: The URL for further interactions with this call
+ explode: false
+ schema:
+ type: string
+ style: simple
+ getCallStateResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/callState'
+ description: Call found
+ getStatisticsResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/accountStatistics'
+ description: Statistics Found
+ listCallRecordingsResponse:
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/callRecordingMetadata'
+ type: array
+ description: Recordings retrieved successfully
+ getCallRecordingResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/callRecordingMetadata'
+ description: Recording found
+ downloadRecordingMediaResponse:
+ content:
+ audio/vnd.wave:
+ schema:
+ format: binary
+ type: string
+ audio/mpeg:
+ schema:
+ format: binary
+ type: string
+ description: Media found
+ getCallTranscriptionResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/transcriptionList'
+ description: Transcription found
+ listConferencesResponse:
+ content:
+ application/json:
+ examples:
+ listConferences Response:
+ $ref: '#/components/examples/listConferencesResponseExample'
+ schema:
+ items:
+ $ref: '#/components/schemas/conference'
+ type: array
+ description: Conferences retrieved successfully
+ getConferenceResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conference'
+ description: Conferences retrieved successfully
+ getConferenceMemberResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conferenceMember'
+ description: Conference member found
+ listConferenceRecordingsResponse:
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/conferenceRecordingMetadata'
+ type: array
+ description: Conference recordings retrieved successfully
+ getConferenceRecordingResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/conferenceRecordingMetadata'
+ description: Conference recording found
+ voiceBadRequestError:
+ content:
+ application/json:
+ examples:
+ badRequestErrorExample:
+ $ref: '#/components/examples/voiceBadRequestErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Bad Request
+ voiceUnauthorizedError:
+ content:
+ application/json:
+ examples:
+ unauthorizedErrorExample:
+ $ref: '#/components/examples/voiceUnauthorizedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unauthorized
+ voiceForbiddenError:
+ content:
+ application/json:
+ examples:
+ forbiddenErrorExample:
+ $ref: '#/components/examples/voiceForbiddenErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Forbidden
+ voiceNotFoundError:
+ content:
+ application/json:
+ examples:
+ notFoundErrorExample:
+ $ref: '#/components/examples/voiceNotFoundErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Not Found
+ voiceNotAllowedError:
+ content:
+ application/json:
+ examples:
+ notAllowedErrorExample:
+ $ref: '#/components/examples/voiceNotAllowedErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Method Not Allowed
+ voiceConflictError:
+ content:
+ application/json:
+ examples:
+ conflictErrorExample:
+ $ref: '#/components/examples/voiceConflictErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Conflict
+ voiceUnsupportedMediaTypeError:
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Unsupported Media Type
+ voiceTooManyRequestsError:
+ content:
+ application/json:
+ examples:
+ tooManyRequestsErrorExample:
+ $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Too Many Requests
+ headers:
+ Retry-After:
+ description: When you should try your request again.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ voiceInternalServerError:
+ content:
+ application/json:
+ examples:
+ internalServerErrorExample:
+ $ref: '#/components/examples/voiceInternalServerErrorExample'
+ schema:
+ $ref: '#/components/schemas/voiceApiError'
+ description: Internal Server Error
+ voiceCodeResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/voiceCodeResponse'
+ description: OK
+ messagingCodeResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/messagingCodeResponse'
+ description: OK
+ verifyCodeResponse:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/verifyCodeResponse'
+ description: OK
+ mfaBadRequestError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Bad Request
+ mfaUnauthorizedError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaUnauthorizedRequestError'
+ description: Unauthorized
+ mfaForbiddenError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaForbiddenRequestError'
+ description: Forbidden
+ mfaTooManyRequestsError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Too Many Requests
+ mfaInternalServerError:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/mfaRequestError'
+ description: Internal Server Error
+ createLookupResponse:
+ content:
+ application/json:
+ examples:
+ lookupResponseExample:
+ $ref: '#/components/examples/lookupInProgressExample'
+ schema:
+ $ref: '#/components/schemas/createLookupResponse'
+ description: Accepted
+ getLookupResponse:
+ content:
+ application/json:
+ 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'
+ schema:
+ $ref: '#/components/schemas/lookupStatus'
+ description: OK
+ tnLookupBadRequestError:
+ content:
+ application/json:
+ examples:
+ badRequest:
+ summary: Example Bad Request Error
+ value:
+ message: "Some tns do not match e164 format: 1234"
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Bad Request
+ tnLookupUnauthorizedError:
+ content:
+ application/json:
+ examples:
+ unauthorized:
+ summary: Example Unauthorized Error
+ value:
+ message: Unauthorized
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Unauthorized
+ tnLookupForbiddenError:
+ content:
+ application/json:
+ 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=='
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Forbidden
+ tnLookupMediaTypeError:
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Unsupported Media Type Error
+ value:
+ message: Content-Type must be application/json.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Unsupported Media Type
+ tnLookupTooManyRequestsError:
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Too Many Requests Error
+ value:
+ message: Too many requests.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Too Many Requests
+ tnLookupInternalServerError:
+ content:
+ application/json:
+ examples:
+ mediaType:
+ summary: Example Internal Server Error Error
+ value:
+ message: Request has not been passed further.
+ schema:
+ $ref: '#/components/schemas/tnLookupRequestError'
+ description: Internal Server Error
+ schemas:
+ priorityEnum:
+ description: |-
+ The priority specified by the user.
+
+ Not supported on MMS.
+ enum:
+ - default
+ - high
+ example: default
+ type: string
+ messageStatusEnum:
+ 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
+ type: string
+ listMessageDirectionEnum:
+ description: The direction of the message. One of INBOUND OUTBOUND.
+ enum:
+ - INBOUND
+ - OUTBOUND
+ type: string
+ messageDirectionEnum:
+ description: The direction of the message. One of in out.
+ enum:
+ - in
+ - out
+ type: string
+ messageTypeEnum:
+ description: The type of message. Either SMS or MMS.
+ enum:
+ - sms
+ - mms
+ example: sms
+ type: string
+ fieldError:
+ properties:
+ fieldName:
+ description: The name of the field that contains the error
+ example: from
+ type: string
+ description:
+ description: The error associated with the field
+ example: '''+invalid'' must be replaced with a valid E164 formatted telephone
+ number'
+ type: string
+ type: object
+ messagesList:
+ example:
+ pageInfo:
+ prevPageToken: DLAPE902
+ nextPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
+ nextPageToken: GL83PD3C
+ prevPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
+ messages:
+ - sourceTn: +15554443333
+ messageLength: 18
+ campaignId: CJEUMDK
+ messageId: 1589228074636lm4k2je7j7jklbn2
+ errorCode: 9902
+ destinationTn: +15554442222
+ segmentCount: 1
+ messageStatus: RECEIVED
+ receiveTime: 2020-04-07T14:03:07Z
+ accountId: "9900000"
+ messageDirection: null
+ messageType: sms
+ carrierName: other
+ recipientCount: 1
+ campaignClass: T
+ attachmentCount: 1
+ messageSize: 27
+ - sourceTn: +15554443333
+ messageLength: 18
+ campaignId: CJEUMDK
+ messageId: 1589228074636lm4k2je7j7jklbn2
+ errorCode: 9902
+ destinationTn: +15554442222
+ segmentCount: 1
+ messageStatus: RECEIVED
+ receiveTime: 2020-04-07T14:03:07Z
+ accountId: "9900000"
+ messageDirection: null
+ messageType: sms
+ carrierName: other
+ recipientCount: 1
+ campaignClass: T
+ attachmentCount: 1
+ messageSize: 27
+ totalCount: 100
+ properties:
+ totalCount:
+ 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
+ type: integer
+ pageInfo:
+ $ref: '#/components/schemas/pageInfo'
+ messages:
+ items:
+ $ref: '#/components/schemas/listMessageItem'
+ type: array
+ title: MessagesList
+ type: object
+ listMessageItem:
+ example:
+ sourceTn: +15554443333
+ messageLength: 18
+ campaignId: CJEUMDK
+ messageId: 1589228074636lm4k2je7j7jklbn2
+ errorCode: 9902
+ destinationTn: +15554442222
+ segmentCount: 1
+ messageStatus: RECEIVED
+ receiveTime: 2020-04-07T14:03:07Z
+ accountId: "9900000"
+ messageDirection: null
+ messageType: sms
+ carrierName: other
+ recipientCount: 1
+ campaignClass: T
+ attachmentCount: 1
+ messageSize: 27
+ properties:
+ messageId:
+ description: The message id
+ example: 1589228074636lm4k2je7j7jklbn2
+ type: string
+ accountId:
+ description: The account id associated with this message.
+ example: "9900000"
+ type: string
+ sourceTn:
+ description: The source phone number of the message.
+ example: +15554443333
+ type: string
+ destinationTn:
+ description: The recipient phone number of the message.
+ example: +15554442222
+ type: string
+ messageStatus:
+ $ref: '#/components/schemas/messageStatusEnum'
+ messageDirection:
+ $ref: '#/components/schemas/listMessageDirectionEnum'
+ messageType:
+ $ref: '#/components/schemas/messageTypeEnum'
+ segmentCount:
+ description: The number of segments the message was sent as.
+ example: 1
+ type: integer
+ errorCode:
+ description: The numeric error code of the message.
+ example: 9902
+ type: integer
+ receiveTime:
+ description: The ISO 8601 datetime of the message.
+ example: 2020-04-07T14:03:07Z
+ format: date-time
+ type: string
+ carrierName:
+ description: The name of the carrier. Not currently supported for MMS coming
+ soon.
+ example: other
+ nullable: true
+ type: string
+ messageSize:
+ description: The size of the message including message content and headers.
+ example: 27
+ nullable: true
+ type: integer
+ messageLength:
+ description: The length of the message content.
+ example: 18
+ type: integer
+ attachmentCount:
+ description: The number of attachments the message has.
+ example: 1
+ nullable: true
+ type: integer
+ recipientCount:
+ description: The number of recipients the message has.
+ example: 1
+ nullable: true
+ type: integer
+ campaignClass:
+ description: The campaign class of the message if it has one.
+ example: T
+ nullable: true
+ type: string
+ campaignId:
+ description: The campaign ID of the message if it has one.
+ example: CJEUMDK
+ nullable: true
+ type: string
+ title: listMessageItem
+ type: object
+ pageInfo:
+ example:
+ prevPageToken: DLAPE902
+ nextPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
+ nextPageToken: GL83PD3C
+ prevPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
+ properties:
+ prevPage:
+ description: The link to the previous page for pagination.
+ example: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
+ type: string
+ nextPage:
+ description: The link to the next page for pagination.
+ example: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
+ type: string
+ prevPageToken:
+ description: The isolated pagination token for the previous page.
+ example: DLAPE902
+ type: string
+ nextPageToken:
+ description: The isolated pagination token for the next page.
+ example: GL83PD3C
+ type: string
+ title: PageInfo
+ type: object
+ messagingRequestError:
+ properties:
+ type:
+ type: string
+ description:
+ type: string
+ required:
+ - description
+ - type
+ title: MessagingRequestError
+ type: object
+ createMessageRequestError:
+ properties:
+ type:
+ type: string
+ description:
+ type: string
+ fieldErrors:
+ items:
+ $ref: '#/components/schemas/fieldError'
+ type: array
+ required:
+ - description
+ - type
+ title: CreateMessageRequestError
+ type: object
+ media:
+ example:
+ contentLength: 0
+ content: content
+ mediaName: mediaName
+ properties:
+ content:
+ type: string
+ contentLength:
+ type: integer
+ mediaName:
+ type: string
+ title: Media
+ type: object
+ tag:
+ properties:
+ key:
+ type: string
+ value:
+ type: string
+ title: Tag
+ type: object
+ deferredResult:
+ properties:
+ result:
+ type: object
+ setOrExpired:
+ type: boolean
+ title: DeferredResult
+ type: object
+ message:
+ example:
+ owner: +15554443333
+ media:
+ - https://dev.bandwidth.com/images/bandwidth-logo.png
+ priority: default
+ segmentCount: 2
+ from: +15553332222
+ expiration: 2021-02-01T11:29:18-05:00
+ id: 1589228074636lm4k2je7j7jklbn2
+ time: 2022-09-14T18:20:16Z
+ to:
+ - +15552223333
+ text: Hello world
+ tag: custom tag
+ applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
+ direction: null
+ properties:
+ id:
+ description: The id of the message.
+ example: 1589228074636lm4k2je7j7jklbn2
+ type: string
+ owner:
+ description: The Bandwidth phone number associated with the message.
+ example: +15554443333
+ type: string
+ applicationId:
+ description: The application ID associated with the message.
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ time:
+ description: The datetime stamp of the message in ISO 8601
+ example: 2022-09-14T18:20:16Z
+ format: date-time
+ type: string
+ segmentCount:
+ description: The number of segments the original message from the user is
+ broken into before sending over to carrier networks.
+ example: 2
+ type: integer
+ direction:
+ $ref: '#/components/schemas/messageDirectionEnum'
+ to:
+ description: The phone number recipients of the message.
+ example:
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ description: The phone number the message was sent from.
+ example: +15553332222
+ type: string
+ media:
+ 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
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ text:
+ description: The contents of the message.
+ example: Hello world
+ type: string
+ tag:
+ description: The custom string set by the user.
+ example: custom tag
+ type: string
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ expiration:
+ description: The expiration date-time set by the user.
+ example: 2021-02-01T11:29:18-05:00
+ format: date-time
+ type: string
+ title: Message
+ type: object
+ messageRequest:
+ properties:
+ applicationId:
+ description: The ID of the Application your from number is associated with
+ in the Bandwidth Phone Number Dashboard.
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ to:
+ description: The phone number(s) the message should be sent to in E164 format.
+ example:
+ - +15554443333
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ description: One of your telephone numbers the message should come from
+ in E164 format.
+ example: +15551113333
+ type: string
+ text:
+ description: The contents of the text message. Must be 2048 characters or
+ less.
+ example: Hello world
+ maxLength: 2048
+ type: string
+ media:
+ 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
+ items:
+ format: uri
+ maxLength: 4096
+ type: string
+ type: array
+ tag:
+ description: A custom string that will be included in callback events of
+ the message. Max 1024 characters.
+ example: custom string
+ type: string
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ expiration:
+ 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
+ format: date-time
+ type: string
+ required:
+ - applicationId
+ - from
+ - to
+ title: MessageRequest
+ type: object
+ inboundMessageCallback:
+ description: Inbound Message Callback
+ properties:
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ type:
+ example: message-received
+ type: string
+ to:
+ example: +15552223333
+ type: string
+ description:
+ example: Incoming message received
+ type: string
+ message:
+ $ref: '#/components/schemas/inboundMessageCallbackMessage'
+ required:
+ - description
+ - message
+ - time
+ - to
+ - type
+ type: object
+ inboundMessageCallbackMessage:
+ description: Inbound Message Callback Message Schema
+ properties:
+ id:
+ example: 1661365814859loidf7mcwd4qacn7
+ type: string
+ owner:
+ example: +15553332222
+ type: string
+ applicationId:
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ segmentCount:
+ example: 1
+ type: integer
+ direction:
+ $ref: '#/components/schemas/messageDirectionEnum'
+ to:
+ example:
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ example: +15553332222
+ type: string
+ text:
+ example: Hello world
+ type: string
+ tag:
+ example: custom string
+ type: string
+ media:
+ example:
+ - https://dev.bandwidth.com/images/bandwidth-logo.png
+ - https://dev.bandwidth.com/images/github_logo.png
+ items:
+ format: uri
+ type: string
+ type: array
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ required:
+ - applicationId
+ - direction
+ - from
+ - id
+ - owner
+ - segmentCount
+ - text
+ - time
+ - to
+ type: object
+ messageSendingCallback:
+ description: Message Sending Callback
+ properties:
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ type:
+ example: message-sending
+ type: string
+ to:
+ example: +15552223333
+ type: string
+ description:
+ example: Message is sending to carrier
+ type: string
+ message:
+ $ref: '#/components/schemas/messageSendingCallbackMessage'
+ required:
+ - description
+ - message
+ - time
+ - to
+ - type
+ type: object
+ messageSendingCallbackMessage:
+ description: Message Sending Callback Message Schema
+ properties:
+ id:
+ example: 1661365814859loidf7mcwd4qacn7
+ type: string
+ owner:
+ example: +15553332222
+ type: string
+ applicationId:
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ segmentCount:
+ example: 1
+ type: integer
+ direction:
+ $ref: '#/components/schemas/messageDirectionEnum'
+ to:
+ example:
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ example: +15553332222
+ type: string
+ text:
+ example: Hello world
+ type: string
+ tag:
+ example: custom string
+ type: string
+ media:
+ example:
+ - https://dev.bandwidth.com/images/bandwidth-logo.png
+ - https://dev.bandwidth.com/images/github_logo.png
+ items:
+ format: uri
+ type: string
+ type: array
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ required:
+ - applicationId
+ - direction
+ - from
+ - id
+ - media
+ - owner
+ - priority
+ - segmentCount
+ - text
+ - time
+ - to
+ type: object
+ messageDeliveredCallback:
+ description: Message Delivered Callback
+ properties:
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ type:
+ example: message-delivered
+ type: string
+ to:
+ example: +15552223333
+ type: string
+ description:
+ example: Message delivered to carrier.
+ type: string
+ message:
+ $ref: '#/components/schemas/messageDeliveredCallbackMessage'
+ required:
+ - description
+ - message
+ - time
+ - to
+ - type
+ type: object
+ messageDeliveredCallbackMessage:
+ description: Message Delivered Callback Message Schema
+ properties:
+ id:
+ example: 1661365814859loidf7mcwd4qacn7
+ type: string
+ owner:
+ example: +15553332222
+ type: string
+ applicationId:
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ segmentCount:
+ example: 1
+ type: integer
+ direction:
+ $ref: '#/components/schemas/messageDirectionEnum'
+ to:
+ example:
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ example: +15553332222
+ type: string
+ text:
+ example: Hello world
+ type: string
+ tag:
+ example: custom string
+ type: string
+ media:
+ example:
+ - https://dev.bandwidth.com/images/bandwidth-logo.png
+ - https://dev.bandwidth.com/images/github_logo.png
+ items:
+ format: uri
+ type: string
+ type: array
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ required:
+ - applicationId
+ - direction
+ - from
+ - id
+ - owner
+ - segmentCount
+ - tag
+ - text
+ - time
+ - to
+ type: object
+ messageFailedCallback:
+ description: Message Failed Callback
+ properties:
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ type:
+ example: message-failed
+ type: string
+ to:
+ example: +15552223333
+ type: string
+ description:
+ example: rejected-unallocated-from-number
+ type: string
+ message:
+ $ref: '#/components/schemas/messageFailedCallbackMessage'
+ errorCode:
+ example: 9902
+ type: integer
+ required:
+ - description
+ - errorCode
+ - message
+ - time
+ - to
+ - type
+ type: object
+ messageFailedCallbackMessage:
+ description: Message Failed Callback Message Schema
+ properties:
+ id:
+ example: 1661365814859loidf7mcwd4qacn7
+ type: string
+ owner:
+ example: +15553332222
+ type: string
+ applicationId:
+ example: 93de2206-9669-4e07-948d-329f4b722ee2
+ type: string
+ time:
+ example: 2016-09-14T18:20:16Z
+ format: date-time
+ type: string
+ segmentCount:
+ example: 1
+ type: integer
+ direction:
+ $ref: '#/components/schemas/messageDirectionEnum'
+ to:
+ example:
+ - +15552223333
+ items:
+ type: string
+ type: array
+ uniqueItems: true
+ from:
+ example: +15553332222
+ type: string
+ text:
+ example: Hello world
+ type: string
+ tag:
+ example: custom string
+ type: string
+ media:
+ example:
+ - https://dev.bandwidth.com/images/bandwidth-logo.png
+ - https://dev.bandwidth.com/images/github_logo.png
+ items:
+ format: uri
+ type: string
+ type: array
+ priority:
+ $ref: '#/components/schemas/priorityEnum'
+ required:
+ - applicationId
+ - direction
+ - from
+ - id
+ - owner
+ - priority
+ - segmentCount
+ - tag
+ - text
+ - time
+ - to
+ type: object
+ callbackMethodEnum:
+ default: POST
+ description: The HTTP method to use to deliver the callback. GET or POST. Default
+ value is POST.
+ enum:
+ - GET
+ - POST
+ example: POST
+ nullable: true
+ type: string
+ redirectMethodEnum:
+ default: 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`.
+ enum:
+ - GET
+ - POST
+ example: POST
+ nullable: true
+ type: string
+ recordingStateEnum:
+ description: |-
+ The recording state. Possible values:
+
+ `paused` to pause an active recording
+
+ `recording` to resume a paused recording
+ enum:
+ - paused
+ - recording
+ example: paused
+ type: string
+ callDirectionEnum:
+ description: The direction of the call.
+ enum:
+ - inbound
+ - outbound
+ example: inbound
+ type: string
+ fileFormatEnum:
+ description: The format that the recording is stored in.
+ enum:
+ - mp3
+ - wav
+ example: wav
+ type: string
+ callStateEnum:
+ default: active
+ 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
+ enum:
+ - active
+ - completed
+ example: completed
+ nullable: true
+ type: string
+ conferenceStateEnum:
+ default: active
+ description: Setting the conference state to `completed` ends the conference
+ and ejects all members.
+ enum:
+ - active
+ - completed
+ example: completed
+ nullable: true
+ type: string
+ machineDetectionModeEnum:
+ default: 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.
+ enum:
+ - sync
+ - async
+ example: async
+ type: string
+ createCall:
+ properties:
+ to:
+ 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
+ type: string
+ from:
+ description: |-
+ A Bandwidth phone number on your account the call should come
+ from (must be in E.164 format, like `+15555551212`, or be one of the following
+ strings: `Restricted`, `Anonymous`, `Private`, or `Unavailable`).
+ example: +19195554321
+ type: string
+ displayName:
+ description: "The caller display name to use when the call is created. \n\
+ May not exceed 256 characters nor contain control characters such as new\
+ \ lines."
+ example: John Doe
+ maxLength: 256
+ nullable: true
+ type: string
+ uui:
+ 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.
+ example: "eyJhbGciOiJIUzI1NiJ9.WyJoaSJd.-znkjYyCkgz4djmHUPSXl9YrJ6Nix_XvmlwKGFh5ERM;encoding=jwt,aGVsbG8gd29ybGQ;encoding=base64"
+ nullable: true
+ type: string
+ applicationId:
+ description: The id of the application associated with the `from` number.
+ example: 1234-qwer-5679-tyui
+ type: string
+ answerUrl:
+ 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`.
+ example: https://www.myCallbackServer.example/webhooks/answer
+ format: uri
+ maxLength: 2048
+ type: string
+ answerMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ answerFallbackUrl:
+ 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`.
+ example: https://www.myFallbackServer.example/webhooks/answer
+ format: uri
+ maxLength: 2048
+ nullable: true
+ type: string
+ answerFallbackMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ fallbackUsername:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackPassword:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ disconnectUrl:
+ description: The URL to send the Disconnect
+ event to when the call ends. This event does not expect a BXML response.
+ example: https://www.myCallbackServer.example/webhooks/disconnect
+ format: uri
+ maxLength: 2048
+ nullable: true
+ type: string
+ disconnectMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ callTimeout:
+ default: 30
+ 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.
+ example: 30
+ format: double
+ maximum: 300
+ minimum: 1
+ nullable: true
+ type: number
+ callbackTimeout:
+ default: 15
+ 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.
+ example: 15
+ format: double
+ maximum: 25
+ minimum: 1
+ nullable: true
+ type: number
+ machineDetection:
+ $ref: '#/components/schemas/machineDetectionConfiguration'
+ priority:
+ 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
+ maximum: 5
+ minimum: 1
+ nullable: true
+ type: integer
+ tag:
+ 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.
+ example: arbitrary text here
+ maxLength: 256
+ nullable: true
+ type: string
+ required:
+ - answerUrl
+ - applicationId
+ - from
+ - to
+ type: object
+ createCallResponse:
+ example:
+ callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ answerUrl: https://myServer.example/bandwidth/webhooks/answer
+ callUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ callbackTimeout: 15
+ answerFallbackMethod: POST
+ answerFallbackUrl: https://myFallbackServer.example/bandwidth/webhooks/answer
+ callTimeout: 30
+ priority: 5
+ disconnectMethod: POST
+ accountId: "9900000"
+ password: mySecretPassword1!
+ answerMethod: POST
+ enqueuedTime: 2022-06-16T13:15:07.16Z
+ disconnectUrl: https://myServer.example/bandwidth/webhooks/disconnect
+ from: +19195554321
+ fallbackPassword: mySecretPassword1!
+ to: +19195551234
+ tag: My custom tag value
+ applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
+ username: mySecretUsername
+ fallbackUsername: mySecretUsername
+ properties:
+ applicationId:
+ description: The id of the application associated with the `from` number.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ accountId:
+ description: The bandwidth account ID associated with the call.
+ example: "9900000"
+ type: string
+ callId:
+ description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ to:
+ description: Recipient of the outgoing call.
+ example: +19195551234
+ type: string
+ from:
+ description: Phone number that created the outbound call.
+ example: +19195554321
+ type: string
+ enqueuedTime:
+ description: The time at which the call was accepted into the queue.
+ example: 2022-06-16T13:15:07.16Z
+ format: date-time
+ nullable: true
+ type: string
+ callUrl:
+ description: The URL to update this call's state.
+ example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ format: uri
+ type: string
+ callTimeout:
+ description: The timeout (in seconds) for the callee to answer the call
+ after it starts ringing.
+ example: 30
+ format: double
+ type: number
+ callbackTimeout:
+ description: This is the timeout (in seconds) to use when delivering webhooks
+ for the call.
+ example: 15
+ format: double
+ type: number
+ tag:
+ description: Custom tag value.
+ example: My custom tag value
+ nullable: true
+ type: string
+ answerMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ answerUrl:
+ description: URL to deliver the `answer` event webhook.
+ example: https://myServer.example/bandwidth/webhooks/answer
+ format: uri
+ type: string
+ answerFallbackMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ answerFallbackUrl:
+ description: Fallback URL to deliver the `answer` event webhook.
+ example: https://myFallbackServer.example/bandwidth/webhooks/answer
+ format: uri
+ nullable: true
+ type: string
+ disconnectMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ disconnectUrl:
+ description: URL to deliver the `disconnect` event webhook.
+ example: https://myServer.example/bandwidth/webhooks/disconnect
+ format: uri
+ nullable: true
+ type: string
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackUsername:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackPassword:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ priority:
+ description: The priority of this call over other calls from your account.
+ example: 5
+ nullable: true
+ type: integer
+ required:
+ - accountId
+ - answerMethod
+ - answerUrl
+ - applicationId
+ - callId
+ - callUrl
+ - disconnectMethod
+ - from
+ - to
+ type: object
+ callState:
+ example:
+ callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ answerTime: 2022-06-16T13:15:18.126Z
+ parentCallId: c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ disconnectCause: disconnectCause
+ errorMessage: errorMessage
+ accountId: "9900000"
+ identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9idy1zaGFrZW4tY2VydC1wdWIuczMuYW1hem9uYXdzLmNvbS9iYW5kd2lkdGgtc2hha2VuLWNlcnRfMjAyMzA3MTYucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxOTg0MjgyMDI4MCJdfSwiaWF0IjoxNjU2NTM0MzM2LCJvcmlnIjp7InRuIjoiMTkxOTQ0NDI2ODMifSwib3JpZ2lkIjoiNDk0NTlhOGEtNDJmNi0zNTFjLTkzNjEtYWRmNTdhOWUwOGNhIn0.56un9sRw_uH-sbJvnUsqdevlVxbOVjn8MVlGTlBMicjaZuRRwxfiNp-C9zYCMKTTCbc-QdYPN05F61XNVN4D3w;info=;alg=ES256;ppt=shaken
+ enqueuedTime: 2022-06-16T13:15:07.16Z
+ lastUpdate: 2022-06-16T13:15:18.314Z
+ stirShaken:
+ verstat: TN-Verification-Passed
+ attestationIndicator: A
+ originatingId: abc123
+ from: "19195554321"
+ startTime: 2022-06-16T13:15:07.16Z
+ to: +19195551234
+ state: disconnected
+ endTime: 2022-06-16T13:15:18.314Z
+ errorId: errorId
+ applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
+ direction: inbound
+ properties:
+ applicationId:
+ description: The application id associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ accountId:
+ description: The account id associated with the call.
+ example: "9900000"
+ type: string
+ callId:
+ description: The programmable voice API call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ parentCallId:
+ 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
+ nullable: true
+ type: string
+ to:
+ 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
+ type: string
+ from:
+ description: "The phone number that made the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: "19195554321"
+ type: string
+ 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.
+ example: disconnected
+ type: string
+ stirShaken:
+ additionalProperties:
+ type: string
+ 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).
+ example:
+ verstat: TN-Verification-Passed
+ attestationIndicator: A
+ originatingId: abc123
+ nullable: true
+ type: object
+ identity:
+ 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
+ nullable: true
+ type: string
+ enqueuedTime:
+ description: The time this call was placed in queue.
+ example: 2022-06-16T13:15:07.16Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ 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.16Z
+ format: date-time
+ nullable: true
+ type: string
+ answerTime:
+ description: "Populated once the call has been answered, with the time in\
+ \ ISO 8601 format."
+ example: 2022-06-16T13:15:18.126Z
+ format: date-time
+ nullable: true
+ type: string
+ endTime:
+ description: "Populated once the call has ended, with the time in ISO 8601\
+ \ format."
+ example: 2022-06-16T13:15:18.314Z
+ format: date-time
+ nullable: true
+ type: string
+ disconnectCause:
+ 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.
+ nullable: true
+ type: string
+ errorMessage:
+ description: "Populated only if the call ended with an error, with text\
+ \ explaining the reason."
+ nullable: true
+ type: string
+ example: null
+ errorId:
+ description: "Populated only if the call ended with an error, with a Bandwidth\
+ \ internal id that references the error event."
+ nullable: true
+ type: string
+ example: null
+ lastUpdate:
+ description: "The last time the call had a state update, in ISO 8601 format."
+ example: 2022-06-16T13:15:18.314Z
+ format: date-time
+ type: string
+ type: object
+ updateCall:
+ 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`.
+ example: https://myServer.example/bandwidth/webhooks/redirect
+ format: uri
+ nullable: true
+ type: string
+ redirectMethod:
+ $ref: '#/components/schemas/redirectMethodEnum'
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ redirectFallbackUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ redirectFallbackMethod:
+ $ref: '#/components/schemas/redirectMethodEnum'
+ fallbackUsername:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackPassword:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ tag:
+ 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`.
+ example: My Custom Tag
+ maxLength: 256
+ nullable: true
+ type: string
+ type: object
+ updateCallRecording:
+ properties:
+ state:
+ $ref: '#/components/schemas/recordingStateEnum'
+ required:
+ - state
+ type: object
+ accountStatistics:
+ example:
+ currentCallQueueSize: 0
+ maxCallQueueSize: 900
+ properties:
+ currentCallQueueSize:
+ description: The number of calls currently enqueued.
+ example: 0
+ type: integer
+ maxCallQueueSize:
+ description: The maximum size of the queue before outgoing calls start being
+ rejected.
+ example: 900
+ type: integer
+ type: object
+ callRecordingMetadata:
+ example:
+ callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ mediaUrl: 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
+ transcription:
+ completedTime: 2022-06-13T18:46:29.715Z
+ id: t-387bd648-18f3-4823-9d16-746bca0003c9
+ url: 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
+ status: completed
+ parentCallId: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
+ transferCallerId: +15555555555
+ transferTo: +15555555555)
+ duration: PT13.67S
+ accountId: "920012"
+ channels: 1
+ from: +15555555555
+ startTime: 2022-06-17T22:19:40.375Z
+ to: +15555555555
+ endTime: 2022-06-17T22:20:00Z
+ applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
+ recordingId: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ fileFormat: wav
+ direction: inbound
+ status: completed
+ properties:
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ parentCallId:
+ 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
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ channels:
+ description: Always `1` for conference recordings; multi-channel recordings
+ are not supported on conferences.
+ example: 1
+ format: int32
+ type: integer
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ status:
+ 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
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ transcription:
+ $ref: '#/components/schemas/transcriptionMetadata'
+ type: object
+ conference:
+ example:
+ conferenceEventMethod: POST
+ activeMembers:
+ - callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ callIdsToCoach:
+ - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ memberUrl: 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: false
+ hold: false
+ - callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ callIdsToCoach:
+ - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ memberUrl: 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: false
+ hold: false
+ conferenceEventUrl: https://myServer.example/bandwidth/webhooks/conferenceEvent
+ completedTime: 2022-06-17T22:20:00Z
+ name: my-conference-name
+ createdTime: 2022-06-17T22:19:40.375Z
+ id: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ tag: my custom tag
+ properties:
+ id:
+ description: The Bandwidth-generated conference ID.
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: "The name of the conference, as specified by your application."
+ example: my-conference-name
+ type: string
+ createdTime:
+ description: "The time the conference was initiated, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ completedTime:
+ description: "The time the conference was terminated, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ conferenceEventUrl:
+ description: The URL to send the conference-related events.
+ example: https://myServer.example/bandwidth/webhooks/conferenceEvent
+ format: uri
+ nullable: true
+ type: string
+ conferenceEventMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ tag:
+ description: The custom string attached to the conference that will be sent
+ with callbacks.
+ example: my custom tag
+ nullable: true
+ type: string
+ activeMembers:
+ 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).
+ items:
+ $ref: '#/components/schemas/conferenceMember'
+ nullable: true
+ type: array
+ type: object
+ updateConference:
+ properties:
+ status:
+ $ref: '#/components/schemas/conferenceStateEnum'
+ redirectUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ redirectMethod:
+ $ref: '#/components/schemas/redirectMethodEnum'
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ redirectFallbackUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ redirectFallbackMethod:
+ $ref: '#/components/schemas/redirectMethodEnum'
+ fallbackUsername:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackPassword:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ type: object
+ conferenceMember:
+ example:
+ callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ callIdsToCoach:
+ - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ memberUrl: 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: false
+ hold: false
+ properties:
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ memberUrl:
+ 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
+ type: string
+ mute:
+ 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
+ type: boolean
+ hold:
+ 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
+ type: boolean
+ callIdsToCoach:
+ 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
+ items:
+ type: string
+ nullable: true
+ type: array
+ type: object
+ updateConferenceMember:
+ properties:
+ mute:
+ 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
+ type: boolean
+ hold:
+ 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
+ type: boolean
+ callIdsToCoach:
+ 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
+ items:
+ type: string
+ nullable: true
+ type: array
+ type: object
+ conferenceRecordingMetadata:
+ example:
+ duration: PT13.67S
+ accountId: "920012"
+ channels: 1
+ mediaUrl: 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
+ conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ name: my-conference-name
+ startTime: 2022-06-17T22:19:40.375Z
+ endTime: 2022-06-17T22:20:00Z
+ recordingId: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ fileFormat: wav
+ status: completed
+ properties:
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ channels:
+ description: Always `1` for conference recordings; multi-channel recordings
+ are not supported on conferences.
+ example: 1
+ format: int32
+ type: integer
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ status:
+ 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
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ type: object
+ machineDetectionConfiguration:
+ description: The machine detection request used to perform machine
+ detection on the call.
+ properties:
+ mode:
+ $ref: '#/components/schemas/machineDetectionModeEnum'
+ detectionTimeout:
+ default: 15
+ 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.
+ example: 15
+ format: double
+ nullable: true
+ type: number
+ silenceTimeout:
+ default: 10
+ description: "If no speech is detected in this period, a callback with a\
+ \ 'silence' result is sent."
+ example: 10
+ format: double
+ nullable: true
+ type: number
+ speechThreshold:
+ default: 10
+ 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'.
+ example: 10
+ format: double
+ nullable: true
+ type: number
+ speechEndThreshold:
+ default: 5
+ description: Amount of silence (in seconds) before assuming the callee has
+ finished speaking.
+ example: 5
+ format: double
+ nullable: true
+ type: number
+ machineSpeechEndThreshold:
+ description: "When an answering machine is detected, the amount of silence\
+ \ (in seconds) before assuming the message has finished playing. \nIf\
+ \ not provided it will default to the speechEndThreshold value."
+ example: 5
+ format: double
+ nullable: true
+ type: number
+ delayResult:
+ default: false
+ 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.
+ example: false
+ nullable: true
+ type: boolean
+ callbackUrl:
+ description: The URL to send the 'machineDetectionComplete' webhook when
+ the detection is completed. Only for 'async' mode.
+ example: https://myServer.example/bandwidth/webhooks/machineDetectionComplete
+ format: uri
+ maxLength: 2048
+ nullable: true
+ type: string
+ callbackMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackUrl:
+ description: |-
+ A fallback URL which, if provided, will be used to retry the
+ machine detection complete webhook delivery in case `callbackUrl` fails
+ to respond
+ example: https://myFallbackServer.example/bandwidth/webhooks/machineDetectionComplete
+ format: uri
+ maxLength: 2048
+ nullable: true
+ type: string
+ fallbackMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ fallbackUsername:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ fallbackPassword:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ type: object
+ transcribeRecording:
+ properties:
+ callbackUrl:
+ 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
+ format: uri
+ type: string
+ callbackMethod:
+ $ref: '#/components/schemas/callbackMethodEnum'
+ username:
+ description: Basic auth username.
+ example: mySecretUsername
+ maxLength: 1024
+ nullable: true
+ type: string
+ password:
+ description: Basic auth password.
+ example: mySecretPassword1!
+ maxLength: 1024
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ callbackTimeout:
+ 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
+ format: double
+ maximum: 25
+ minimum: 1
+ nullable: true
+ type: number
+ detectLanguage:
+ default: false
+ 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."
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ transcriptionList:
+ example:
+ transcripts:
+ - confidence: 0.9
+ text: "Nice talking to you, friend!"
+ - confidence: 0.9
+ text: "Nice talking to you, friend!"
+ properties:
+ transcripts:
+ items:
+ $ref: '#/components/schemas/transcription'
+ type: array
+ type: object
+ transcriptionMetadata:
+ description: "If the recording was transcribed, metadata about the transcription"
+ example:
+ completedTime: 2022-06-13T18:46:29.715Z
+ id: t-387bd648-18f3-4823-9d16-746bca0003c9
+ url: 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
+ status: completed
+ nullable: true
+ properties:
+ id:
+ description: The unique transcription ID
+ example: t-387bd648-18f3-4823-9d16-746bca0003c9
+ type: string
+ status:
+ 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
+ type: string
+ completedTime:
+ description: The time that the transcription was completed
+ example: 2022-06-13T18:46:29.715Z
+ type: string
+ url:
+ 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
+ format: uri
+ type: string
+ type: object
+ voiceApiError:
+ properties:
+ type:
+ type: string
+ description:
+ type: string
+ id:
+ nullable: true
+ type: string
+ type: object
+ answerCallback:
+ description: The Answer event is sent to the answerUrl specified in the createCall
+ request when an outbound call is answered.
+ properties:
+ eventType:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ machineDetectionResult:
+ $ref: '#/components/schemas/machineDetectionResult'
+ type: object
+ bridgeCompleteCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ cause:
+ 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
+ type: string
+ errorMessage:
+ 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
+ type: string
+ errorId:
+ description: Bandwidth's internal id that references the error event.
+ example: 4642074b-7b58-478b-96e4-3a60955c6765
+ nullable: true
+ type: string
+ type: object
+ bridgeTargetCompleteCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceCreatedCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceRedirectCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceMemberJoinCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceMemberExitCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceCompletedCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ conferenceRecordingAvailableCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that\
+ \ was recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ channels:
+ description: Always `1` for conference recordings; multi-channel recordings
+ are not supported on conferences.
+ example: 1
+ format: int32
+ type: integer
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ status:
+ 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
+ type: string
+ type: object
+ disconnectCallback:
+ description: "The Disconnect event is fired when a call ends, for any reason."
+ properties:
+ eventType:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ cause:
+ 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
+ type: string
+ errorMessage:
+ 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
+ type: string
+ errorId:
+ description: Bandwidth's internal id that references the error event.
+ example: 4642074b-7b58-478b-96e4-3a60955c6765
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ dtmfCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ digit:
+ description: The digit collected in the call.
+ example: "2"
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ parentCallId:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ gatherCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ digits:
+ 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"
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ parentCallId:
+ 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
+ type: string
+ terminatingDigit:
+ description: (optional) The digit the user pressed to end the gather. Empty
+ string value if no terminating digit was pressed.
+ example: '#'
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ tag:
+ 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
+ type: string
+ type: object
+ initiateCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ diversion:
+ $ref: '#/components/schemas/diversion'
+ stirShaken:
+ $ref: '#/components/schemas/stirShaken'
+ type: object
+ machineDetectionCompleteCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ machineDetectionResult:
+ $ref: '#/components/schemas/machineDetectionResult'
+ type: object
+ recordingCompleteCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ parentCallId:
+ 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
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ channels:
+ description: Always `1` for conference recordings; multi-channel recordings
+ are not supported on conferences.
+ example: 1
+ format: int32
+ type: integer
+ tag:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ type: object
+ recordingAvailableCallback:
+ description: The Recording Available event is sent after a recording has been
+ processed. It indicates that the recording is available for download.
+ properties:
+ eventType:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ parentCallId:
+ 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
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ channels:
+ 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
+ type: string
+ tag:
+ 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
+ type: string
+ status:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ type: object
+ redirectCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ parentCallId:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ type: object
+ transcriptionAvailableCallback:
+ description: The Transcription Available event is sent when the recording transcription
+ is available to be downloaded.
+ properties:
+ eventType:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ parentCallId:
+ 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
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ fileFormat:
+ $ref: '#/components/schemas/fileFormatEnum'
+ tag:
+ 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
+ type: string
+ transcription:
+ $ref: '#/components/schemas/transcription'
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ type: object
+ transferAnswerCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ type: object
+ transferCompleteCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ tag:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ cause:
+ 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
+ type: string
+ errorMessage:
+ 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
+ type: string
+ errorId:
+ description: Bandwidth's internal id that references the error event.
+ example: 4642074b-7b58-478b-96e4-3a60955c6765
+ nullable: true
+ type: string
+ type: object
+ transferDisconnectCallback:
+ 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:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number\
+ \ in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ direction:
+ $ref: '#/components/schemas/callDirectionEnum'
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ parentCallId:
+ 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
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ tag:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call,\
+ \ in E.164 format (e.g. +15555555555) or one of Restricted, Anonymous,\
+ \ Private, or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ cause:
+ 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
+ type: string
+ errorMessage:
+ 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
+ type: string
+ errorId:
+ description: Bandwidth's internal id that references the error event.
+ example: 4642074b-7b58-478b-96e4-3a60955c6765
+ nullable: true
+ type: string
+ type: object
+ eventType:
+ 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
+ type: string
+ eventTime:
+ 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
+ format: date-time
+ type: string
+ accountId:
+ description: The user account associated with the call.
+ example: "920012"
+ type: string
+ applicationId:
+ description: The id of the application associated with the call.
+ example: 04e88489-df02-4e34-a0ee-27a91849555f
+ type: string
+ to:
+ description: "The phone number that received the call, in E.164 format (e.g.\
+ \ +15555555555)."
+ example: +15555555555
+ type: string
+ from:
+ description: "The provided identifier of the caller: can be a phone number in\
+ \ E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable,\
+ \ or Anonymous."
+ example: +15555555555
+ type: string
+ conferenceId:
+ description: "The unique, Bandwidth-generated ID of the conference that was\
+ \ recorded"
+ example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
+ type: string
+ name:
+ description: The user-specified name of the conference that was recorded
+ example: my-conference-name
+ type: string
+ recordingId:
+ description: The unique ID of this recording
+ example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
+ type: string
+ duration:
+ description: The duration of the recording in ISO-8601 format
+ example: PT13.67S
+ type: string
+ channels:
+ description: Always `1` for conference recordings; multi-channel recordings
+ are not supported on conferences.
+ example: 1
+ format: int32
+ type: integer
+ digit:
+ description: The digit collected in the call.
+ example: "2"
+ type: string
+ digits:
+ 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"
+ type: string
+ terminatingDigit:
+ description: (optional) The digit the user pressed to end the gather. Empty
+ string value if no terminating digit was pressed.
+ example: '#'
+ type: string
+ startTime:
+ description: "Time the call was started, in ISO 8601 format."
+ example: 2022-06-17T22:19:40.375Z
+ format: date-time
+ type: string
+ enqueuedTime:
+ 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:00Z
+ format: date-time
+ nullable: true
+ type: string
+ answerTime:
+ description: "Time the call was answered, in ISO 8601 format."
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ nullable: true
+ type: string
+ endTime:
+ description: The time that the recording ended in ISO-8601 format
+ example: 2022-06-17T22:20:00Z
+ format: date-time
+ type: string
+ status:
+ 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
+ type: string
+ transferCallerId:
+ description: "The phone number used as the from field of the B-leg call, in\
+ \ E.164 format (e.g. +15555555555) or one of Restricted, Anonymous, Private,\
+ \ or Unavailable."
+ example: +15555555555
+ type: string
+ transferTo:
+ description: "The phone number used as the to field of the B-leg call, in E.164\
+ \ format (e.g. +15555555555)."
+ example: +15555555555)
+ type: string
+ mediaUrl:
+ 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
+ format: uri
+ nullable: true
+ type: string
+ callId:
+ description: The call id associated with the event.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ callUrl:
+ 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
+ type: string
+ parentCallId:
+ 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
+ type: string
+ tag1:
+ 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
+ type: string
+ cause:
+ 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
+ type: string
+ errorMessage:
+ 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
+ type: string
+ errorId:
+ description: Bandwidth's internal id that references the error event.
+ example: 4642074b-7b58-478b-96e4-3a60955c6765
+ nullable: true
+ type: string
+ machineDetectionResult:
+ 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"
+ nullable: true
+ properties:
+ value:
+ description: "Possible values are answering-machine, human, silence, timeout,\
+ \ or error."
+ example: answering-machine
+ type: string
+ duration:
+ description: The amount of time it took to determine the result.
+ example: PT4.9891287S
+ type: string
+ type: object
+ diversion:
+ properties:
+ reason:
+ 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
+ type: string
+ privacy:
+ description: off or full
+ example: "off"
+ type: string
+ screen:
+ description: "No if the number was provided by the user, yes if the number\
+ \ was provided by the network"
+ example: "no"
+ type: string
+ counter:
+ description: The number of diversions that have occurred
+ example: "2"
+ type: string
+ limit:
+ description: The maximum number of diversions allowed for this session
+ example: "3"
+ type: string
+ unknown:
+ 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
+ type: string
+ origTo:
+ description: Always present. Indicates the last telephone number that the
+ call was diverted from.
+ example: +15558884444
+ type: string
+ type: object
+ transcription:
+ example:
+ confidence: 0.9
+ text: "Nice talking to you, friend!"
+ properties:
+ text:
+ description: The transcribed text
+ example: "Nice talking to you, friend!"
+ type: string
+ confidence:
+ description: "The confidence on the recognized content, ranging from `0.0`\
+ \ to `1.0` with `1.0` being the highest confidence."
+ example: 0.9
+ format: double
+ type: number
+ type: object
+ stirShaken:
+ properties:
+ verstat:
+ 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
+ type: string
+ attestationIndicator:
+ description: "(optional) The attestation level verified by Bandwidth. Possible\
+ \ values are A (full), B (partial) or C (gateway)."
+ example: A
+ type: string
+ originatingId:
+ description: (optional) A unique origination identifier.
+ example: 99759086-1335-11ed-9bcf-5f7d464e91af
+ type: string
+ type: object
+ codeRequest:
+ properties:
+ to:
+ description: The phone number to send the mfa code to.
+ example: +19195551234
+ pattern: "^\\+[1-9]\\d{1,14}$"
+ type: string
+ from:
+ description: "The application phone number, the sender of the mfa code."
+ example: +19195554321
+ maxLength: 32
+ pattern: "^\\+[1-9]\\d{1,14}$"
+ type: string
+ applicationId:
+ description: "The application unique ID, obtained from Bandwidth."
+ example: 66fd98ae-ac8d-a00f-7fcd-ba3280aeb9b1
+ maxLength: 50
+ type: string
+ scope:
+ description: "An optional field to denote what scope or action the mfa code\
+ \ is addressing. If not supplied, defaults to \"2FA\"."
+ example: 2FA
+ maxLength: 25
+ type: string
+ message:
+ 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."
+ example: "Your temporary {NAME} {SCOPE} code is {CODE}"
+ maxLength: 2048
+ type: string
+ digits:
+ description: "The number of digits for your mfa code. The valid number\
+ \ ranges from 2 to 8, inclusively."
+ example: 6
+ maximum: 8
+ minimum: 4
+ type: integer
+ required:
+ - applicationId
+ - digits
+ - from
+ - message
+ - to
+ type: object
+ voiceCodeResponse:
+ example:
+ callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ properties:
+ callId:
+ description: Programmable Voice API Call ID.
+ example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
+ type: string
+ type: object
+ messagingCodeResponse:
+ example:
+ messageId: 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6
+ properties:
+ messageId:
+ description: Messaging API Message ID.
+ example: 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6
+ type: string
+ type: object
+ verifyCodeRequest:
+ properties:
+ to:
+ description: The phone number to send the mfa code to.
+ example: +19195551234
+ pattern: "^\\+[1-9]\\d{1,14}$"
+ type: string
+ scope:
+ description: "An optional field to denote what scope or action the mfa code\
+ \ is addressing. If not supplied, defaults to \"2FA\"."
+ example: 2FA
+ type: string
+ expirationTimeInMinutes:
+ 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."
+ example: 3
+ maximum: 15
+ minimum: 1
+ type: number
+ code:
+ description: The generated mfa code to check if valid.
+ example: "123456"
+ maxLength: 8
+ minLength: 4
+ type: string
+ required:
+ - code
+ - expirationTimeInMinutes
+ - to
+ type: object
+ verifyCodeResponse:
+ example:
+ valid: true
+ properties:
+ valid:
+ description: Whether or not the supplied code is valid.
+ example: true
+ type: boolean
+ type: object
+ mfaRequestError:
+ properties:
+ error:
+ description: A message describing the error with your request.
+ example: 400 Request is malformed or invalid
+ type: string
+ requestId:
+ description: The associated requestId from AWS.
+ example: 354cc8a3-6701-461e-8fa7-8671703dd898
+ type: string
+ type: object
+ mfaUnauthorizedRequestError:
+ properties:
+ message:
+ description: Unauthorized
+ example: Unauthorized
+ type: string
+ type: object
+ mfaForbiddenRequestError:
+ properties:
+ message:
+ description: The message containing the reason behind the request being
+ forbidden.
+ example: Missing Authentication Token
+ type: string
+ type: object
+ lookupStatusEnum:
+ description: "The status of the request (IN_PROGRESS, COMPLETE, PARTIAL_COMPLETE,\
+ \ or FAILED)."
+ enum:
+ - IN_PROGRESS
+ - COMPLETE
+ - PARTIAL_COMPLETE
+ - FAILED
+ example: COMPLETE
+ type: string
+ lookupRequest:
+ description: Create phone number lookup request.
+ properties:
+ tns:
+ items:
+ type: string
+ type: array
+ required:
+ - tns
+ type: object
+ createLookupResponse:
+ description: "The request has been accepted for processing but not yet finished\
+ \ and in a terminal state (COMPLETE, PARTIAL_COMPLETE, or FAILED)."
+ example:
+ requestId: requestId
+ status: COMPLETE
+ properties:
+ requestId:
+ description: The phone number lookup request ID from Bandwidth.
+ type: string
+ status:
+ $ref: '#/components/schemas/lookupStatusEnum'
+ type: object
+ lookupStatus:
+ 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."
+ example:
+ result:
+ - E.164 Format: +19195551234
+ Formatted: (919) 555-1234
+ Line Provider: Verizon Wireless
+ Message: NOERROR
+ Line Type: Mobile
+ Country: US
+ Mobile Country Code: "310"
+ Mobile Network Code: "010"
+ Response Code: 0
+ - E.164 Format: +19195551234
+ Formatted: (919) 555-1234
+ Line Provider: Verizon Wireless
+ Message: NOERROR
+ Line Type: Mobile
+ Country: US
+ Mobile Country Code: "310"
+ Mobile Network Code: "010"
+ Response Code: 0
+ requestId: 004223a0-8b17-41b1-bf81-20732adf5590
+ failedTelephoneNumbers:
+ - +191955512345
+ status: COMPLETE
+ properties:
+ requestId:
+ description: The requestId.
+ example: 004223a0-8b17-41b1-bf81-20732adf5590
+ type: string
+ status:
+ $ref: '#/components/schemas/lookupStatusEnum'
+ result:
+ description: The carrier information results for the specified telephone
+ number.
+ items:
+ $ref: '#/components/schemas/lookupResult'
+ type: array
+ failedTelephoneNumbers:
+ description: The telephone numbers whose lookup failed.
+ example:
+ - +191955512345
+ items:
+ type: string
+ type: array
+ type: object
+ lookupResult:
+ description: Carrier information results for the specified telephone number.
+ example:
+ E.164 Format: +19195551234
+ Formatted: (919) 555-1234
+ Line Provider: Verizon Wireless
+ Message: NOERROR
+ Line Type: Mobile
+ Country: US
+ Mobile Country Code: "310"
+ Mobile Network Code: "010"
+ Response Code: 0
+ properties:
+ Response Code:
+ description: Our vendor's response code.
+ example: 0
+ type: integer
+ Message:
+ description: Message associated with the response code.
+ example: NOERROR
+ type: string
+ E.164 Format:
+ description: The telephone number in E.164 format.
+ example: +19195551234
+ type: string
+ Formatted:
+ description: The formatted version of the telephone number.
+ example: (919) 555-1234
+ type: string
+ Country:
+ description: The country of the telephone number.
+ example: US
+ type: string
+ Line Type:
+ description: The line type of the telephone number.
+ example: Mobile
+ type: string
+ Line Provider:
+ description: The messaging service provider of the telephone number.
+ example: Verizon Wireless
+ type: string
+ Mobile Country Code:
+ description: The first half of the Home Network Identity (HNI).
+ example: "310"
+ type: string
+ Mobile Network Code:
+ description: The second half of the HNI.
+ example: "010"
+ type: string
+ type: object
+ tnLookupRequestError:
+ properties:
+ message:
+ description: A description of what validation error occurred.
+ example: example error message
+ type: string
+ type: object
+ securitySchemes:
+ 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==`
+ scheme: basic
+ type: http
+
diff --git a/bandwidth.yml b/bandwidth.yml
new file mode 100644
index 00000000..1cbcd06f
--- /dev/null
+++ b/bandwidth.yml
@@ -0,0 +1,5626 @@
+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: 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'
+ 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':
+ description: Call 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'
+ '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':
+ description: Recording state 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}/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 transcribed 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: getCallTranscription
+ parameters:
+ - $ref: '#/components/parameters/accountId'
+ - $ref: '#/components/parameters/callId'
+ - $ref: '#/components/parameters/recordingId'
+ 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'
+ 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: deleteCallTranscription
+ 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}/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':
+ description: Not Found
+ '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: >-
+ One of your telephone numbers the message should come from in E164
+ format.
+ 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
+ - priority
+ 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
+ - priority
+ 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.