Buy a Number

You need to purchase a Vonage virtual number if you want to:

This page shows you how to buy a number programmatically.

You can also cancel a number online, using the developer dashboard or from the command line, using the Vonage CLI.

Replace the following variables in the sample code with your own values:

KeyDescription
VONAGE_API_KEY

Your Vonage API key (see it on your dashboard).

VONAGE_API_SECRET

Your Vonage API secret (also available on your dashboard).

COUNTRY_CODE

The two digit country code for the number. For example: GB for the United Kingdom

VONAGE_NUMBER

Your Vonage Number. E.g. 447700900000

Write the code

Add the following to buy-number.sh:

curl -X POST \
  -u "${VONAGE_API_KEY}:${VONAGE_API_SECRET}" \
  "https://rest.nexmo.com/number/buy" \
  -H "Content-Type: application/x-www-form-urlencoded" \

View full source

Run your code

Save this file to your machine and run it:

sh buy-number.sh

Prerequisites

npm install @vonage/server-sdk

Create a file named buy-number.js and add the following code:

const { Vonage } = require('@vonage/server-sdk');

const vonage = new Vonage({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

View full source

Write the code

Add the following to buy-number.js:

vonage.number.buyNumber({
  country: COUNTRY_CODE,
  msisdn: VONAGE_NUMBER,
})
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

View full source

Run your code

Save this file to your machine and run it:

node buy-number.js

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Create a file named BuyNumber and add the following code to the main method:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

View full source

Write the code

Add the following to the main method of the BuyNumber file:

client.numbers.number(NUMBER_COUNTRY_CODE, NUMBER_MSISDN).buy()

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.numbers with the package containing BuyNumber:

gradle run -Pmain=com.vonage.quickstart.kt.numbers.BuyNumber

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Create a file named BuyNumber and add the following code to the main method:

VonageClient client = VonageClient.builder()
        .apiKey(VONAGE_API_KEY)
        .apiSecret(VONAGE_API_SECRET)
        .build();

View full source

Write the code

Add the following to the main method of the BuyNumber file:

client.getNumbersClient().buyNumber(NUMBER_COUNTRY_CODE, NUMBER_MSISDN);

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.numbers with the package containing BuyNumber:

gradle run -Pmain=com.vonage.quickstart.numbers.BuyNumber

Prerequisites

Install-Package Vonage

Create a file named BuyNumber.cs and add the following code:

using Vonage;
using Vonage.Numbers;
using Vonage.Request;

View full source

Add the following to BuyNumber.cs:


var credentials = Credentials.FromApiKeyAndSecret(vonageApiKey, vonageApiSecret);

View full source

Write the code

Add the following to BuyNumber.cs:


var request = new NumberTransactionRequest() { Country = countryCode, Msisdn = vonageNumber };

View full source

Prerequisites

composer require vonage/client

Create a file named purchase.php and add the following code:

$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

View full source

Write the code

Add the following to purchase.php:

try {
    $client->numbers()->purchase(VONAGE_NUMBER, COUNTRY_CODE);
    echo "Number purchased";
} catch (Exception $e) {
    echo "Error purchasing number";
}

View full source

Run your code

Save this file to your machine and run it:

php purchase.php

Prerequisites

pip install vonage python-dotenv

Write the code

Add the following to buy.py:

from vonage import Auth, Vonage
from vonage_numbers import NumberParams, NumbersStatus

client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))

status: NumbersStatus = client.numbers.buy_number(
    params=NumberParams(
        country=NUMBER_COUNTRY_CODE,
        msisdn=NUMBER_MSISDN,
    )
)

print(status.model_dump())

View full source

Run your code

Save this file to your machine and run it:

python numbers/buy.py

Prerequisites

gem install vonage

Create a file named buy.rb and add the following code:

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

View full source

Write the code

Add the following to buy.rb:

response = client.numbers.buy(
  country: COUNTRY_CODE,
  msisdn: VONAGE_NUMBER
)

View full source

Run your code

Save this file to your machine and run it:

ruby buy.rb

See also