Documentation

Mobile Voip/Voice Client SDKs

Beta Features

Get Started

How-To Guides

Security

REST API

REST API Callbacks

Bandwidth XML

BXML Callback Events

Mobile Client SDKs (Beta)

WebRTC SDK

SDKs & Helper Libraries

HTTP Error Codes

Documentation

Security

Check here for information on account security such as your API credentials and Basic Authentication.

Acrobits Mobile SDK Quick Start Guide

Answer Event

Incoming Call Event

Hangup Event

Gather event – <Gather> verb

Recording event – <Record> verb

Redirect event – <Redirect> verb

SMS event – <SendMessage> verb

Transfer Complete Event – <Transfer> verb

GoLang

Get Started

Get started with Bandwidth’s Voice & Messaging APIs.  This article will help new users sign up for an account, get a Bandwidth phone number, and send their first SMS message.

Import Dashboard Numbers to Use Messaging APIs (REST)

Bandwidth customers using the Bandwidth Dashboard for ordering phone numbers and voice services, may choose to also use HTTP APIs for messaging for SMS/MMS.  This guide shows the 4 basic steps to use only Application Platform HTTP APIs for messaging with an existing Dashboard account with existing phone numbers.

SMS Event

Bandwidth API sends this event to the application when an SMS is sent or received.

/account

Account API allows you to retrieve your current balance, transaction list, account type and all elements related to your platform account.

Buy Phone Numbers (REST)

This example shows you how to buy numbers for use with your Application Platform account.

Send a SMS/MMS (REST)

This example shows you how to send an outbound SMS or MMS message to a mobile phone.

Setup Incoming Messages & Calls (REST)

Learn how to setup your application to receive inbound calls and texting messaging.

<Call>

The Call verb is used to create call to another number.

Outbound Phone Calls (REST)

This example shows you how to make an outbound voice call, such as an automated phone call reminder.

SMS Auto-Reply (BXML)

This example shows you how to receive an inbound SMS text message and auto-reply to it.

<Conference>

The Conference verb is used to create conferences.

<Gather>

The Gather verb is used to collect digits for some period of time.

Basic Call Forwarding (BXML)

This example shows you how to receive an inbound voice call on one of your Bandwidth phone numbers and create an new outgoing phone call to bridge the calls together for a call forwarding application.

Call Tracking (REST)

This how-to guide shows how to create a basic call tracking application for using phone numbers used to track the effectiveness of online (or offline) advertising.

IVR Assisted Transfer (BXML)

This example shows you how you can use Bandwidth XML (BXML) to implement a simple assisted transfer flow. It shows how to use BXML to  for inbound call handling, making an outbound call, managing separate call flows for different call legs and conferencing separate call legs together.

/applications

The Applications resource lets you define call and message handling applications. You write an application on your own servers and have Bandwidth API send events to it by configuring a callback URL.

/availableNumbers

The Available Numbers resource lets you search for numbers that are available for use with your application.

Sign-Up – Beta – Porting API

Mobile Client Beta Signup

/bridges

The Bridges resource allows you to bridge two calls together allowing for two way audio between them. A common example is bridging an incoming phone call together with a outgoing phone call.

/calls

The Calls resource lets you make phone calls and view information about previous inbound and outbound calls.

Voice Reminders (REST)

This example shows you how to make an outbound voice call, such as an automated phone call reminder.

Java

.NET / C#

Node.js

Links to and information about the NodeJS Helper Library

PHP

Python

Ruby

<Hangup>

The Hangup verb is used to hangup current call.

Basic Voicemail (REST)

This guide shows both a simple event model for building a voicemail application for recording and then for playing voice messages to help get you started building your own customized voicemail applications.

SMS Delivery Receipts (REST)

Mobile Quick Start Guide

This guide introduces you the Bandwidth Mobile SDKs using a sandbox server app hosted by Bandwidth and the mobile reference apps. The mobile reference apps are available for both iOS and Android.

Setup Your Own Server for Mobile Apps

Learn how to setup your own server-side application to support iOS and Android voice calling (VoIP) clients.

iOS SDK

Bandwidth iOS SDK – BWSip Framework

WebRTC Quick Start Guide

This example shows you how to make and receive phone calls in your web browser.

MMS Event

 Events sent to your server for inbound and outbound MMS messages.

Answer Event

Bandwidth API sends this message to the application when the call is answered.

Audio File Playback Events

Bandwidth API sends this message to the application when audio file playback is started or done playing.

CallTimeout Event

Bandwidth API sends this message to the application when the call is not answered until the specified timeout.

Conference Event

Bandwidth API sends this event to the application when a conference is created or completed.

Conference Audio File Playback Event

Bandwidth API sends this message to the application when audio playback has started or is done (stopped) in a conference. Note: For playback event in conference member, use the call playback event.

Conference Member Event

