The Sinch Node.js SDK was designed for developers. The SDK components are built with the specific language first and foremost in mind. After that, our focus was to keep the design simple for users that only want to leverage specific API calls they use but ensure customizability and future-proof access to other parts of our infrastructure.
The Node.js SDK has added common capabilities to further streamline the interaction with our platform:
Another goal of ours while designing this new Node.js SDK was to mimic our REST APIs as much as possible, while still providing a Node.js developer experience. We also use IDE type hints which, along with the REST API specification, allows the user to perform most API interactions without the need to use reference documentation. With all these common items, we hope to build out consistent frameworks with functionality all users will commonly leverage.
Discoverability is one of the key components of great DX, hence Node.js SDK namespaces are small and specific yet descriptive.
For example:
const response = await sinchClient.numbers.availableNumber.list({
regionCode: 'US',
type: 'LOCAL',
capabilities: ['SMS', 'VOICE'],
});
The main client class organizes the Sinch product portfolio (called domains within SDK) and its features into hierarchy that produces an API that is easy to read and discover.
Currently, we support Node.js 18 (Hydrogen) and Node.js 20 LTS (Iron) versions. Language versions will be supported until EOL.
One 3rd party library is used by the Node.js SDK, the node-fetch package, until it can be removed when the oldest version to support will be Node.js 21 which supports the Fetch API natively.
For now, SMS, Numbers, Verification and Voice APIs are supported, with other public Sinch APIs to be added soon.
For further details and to download our SDK, please refer to:
As a developer-focused business, Sinch understands the need to constantly consolidate and refine our resources to be more accommodating. Our Sinch Software Development Kits (SDKs) allow access to multiple APIs, extend the number of languages supported, and feel a bit more tailored to your language of choice.
Whether you're a new user or have been with us for a while, we encourage you to explore our new SDKs:
SDK |
Github Repository |
Supported
|
Documentation |
|
|
Python SDK |
SMS |
||
Numbers |
||||
Voice |
Voice SDK Documentation | |||
Verification |
||||
|
||||
|
.NET SDK |
SMS |
||
Numbers |
||||
Voice | ||||
Verification |
||||
|
||||
|
Java SDK |
SMS |
||
Numbers |
||||
Voice |
||||
Verification |
||||
|
||||
|
Node.js SDK |
SMS |
||
Numbers |
||||
Voice |
||||
Verification |
We started out by establishing a common framework for functionality we wanted to be consistent across the board. Problems like pagination, error code response, language familiarity, and other issues needed standardization regardless of the underlying API setup. For example, two common approaches to pagination are page-based and token. Depending on the API, there are pros and cons to each approach.
However, in our SDKs, we provide a single iterator object you can use to parse through your results: Example of our Python paginator
To further enhance your experience, we've made several minor improvements, including centralizing our client around a single authentication model, ensuring support for all actively supported language versions, and reducing reliance on third-party libraries. Over the next few months, we'll be rolling out a series of articles to provide a deeper dive into each specific language SDK. While we continue to expand our coverage across all APIs, we'll keep you informed about relevant support additions to each SDK.
We're confident our SDKs will enhance your Sinch experience significantly. Thank you for being a part of the Sinch Developer Community.
If you have any questions or need help check out our Sinch Community Site or you can reach out to us at onlineteam@sinch.com. We're always happy to help!