Bandwidth website screenshot

Bandwidth

Bandwidth is a leading cloud-based communications platform providing voice, messaging, emergency calling, phone number management, multi-factor authentication, and toll-free verification APIs. Built on Bandwidth's own Tier 1 network, the platform delivers enterprise-grade reliability for CPaaS applications.

6 APIs 16 Features
CommunicationsCPaaSVoiceMessagingTelephonySMSMFA

APIs

Bandwidth Voice API

The Bandwidth Voice API enables developers to programmatically make and receive phone calls, manage call recordings, and create multi-party conferences. It supports advanced cal...

Bandwidth Messaging API

The Bandwidth Messaging API allows developers to send and receive SMS and MMS messages programmatically. It supports both toll-free and local number messaging, group messaging, ...

Bandwidth Phone Numbers API

The Bandwidth Phone Numbers API provides programmatic access to search, order, and manage phone numbers across the United States and Canada. Developers can search for available ...

Bandwidth Multi-Factor Authentication API

The Bandwidth Multi-Factor Authentication API allows developers to generate and verify secure MFA codes delivered via voice calls or SMS messages. It leverages Bandwidth's Voice...

Bandwidth Emergency Calling API

The Bandwidth Emergency Calling API provides programmatic access to provision and manage 911 endpoints and locations for emergency services routing. It supports Dynamic Location...

Bandwidth Toll-Free Verification API

The Bandwidth Toll-Free Verification API enables developers to programmatically submit and manage toll-free number verification requests for A2P messaging compliance. It automat...

Collections

GraphQL

Bandwidth GraphQL Schema

This document describes a conceptual GraphQL schema for the Bandwidth cloud communications platform. Bandwidth provides voice, messaging, phone number management, multi-factor a...

GRAPHQL

Pricing Plans

Bandwidth Plans Pricing

2 plans

PLANS

Rate Limits

Bandwidth Rate Limits

3 limits

RATE LIMITS

FinOps

Features

SMS 10DLC outbound: $0.004/message
MMS 10DLC outbound: $0.015/message
SMS Short Code: $0.008/msg out, MMS Short Code: $0.020
SMS Toll-free: $0.007/msg out
Voice US Local: $0.010 outbound, $0.0055 inbound per minute
Tier 1 carrier with own network and interconnects
REST API for Messaging and Voice
Default 10 messages/sec and 10 calls/sec
OAuth + API keys
Webhooks for delivery receipts and inbound events
BXML for voice IVR scripting
Verify API for OTP
Number Management API
Phone Number Insight (line-type lookup)
Iris API for porting and management
Enterprise committed-use volume contracts

Use Cases

Click-to-Call

Embed outbound calling in web and mobile applications.

IVR Systems

Build interactive voice response menus with DTMF input and TTS.

A2P Messaging

Send application-to-person SMS campaigns at scale.

2FA / OTP

Add SMS or voice-based multi-factor authentication to applications.

Number Provisioning

Automate phone number procurement and assignment for customers.

E911 Compliance

Meet Kari's Law and RAY BAUM's Act requirements for enterprise voice.

Call Center

Build inbound/outbound contact center applications with recording.

Number Porting

Migrate existing phone numbers to Bandwidth programmatically.

Event Specifications

Bandwidth Messaging Events

Bandwidth Messaging API sends webhooks to your application for real-time message delivery notifications and inbound message alerts. Callbacks are sent via HTTP POST to the callb...

ASYNCAPI

Bandwidth Voice Events

Bandwidth Voice API sends webhooks (BXML callbacks) to your application for real-time call event notifications. These webhooks inform your application of call state changes and ...

ASYNCAPI

Semantic Vocabularies

Bandwidth Context

51 classes · 137 properties

JSON-LD

API Governance Rules

Bandwidth API Rules

16 rules · 9 errors 6 warnings 1 info

SPECTRAL

JSON Structure

Bandwidth Call Structure

19 properties

JSON STRUCTURE

Bandwidth Message Structure

13 properties

JSON STRUCTURE

Bandwidth Phone Number Structure

9 properties

JSON STRUCTURE

Emergency Calling Endpoint Structure

6 properties

JSON STRUCTURE

Emergency Calling Location Structure

6 properties

JSON STRUCTURE

Messaging Create Message Request Structure

8 properties

JSON STRUCTURE

Messaging Error Structure

