Search for a virtual number using Node.js SDK
Use this guide to create a Node.js application for use with the Numbers API and search for an available Sinch virtual number.
Note:
Before you can get started, you need the following already set up:
- All Numbers API prerequisite steps.
- Node.js and a familiarity with how to create a new app.
Steps:
- Set up your Node.js application.
- Search for an available virtual number for SMS, Voice or both.
Set up your Node.js application
First we'll create a Node project using npm. This creates a package.json and the core dependencies necessary to start coding.
To create the project, do the following steps:
- Create a folder called
list-number-app
(or any name you prefer). - Navigate into the folder you created and run the following command.This command adds and the package.json file. You will be prompted to provide values for the fields. For this tutorial, you can simply accept the default values and press enter at each stage.
npm init
You can install the Sinch Node.js SDK using either NPM or Yarn:
npm install @sinch/sdk-core
yarn add @sinch/sdk-core
Create your file
Create a new file namedindex.js
in the project and paste the provided code into the file.Modify your application
The code provided includes placeholder parameters. You'll need to update the parameters detailed in the following subsections with your values.
Initialize the client
Before initializing a client using this SDK, you'll need three pieces of information:
- Your Project ID
- An access key ID
- An access key Secret
Note:
To start using the SDK, you need to initialize the main client class with your credentials from your Sinch dashboard.
const {SinchClient} = require('@sinch/sdk-core');
const sinchClient = new SinchClient({
projectId: "YOUR_project_id",
keyId: "YOUR_access_key",
keySecret: "YOUR_access_secret"
});
Note:
For testing purposes on your local environment it's fine to use hardcoded values, but before deploying to production we strongly recommend using environment variables to store the credentials, as in the following example:
.env
File
PROJECTID="YOUR_project_id"
ACCESSKEY="YOUR_access_key"
ACCESSSECRET="YOUR_access_secret"
app.js
File
const {SinchClient} = require('@sinch/sdk-core');
const sinchClient = new SinchClient({
projectId: process.env.PROJECTID,
keyId: process.env.ACCESSKEY,
keySecret: process.env.ACCESSSECRET
});
Note:
If you are using the Node.js SDK for multiple products that use different sets of authentication credentials, you can include all of the relevant credentials in the same configuration object, as in the following example:
const {SinchClient} = require('@sinch/sdk-core');
const sinchClient = new SinchClient({
projectId: "YOUR_project_id",
keyId: "YOUR_access_key",
keySecret: "YOUR_access_secret",
applicationKey: "YOUR_application_key",
applicationSecret: "YOUR_application_secret"
});
Fill in remaining parameters
- Replace the remaining placeholder values for these parameters with your values:
Parameter | Your value |
---|---|
YOUR_region_code | The two letter abbreviation of the country for which you'd like a number. For example, the United States is US . Should be in ISO 3166-1 alpha-2 format. |
YOUR_number_type | The type of number you would like to rent. Available options are: MOBILE , LOCAL , or TOLL_FREE . Note that 10DLC numbers should be set to LOCAL . |
- Save the file.
Search for an available number
Now you can execute the code. Run the following command:
node index.js
Response
These steps should return a JSON list of numbers available to rent.
{
"availableNumbers": [
{
"phoneNumber": "+12089087284",
"regionCode": "US",
"type": "LOCAL",
"capability": ["SMS"],
"setupPrice": {
"currencyCode": "USD",
"amount": "0.00"
},
"monthlyPrice": {
"currencyCode": "USD",
"amount": "2.00"
},
"paymentIntervalMonths": 1
}
]
}
Next steps
Copy thephoneNumber
you would like to use and rent your virtual number using the Numbers API.Additional resources
- Explore the API specification to test more endpoints.
- Prefer a UI to search for a number? Follow the entire number searching and renting process in the Customer Dashboard.