Bandwidth API sends this message to the application when a conference member has joined / left the conference or when it as muted or put on hold.

Conference Speak Event

Bandwidth API sends this message to the application when text-to-speech speaking has started or is done (stopped) in a conference. Note:— For speak event in conference member, use the call speak event.

DTMF Event

Bandwidth API sends this message to the application when it receives number pad tone signals during a call.

Gather Event

The Bandwidth API generates a gather event when the gather command completes in a call.

Incoming Call Event

Bandwidth API sends this message to the application when an incoming call arrives. For incoming call the callback set is the one related to the Application associated with the called number.

Hangup Event

Bandwidth API sends this message to the application when the call ends.

Recording Event

Bandwidth API sends this event to the application when an the recording media file is saved or an error occurs while saving it.

Reject Event

Bandwidth API sends this message to the application when the call is rejected.

Speak Event

Bandwidth API sends this message to the application when text-to-speech starts or stops.

SIP Clients & Registering SIP Endpoints (REST)

This guide shows how to get started with SIP endpoints for SIP Phones, Mobile Clients, Web Clients and IP Phones.

Transcription Event – BETA

Bandwidth API sends this event to the application when a transcription is terminated or an error occurs while processing it.

/conferences

The Conference resource allows you create conferences, add members to it, play audio, speak text, mute/unmute members, hold/unhold members and other things related to conferencing. Once a conference is created there is no timeout associated with it, i.e., the conference will stay in created state until it is explicitly terminated. After the last member of a conference is removed from it, the conference will be set automatically as completed.

/domains

A domain is a way to logically group endpoints. There is a 100 domain max. per account limit. Most use cases require using a single domain for all endpoints. The name of the domain will be part of a public DNS record. For that reason, we let the customer choose their domain names. Once a domain has been created, endpoints can be created and managed within the context of the domain. Because endpoints can only exist within the context of a domain, creating a domain is the first step in creating endpoints.

/endpoints

An endpoint represents is an entity that can register with the Application Platform SIP Registrar and place and receive calls. This can be a device like a phone or a pad, or it can be a softphone on a computer.

/errors

The Errors resource lets you see information about errors that happened in your API calls and during applications callbacks. This error information can be very helpful when you're debugging an application. Because error information can be large, and errors in the distant past are less useful than new ones, Bandwidth API limits the number of user errors it keeps.

/media

The Media resource lets you upload your media files to Bandwidth API servers so they can be used in applications without requiring a separate hosting provider. You can upload files up to 65MB and file storage is free for an unlimited number of files. Files you upload can only be accessed by you when you supply your API access token and secret. They are not available to anonymous users. Bandwidth API supports the Cache-Control header when you upload files.

/messages

The Messages resource lets you send SMS/MMS messages and view messages that were previously sent or received.

/numberInfo

This resource provides a CNAM number info. CNAM is an acronym which stands for Caller ID Name. CNAM can be used to display the calling party's name alongside the phone number, to help users easily identify a caller. CNAM API allows the user to get the CNAM information of a particular number.

Android SDK

Bandwidth Android SDK – BWSip Framework

<Media>

<Media> is a noun that is used exclusively within <SendMessage> to provide attached media (MMS) capability messages. This feature is coming soon.

<Pause>

Pause is a verb to specify the length of seconds to wait before executing the next verb. This feature is coming soon.

<PlayAudio>

The PlayAudio verb is used to play an audio file in the call.

<Record>

The Record verb allows call recording. At the end of the call, a call recording event containing the media with recorded audio URL is generated.

<Redirect>

The Redirect verb is used to redirect the current XML execution to another URL.

<Reject>

The Reject verb is used to reject incoming calls. This feature is coming soon.

<SendMessage>

The SendMessage verb is used to send a text message.

<SpeakSentence>

The SpeakSentence verb is used to convert any text into speak for the caller.

<Transfer>

The Transfer verb is used to transfer the call to another number.

/phoneNumbers

The Phone Numbers resource lets you get phone numbers for use with your programs and manage numbers you already have.

/recordings

Retrieve information about call recordings. The recording information retrieved by GET method contains only textual data related to call recording as described on Properties section. To properly work with recorded media content such as download and removal of media file, please access /media documentation. To learn about how to transcribe recordings, read the /recordings/{id}/transcriptions documentation.

/recordings/{id}/transcriptions

The Transcription resource lets you transcribe a voicemail recording. This resource can be either created automatically when the call property transcriptionEnabled is set to true, when call is created, or during the call by posting an event. The transcription is based on a call audio recording. By enabling/disabling call property recordingEnabled, a call can have more than one recording, so it's possible to have one or more transcriptions for each one of those recordings. When transcriptionEnabled is set to true all the recordings generated within that call are going to be transcribed, i.e, if you start to record a call, at any given time when the call is active, and then terminate the recording, the transcription resource will be automatically started for this recording; this process can happen many times.