3 properties

JSON STRUCTURE

Messaging Media Structure

4 properties

JSON STRUCTURE

Messaging Message List Structure

3 properties

JSON STRUCTURE

Messaging Message Structure

12 properties

JSON STRUCTURE

Mfa Error Structure

2 properties

JSON STRUCTURE

Mfa Mfa Messaging Request Structure

7 properties

JSON STRUCTURE

Mfa Mfa Messaging Response Structure

1 properties

JSON STRUCTURE

Mfa Mfa Verify Request Structure

4 properties

JSON STRUCTURE

Mfa Mfa Verify Response Structure

1 properties

JSON STRUCTURE

Mfa Mfa Voice Request Structure

7 properties

JSON STRUCTURE

Mfa Mfa Voice Response Structure

1 properties

JSON STRUCTURE

Phone Numbers Address Structure

6 properties

JSON STRUCTURE

Phone Numbers Available Number Structure

5 properties

JSON STRUCTURE

Phone Numbers Disconnect Request Structure

2 properties

JSON STRUCTURE

Phone Numbers Disconnect Response Structure

2 properties

JSON STRUCTURE

Phone Numbers Feature Order Request Structure

2 properties

JSON STRUCTURE

Phone Numbers Order List Response Structure

2 properties

JSON STRUCTURE

Phone Numbers Order Request Structure

4 properties

JSON STRUCTURE

Phone Numbers Order Response Structure

6 properties

JSON STRUCTURE

Phone Numbers Phone Number Structure

8 properties

JSON STRUCTURE

Phone Numbers Port In List Response Structure

2 properties

JSON STRUCTURE

Phone Numbers Port In Request Structure

7 properties

JSON STRUCTURE

Phone Numbers Port In Response Structure

4 properties

JSON STRUCTURE

Phone Numbers Sip Peer Structure

4 properties

JSON STRUCTURE

Phone Numbers Site List Response Structure

1 properties

JSON STRUCTURE

Phone Numbers Site Structure

4 properties

JSON STRUCTURE

Toll Free Verification Error Structure

2 properties

JSON STRUCTURE

Toll Free Verification Verification Structure

8 properties

JSON STRUCTURE

Voice Call Structure

13 properties

JSON STRUCTURE

Voice Conference Member Structure

6 properties

JSON STRUCTURE

Voice Conference Structure

6 properties

JSON STRUCTURE

Voice Create Call Request Structure

12 properties

JSON STRUCTURE

Voice Error Structure

3 properties

JSON STRUCTURE

Voice Recording Structure

12 properties

JSON STRUCTURE

Voice Transcription Request Structure

3 properties

JSON STRUCTURE

Voice Transcription Structure

4 properties

JSON STRUCTURE

Voice Update Call Request Structure

6 properties

JSON STRUCTURE

Voice Update Conference Request Structure

4 properties

JSON STRUCTURE

Example Payloads

Bandwidth Call Example

19 fields

EXAMPLE

Bandwidth Message Example

13 fields

EXAMPLE

Messaging Error Example

3 fields

EXAMPLE

Messaging Media Example

4 fields

EXAMPLE

Messaging Message Example

12 fields

EXAMPLE

Mfa Error Example

2 fields

EXAMPLE

Phone Numbers Site Example

4 fields

EXAMPLE

Voice Call Example

13 fields

EXAMPLE

Voice Conference Example

6 fields

EXAMPLE

Voice Error Example

3 fields

EXAMPLE

Voice Recording Example

12 fields

EXAMPLE

Voice Transcription Example

4 fields

EXAMPLE

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
📝
Signup
Signup
📰
Blog
Blog
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🟢
StatusPage
StatusPage
💬
Support
Support
📦
SDKs
SDKs
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONLD
JSONLD
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Bandwidth Voice API
  version: '2.0'
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: Calls
    type: folder
  items:
  - info:
      name: Create a call
      type: http
    http:
      method: POST
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      body:
        type: json
        data: '{}'
    docs: Creates an outbound phone call. The call will be initiated from the specified Bandwidth number to the destination
      number. The answerUrl will receive a webhook when the call is answered, and your application should respond with BXML
      to control the call flow.
  - info:
      name: Get call information
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
    docs: Retrieves the current state and metadata for a specific call identified by its call ID.
  - info:
      name: Update a call
      type: http
    http:
      method: POST
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      body:
        type: json
        data: '{}'
    docs: Modifies an in-progress call by redirecting it to a new BXML document URL or by completing the call. This enables
      advanced call control scenarios such as transferring, bridging, or terminating calls programmatically.
