# Getting Started with bandwidth Bandwidth's set of APIs ## Install the Package Install the gem from the command line: ```ruby gem install bandwidth-sdk -v 2.1.1 ``` Or add the gem to your Gemfile and run `bundle`: ```ruby gem 'bandwidth-sdk', '2.1.1' ``` For additional gem details, see the [RubyGems page for the bandwidth-sdk gem](https://rubygems.org/gems/bandwidth-sdk/versions/2.1.1). ## Initialize the API Client The following parameters are configurable for the API Client. | Parameter | Type | Description | | --- | --- | --- | | `messaging_basic_auth_user_name` | `String` | The username to use with basic authentication | | `messaging_basic_auth_password` | `String` | The password to use with basic authentication | | `voice_basic_auth_user_name` | `String` | The username to use with basic authentication | | `voice_basic_auth_password` | `String` | The password to use with basic authentication | | `environment` | Environment | The API environment.
**Default: `Environment.PRODUCTION`** | | `timeout` | `Float` | The value to use for connection timeout.
**Default: 60** | | `max_retries` | `Integer` | The number of times to retry an endpoint call if it fails.
**Default: 0** | | `retry_interval` | `Float` | Pause in seconds between retries.
**Default: 1** | | `backoff_factor` | `Float` | The amount to multiply each successive retry's interval amount by in order to provide backoff.
**Default: 1** | The API client can be initialized as following. ```ruby client = Bandwidth::Client.new( messaging_basic_auth_user_name: 'MessagingBasicAuthUserName', messaging_basic_auth_password: 'MessagingBasicAuthPassword', voice_basic_auth_user_name: 'VoiceBasicAuthUserName', voice_basic_auth_password: 'VoiceBasicAuthPassword', environment: Environment::PRODUCTION, ) ``` API calls return an `ApiResponse` object that includes the following fields: | Field | Description | | --- | --- | | `status_code` | Status code of the HTTP response | | `reason_phrase` | Reason phrase of the HTTP response | | `headers` | Headers of the HTTP response as a Hash | | `raw_body` | The body of the HTTP response as a String | | `request` | HTTP request info | | `errors` | Errors, if they exist | | `data` | The deserialized body of the HTTP response | ## Authorization This API does not require authentication. ## API Reference ### List of APIs *