> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vobiz.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Node.js SDK

> Build Node.js and TypeScript voice apps with the Vobiz SDK - outbound calls, SIP trunks, CDR, and call recording across 130+ countries including India.

The official Node.js SDK for the Vobiz Voice API. Make calls, manage SIP trunks, handle CDR, record calls, configure phone numbers, and more - all natively from your Node.js or TypeScript backend.

**Source code:** [vobiz-ai/Vobiz-Node-SDK](https://github.com/vobiz-ai/Vobiz-Node-SDK)

## Installation

Clone the repository and install the dependencies locally:

```bash theme={null}
git clone https://github.com/vobiz-ai/Vobiz-Node-SDK.git
cd Vobiz-Node-SDK
npm install
```

## Quick start

Make an outbound call:

```javascript theme={null}
const { Client } = require('vobiz-node');

const client = new Client(process.env.VOBIZ_AUTH_ID, process.env.VOBIZ_AUTH_TOKEN);

client.calls.create(
  '+911171366914',                  // source caller ID
  '+919148227303',                  // destination
  'https://yourserver.com/answer',  // webhook responding with VobizXML
  { hangupUrl: 'https://yourserver.com/hangup' }
).then(res => {
  console.log('Call queued with UUID:', res.requestUuid);
}).catch(console.error);
```

## Authentication

All API calls require your **Auth ID** and **Auth Token**, available in the [Vobiz Console](https://console.vobiz.ai).

Initialize the client directly:

```javascript theme={null}
const { Client } = require('vobiz-node');
const client = new Client('YOUR_AUTH_ID', 'YOUR_AUTH_TOKEN');
```

Or use environment variables:

```bash theme={null}
export VOBIZ_AUTH_ID=YOUR_AUTH_ID
export VOBIZ_AUTH_TOKEN=YOUR_AUTH_TOKEN
```

```javascript theme={null}
const client = new Client(); // Picks up env vars automatically
```

## Common operations

### Live and queued calls

```javascript theme={null}
// Hang up a live call
client.calls.hangup(callUuid);

// Transfer to another leg
client.calls.transfer(callUuid, { legs: 'aleg', alegUrl: 'https://...' });

// Inject audio and TTS
client.calls.playMusic(callUuid, ['https://example.com/audio.mp3']);
client.calls.speakText(callUuid, 'Hello from Vobiz', { voice: 'WOMAN', language: 'en-US' });

// Send DTMF digits
client.calls.sendDigits(callUuid, '1234');

// Stream audio (WebSocket fork)
client.calls.stream(callUuid, 'wss://your-agent.com', { audioTrack: 'inbound' });
```

### Call detail records (CDR)

```javascript theme={null}
client.cdr.get({
  limit: 20,
  offset: 0,
  startTime: '2026-01-01T00:00:00Z',
  callDirection: 'outbound'
}).then(history => {
  console.log(`Fetched ${history.length} records`);
});
```

### Conferences

```javascript theme={null}
client.conferences.get('sales-channel').then(conference => {
  conference.kickMember(memberId);
  conference.muteMember(memberId);
  conference.playAudioToMember(memberId, 'https://example.com/chime.mp3');
  conference.record({ fileFormat: 'mp3', transcriptionType: 'auto' });
});
```

## VobizXML

The SDK handles REST interactions only (outbound dials, live mutations, provisioning). When a call is answered, Vobiz expects standard **VobizXML** logic returned from your webhook server:

```javascript theme={null}
app.post('/answer', (req, res) => {
  const xml = `
    <Response>
      <Speak voice="WOMAN" language="en-US">Thank you for calling.</Speak>
    </Response>
  `;
  res.type('text/xml').send(xml);
});
```

## Webhooks and verification

Use the built-in validator to verify that webhook events originate from Vobiz:

```javascript theme={null}
const { validateSignature } = require('vobiz-node');

app.post('/webhook', (req, res) => {
  const isValid = validateSignature(
    req.url,
    req.headers['x-vobiz-signature'],
    req.body,
    process.env.VOBIZ_AUTH_TOKEN
  );

  if (!isValid) return res.status(401).send('Unauthorized payload');

  // Proceed with processing
});
```

## Resources

* [GitHub repository](https://github.com/vobiz-ai/Vobiz-Node-SDK)
* [Vobiz Console](https://console.vobiz.ai)
* [API documentation](/introduction)
* [VobizXML reference](/xml/response)