- info:
    name: Recordings
    type: folder
  items:
  - info:
      name: List call recordings
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
    docs: Retrieves a list of all recordings associated with a specific call. Each recording includes metadata such as duration,
      file format, and media URL for downloading the audio file.
  - info:
      name: Get a specific recording
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings/:recordingId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      - name: recordingId
        value: ''
        type: path
        description: The unique identifier for the recording
    docs: Retrieves metadata for a specific recording associated with a call.
  - info:
      name: Delete a recording
      type: http
    http:
      method: DELETE
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings/:recordingId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      - name: recordingId
        value: ''
        type: path
        description: The unique identifier for the recording
    docs: Permanently deletes a specific call recording and its associated media file.
  - info:
      name: Download recording media
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings/:recordingId/media
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      - name: recordingId
        value: ''
        type: path
        description: The unique identifier for the recording
    docs: Downloads the audio file for a specific call recording. Returns the binary audio content in the format specified
      during recording.
  - info:
      name: Get recording transcription
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings/:recordingId/transcription
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      - name: recordingId
        value: ''
        type: path
        description: The unique identifier for the recording
    docs: Retrieves the transcription result for a specific call recording.
  - info:
      name: Transcribe a recording
      type: http
    http:
      method: POST
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/calls/:callId/recordings/:recordingId/transcription
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: callId
        value: ''
        type: path
        description: The unique identifier for the call
      - name: recordingId
        value: ''
        type: path
        description: The unique identifier for the recording
      body:
        type: json
        data: '{}'
    docs: Initiates a transcription job for a specific call recording. The transcription result will be delivered via a webhook
      callback to the URL specified in the request or the application's default callback URL.
  - info:
      name: List account recordings
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/recordings
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: from
        value: ''
        type: query
        description: Filter recordings created on or after this date
      - name: to
        value: ''
        type: query
        description: Filter recordings created on or before this date
      - name: minStartTime
        value: ''
        type: query
        description: Minimum start time for filtering recordings
      - name: maxStartTime
        value: ''
        type: query
        description: Maximum start time for filtering recordings
    docs: Retrieves a list of all recordings across all calls for the account. Supports filtering by date range and pagination.
- info:
    name: Conferences
    type: folder
  items:
  - info:
      name: List conferences
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/conferences
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: name
        value: ''
        type: query
        description: Filter conferences by name
      - name: minCreatedTime
        value: ''
        type: query
        description: Minimum creation time for filtering
      - name: maxCreatedTime
        value: ''
        type: query
        description: Maximum creation time for filtering
    docs: Retrieves a list of conferences associated with the account, including active and completed conferences.
  - info:
      name: Get conference information
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/conferences/:conferenceId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: conferenceId
        value: ''
        type: path
        description: The unique identifier for the conference
    docs: Retrieves detailed information about a specific conference including its current state and list of members.
  - info:
      name: Update a conference
      type: http
    http:
      method: POST
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/conferences/:conferenceId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: conferenceId
        value: ''
        type: path
        description: The unique identifier for the conference
      body:
        type: json
        data: '{}'
    docs: Modifies an active conference. Can be used to mute all members, set the conference status to completed (ending the
      conference), or redirect the conference to a new callback URL.
  - info:
      name: Update a conference member
      type: http
    http:
      method: PUT
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/conferences/:conferenceId/members/:memberId
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: conferenceId
        value: ''
        type: path
        description: The unique identifier for the conference
      - name: memberId
        value: ''
        type: path
        description: The unique identifier of the conference member
      body:
        type: json
        data: '{}'
    docs: Modifies a specific member of an active conference. Supports muting, unmuting, holding, and removing individual
      members.
  - info:
      name: List conference recordings
      type: http
    http:
      method: GET
      url: https://voice.bandwidth.com/api/v2/accounts/:accountId/conferences/:conferenceId/recordings
      params:
      - name: accountId
        value: ''
        type: path
        description: The unique identifier for the Bandwidth account
      - name: conferenceId
        value: ''
        type: path
        description: The unique identifier for the conference
    docs: Retrieves a list of all recordings associated with a specific conference.
bundled: true