deepgram-webhook
Voice Router SDK - Webhook Normalization / deepgram-webhook
deepgram-webhook
Classes
DeepgramWebhookHandler
Deepgram webhook handler
Handles webhook callbacks from Deepgram API. Deepgram sends the full transcription response to the callback URL when transcription is complete.
Note: Deepgram does not provide webhook signature verification. For security, use HTTPS and validate the request source.
Examples
import { DeepgramWebhookHandler } from '@meeting-baas/sdk';
const handler = new DeepgramWebhookHandler();
// Validate webhook
const validation = handler.validate(req.body);
if (!validation.valid) {
return res.status(400).json({ error: validation.error });
}
// Parse webhook
const event = handler.parse(req.body);
console.log('Event type:', event.eventType);
console.log('Transcript:', event.data?.text);
console.log('Speakers:', event.data?.speakers);const event = handler.parse(req.body);
if (event.eventType === 'transcription.completed') {
console.log('Request ID:', event.data?.id);
console.log('Transcript:', event.data?.text);
console.log('Duration:', event.data?.duration);
console.log('Confidence:', event.data?.confidence);
// Access word-level timestamps
event.data?.words?.forEach(word => {
console.log(`${word.text}: ${word.start}s - ${word.end}s`);
});
// Access speaker diarization
event.data?.speakers?.forEach(speaker => {
console.log(`Speaker ${speaker.speaker}: ${speaker.text}`);
});
}Extends
Constructors
Constructor
new DeepgramWebhookHandler():
DeepgramWebhookHandler
Returns
Inherited from
BaseWebhookHandler.constructor
Methods
createErrorEvent()
protectedcreateErrorEvent(payload,errorMessage):UnifiedWebhookEvent
Helper method to create error response
Parameters
| Parameter | Type |
|---|---|
payload | unknown |
errorMessage | string |
Returns
Inherited from
BaseWebhookHandler.createErrorEvent
matches()
matches(
payload,_options?):boolean
Check if payload matches Deepgram webhook format
Parameters
| Parameter | Type |
|---|---|
payload | unknown |
_options? | { queryParams?: Record<string, string>; userAgent?: string; } |
_options.queryParams? | Record<string, string> |
_options.userAgent? | string |
Returns
boolean
Overrides
parse()
parse(
payload,_options?):UnifiedWebhookEvent
Parse Deepgram webhook payload to unified format
Parameters
| Parameter | Type |
|---|---|
payload | unknown |
_options? | { queryParams?: Record<string, string>; } |
_options.queryParams? | Record<string, string> |
Returns
Overrides
validate()
validate(
payload,options?):WebhookValidation
Validate webhook payload structure
Checks if payload has required fields and correct types
Parameters
| Parameter | Type | Description |
|---|---|---|
payload | unknown | Raw webhook payload |
options? | { queryParams?: Record<string, string>; userAgent?: string; } | Optional context (query params, headers, etc.) |
options.queryParams? | Record<string, string> | - |
options.userAgent? | string | - |
Returns
Validation result with details
Inherited from
verify()
verify():
boolean
Verify Deepgram webhook signature
Note: Deepgram does not currently support webhook signature verification. For security, use HTTPS and validate the request source (IP allowlist, etc.).
Returns
boolean
Always returns true (no verification available)
Overrides
Properties
provider
readonlyprovider:TranscriptionProvider="deepgram"
Provider name
Overrides
Functions
createDeepgramWebhookHandler()
createDeepgramWebhookHandler():
DeepgramWebhookHandler
Factory function to create a Deepgram webhook handler