Ben Greenberg

Vonage Team Member

Ben is a second career developer who previously spent a decade in the fields of adult education, community organizing and non-profit management. He worked as a developer advocate for Vonage. He wri...

[Read more]
< Release />

Announcing the Nexmo Rails Gem

Last updated on May 13, 2021

Back at RailsConf 2016, we adopted the community-driven Nexmo Ruby gem and made it an officially supported client library. Since then, Ruby developers have been able to integrate Nexmo into their applications with more ease. Whether you were looking to create a Voice app, send or receive an SMS, obtain insights on numbers around the world, or more, you could do it with the Nexmo Ruby gem.

We are excited to share at RailsConf 2019 that we have taken another step to make it even easier for Ruby on Rails developers to use the full suite of Nexmo APIs in their Rails applications with the new Nexmo Rails gem. The Nexmo Rails gem performs another integration step for you by initializing a Nexmo client instance and making it available throughout your application.

Setting Up the Nexmo Rails Gem

Nexmo enables you to create sophisticated Rails applications using our broad range of cloud communications APIs. The Nexmo Rails gem makes it simple and straightforward to get started. Here's how to install the Nexmo Rails gem:


First, add the Nexmo Rails gem to your Gemfile:

# Gemfile

gem 'nexmo-rails'

Then run bundle install from your command line to install the dependency.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Screenshot of new Meetings API session in progress
Start developing in minutes with free credits on us. No credit card required!

Nexmo API Credentials

You need to provide the gem with your Nexmo API credentials to access the functionality of our APIs. Once you have created your Nexmo account, navigate to your dashboard and add your API key and API secret to the .env file in the root folder of your application:

# .env


Some of the Nexmo APIs also require an API signature, private key, or application ID. You can add those, if appropriate, to your .env as well:

# .env

NEXMO_PRIVATE_KEY= # Path to your private key file
NEXMO_APPLICATION_ID= # Your application ID

Ensure you have installed the dotenv-rails gem and added the .env file to your .gitignore so as not to commit your credentials to version control.

Initialize Your Client

Now you are ready to initialize a Nexmo client for your application. This is easily done by running the initializer from your command line:

$ rails generate nexmo_initializer

This creates an initializer file in /config/initializers/ called nexmo.rb that contains the details your application requires to instantiate the Nexmo client. Now, when you start your Rails application, you have access to a fully-authenticated Nexmo instance to begin sending text messages, creating voice interactivity, and much more.

Using Your Nexmo Client

Now that your Nexmo Rails gem has been successfully installed and you have run the Nexmo initializer, you can begin to use the Nexmo client anywhere inside your application.

To use the Nexmo client, reference the Nexmo instance followed by the specific method and parameters you wish to use. For example, to send an SMS you would do the following:

Nexmo.sms.send(from: '14155550100', to: '14155550101', text: 'Hello world')

To retrieve details about a number using the standard Number Insight API you would use the following:

Nexmo.number_insight.standard(number: '14155550100')

To search for available phone numbers in the United States you would run the following: 'US')

More information on all the available functionality within the Nexmo Ruby client library can be found on GitHub. All of the methods within the Ruby client library can be accessed with the Rails gem—just remember to substitute the variable name client in the Ruby client library examples with Nexmo.

Let's Talk at RailsConf

Rails Conf
Rails Conf

We are so thrilled to share this during RailsConf 2019 in Minneapolis. As mentioned earlier, it was during RailsConf 2016 in Kansas City that we unveiled the Nexmo Ruby gem, and it is really meaningful to continue the tradition of new and exciting developments at this year's conference.

Come and find our booth at the conference. We'll be there with good conversation and, of course, lots of swag. We would love to hear about how you are using Nexmo in your applications or how you are thinking of incorporating Nexmo in future work. Let us know you'll be there by tweeting @NexmoDev with the hashtag #railsconf.