# @vonage/server-client

> The Vonage Server Client provides core functionalities for interacting with Vonage APIs, ensuring a standardized response regardless of the underlying HTTP adapter.

Latest version **1.23.1** (published 2026-09-09) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @vonage/server-client
pnpm add @vonage/server-client
yarn add @vonage/server-client
bun add @vonage/server-client
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.23.1 |
| Published | 2026-09-09 |
| First published | 2022-08-12 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22 |
| Dependencies | 3 |
| Unpacked size | 148.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 395 |
| Maintainers | web-il, iceberg-team, unified_portal, vreporter-npm, vbcbe, yuri.guller, idanvon, nexmo-devrel, vvd, vonagemeetings, vonage-jenkins, adasilvacabral, sarvesh.bisht, vgai-dev, vonage_client_media_processing, or.cpc, llihovodov, daniel-sapir, aviadhouri.va, idelacruz, vonage-frontier, hilakl, saurabh.vonage, leppelin, asilvonage, gpojula, elimenko.vonage, kanav_vonage, omrizilber, molszewski_v, sailusha, rpalanisamy-vonage, vbohdan_vonage, abolles, gorka.vonage, bharath-vonage, morvonage, ilan.aradbilavsky.at.vonage.com, vonreeves, avi.dantes, mgalin, jhajduk.vonage, nitsanungerfrontier, vquezada, adidomenico, sathishr-vonage, pravallika-pamu, abagdi, anuradhlankapalli, hrosenberg, gokul-vonage, aslowe-vcc, vbc-web-cicd-bot, mserranomontes, ariel12955, franbecerra, urihaim, mvera_vonage, mike.zhylevych, mprabhuvonage, sharad-srivastava2, lucas_pilarski, manish-ranjan07, srajput0909, pvillenamontes, dsimoes2, manel_vonage, joliveraortega |

## Links

- npm: https://www.npmjs.com/package/@vonage/server-client
- Repository: https://github.com/Vonage/vonage-node-sdk
- Homepage: https://developer.vonage.com
- Issues: https://github.com/Vonage/vonage-node-sdk/issues
- npm.io page: https://npm.io/package/@vonage/server-client

## Dependencies (3)

- [debug](https://npm.io/package/debug.md) 4.4.3
- [@vonage/auth](https://npm.io/package/@vonage/auth.md) 1.18.1
- [@vonage/vetch](https://npm.io/package/@vonage/vetch.md) 1.14.1

## Recent versions

- 1.23.1 (latest) — 2026-09-09
- 1.19.4-0 (pre) — 2026-04-22
- 1.23.0 — 2026-09-01
- 1.22.0 — 2026-07-29
- 1.20.0 — 2026-03-25
- 1.19.3 — 2026-02-24
- 1.19.2 — 2026-02-23
- 1.19.1 — 2026-02-18
- 1.19.0 — 2026-01-28
- 1.18.1 — 2025-09-22
- 1.18.0 — 2025-09-16
- 1.17.3 — 2025-09-16
- 1.18.0-alpha.2 — 2025-09-16
- 1.18.0-alpha.1 — 2025-09-16
- 1.18.0-alpha.0 — 2025-09-16
- … 54 more at https://npm.io/package/@vonage/server-client/versions

## README

# Vonage Server Client SDK for Node.js

![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vonage/vonage-node-sdk/ci.yml?branch=3.x) [![Codecov](https://img.shields.io/codecov/c/github/vonage/vonage-node-sdk?label=Codecov&logo=codecov&style=flat-square)](https://codecov.io/gh/Vonage/vonage-server-sdk) ![Latest Release](https://img.shields.io/npm/v/@vonage/server-client?label=%40vonage%2Fserver-client&style=flat-square) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg?style=flat-square)](../../CODE_OF_CONDUCT.md) [![License](https://img.shields.io/npm/l/@vonage/accounts?label=License&style=flat-square)][license]

<img src="https://developer.nexmo.com/images/logos/vbc-logo.svg" height="48px" alt="Vonage" />

This is the Vonage Server Client SDK for Node.js used to wrap the authentication
headers/signatures for use with [Vonage APIs](https://www.vonage.com/). To use
it you will need a Vonage account. Sign up [for free at vonage.com][signup].

For full API documentation refer to [developer.vonage.com](https://developer.vonage.com/).

* [Installation](#installation)
* [Usage](#usage)
  * [Options](#options)
* [File Downloads](#file-downloads)
* [Testing](#testing)

## Installation

### With NPM

```bash
npm install @vonage/server-client
```

### With Yarn

```bash
yarn add @vonage/server-client
```

## Usage

To create a client, you will need to pass in a `@vonage/auth` object.

```js
const { Auth } = require('@vonage/auth');
const { Client } = require('@vonage/server-client');

const vonageClient = new Client (new Auth({
        apiKey: API_KEY,
        apiSecret: API_SECRET,
        applicationId: APP_ID,
        privateKey: PRIVATE_KEY_PATH,
    }),
    options,
);
```

You will now be able to send requests using the client:

```js
const response = await vonageClient.sendGetRequest('https://rest.nexmo.com/account/numbers')
```

### Options

The constructor for the client takes in two parameters `credentials` and
`options`. `credentials` is either an [`Auth`](https://github.com/Vonage/vonage-node-sdk/blob/3.x/packages/auth/lib/auth.ts#L13)
or an `object` containing the settings from [`AuthInterface`](https://github.com/Vonage/vonage-node-sdk/blob/3.x/packages/auth/lib/types.ts#L35).

`options` allows adjusting api endpoints and the request timeout.

* `restHost: string` (optional) - Allows overwriting the default `https://rest.nexmo.com`.
* `apiHost: string` (optional) - Allows overwriting the default `https://api.nexmo.com`.
* `videoHost: string` (optional) - Allows overwriting the default `https://video.api.vonage.com`.
* `timeout: int` (optional) - Set a custom timeout for requests to Vonage in
  milliseconds. Defaults to the standard for Node http requests, which is
  120,000 ms.
* `appendUserAgent: string` (optional) - Set a custom string to be added to the
  `user-agent` header for the request

## File Downloads

When downloading files, the request needs to be built with proper security
headers set. Inside this package is the `FileClient` which will handle the
request. You can download a file using the File Id or the FQURL.

```js
const { Auth } = require('@vonage/auth');
const { FileClient } = require('@vonage/server-client');

const fileClient = new FileClient(new Auth({
    apiKey: API_KEY,
    apiSecret: API_SECRET,
    applicationId: APP_ID,
    privateKey: PRIVATE_KEY_PATH,
  }),
  options,
);

await fileClient.downloadFile('the-file-id-or-url', '/paht/to/save');
```

## Testing

Run:

```bash
npm run test
```

[signup]: https://dashboard.nexmo.com/sign-up?utm_source=DEV_REL&utm_medium=github&utm_campaign=node-server-sdk
[license]: ../../LICENSE.txt

---
_Source: https://npm.io/package/@vonage/server-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
