telnyx-account-notifications-javascript
Telnyx Account Notifications - JavaScript
Installation
npm install telnyx
Setup
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
All examples below assume client is already initialized as shown above.
Error Handling
All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
try {
const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
if (err instanceof Telnyx.APIConnectionError) {
console.error('Network error — check connectivity and retry');
} else if (err instanceof Telnyx.RateLimitError) {
// 429: rate limited — wait and retry with exponential backoff
const retryAfter = err.headers?.['retry-after'] || 1;
await new Promise(r => setTimeout(r, retryAfter * 1000));
} else if (err instanceof Telnyx.APIError) {
console.error(`API error ${err.status}: ${err.message}`);
if (err.status === 422) {
console.error('Validation error — check required fields and formats');
}
}
}
Common error codes: 401 invalid API key, 403 insufficient permissions,
404 resource not found, 422 validation error (check field formats),
429 rate limited (retry with exponential backoff).
Important Notes
- Pagination: List methods return an auto-paginating iterator. Use
for await (const item of result) { ... }to iterate through all pages automatically.
List notification channels
List notification channels.
GET /notification_channels
// Automatically fetches more pages as needed.
for await (const notificationChannel of client.notificationChannels.list()) {
console.log(notificationChannel.id);
}
Returns: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
Create a notification channel
Create a notification channel.
POST /notification_channels
Optional: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
const notificationChannel = await client.notificationChannels.create();
console.log(notificationChannel.data);
Returns: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
Get a notification channel
Get a notification channel.
GET /notification_channels/{id}
const notificationChannel = await client.notificationChannels.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationChannel.data);
Returns: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
Update a notification channel
Update a notification channel.
PATCH /notification_channels/{id}
Optional: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
const notificationChannel = await client.notificationChannels.update(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationChannel.data);
Returns: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
Delete a notification channel
Delete a notification channel.
DELETE /notification_channels/{id}
const notificationChannel = await client.notificationChannels.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationChannel.data);
Returns: channel_destination (string), channel_type_id (enum: sms, voice, email, webhook), created_at (date-time), id (string), notification_profile_id (string), updated_at (date-time)
List all Notifications Events Conditions
Returns a list of your notifications events conditions.
GET /notification_event_conditions
// Automatically fetches more pages as needed.
for await (const notificationEventConditionListResponse of client.notificationEventConditions.list()) {
console.log(notificationEventConditionListResponse.id);
}
Returns: allow_multiple_channels (boolean), associated_record_type (enum: account, phone_number), asynchronous (boolean), created_at (date-time), description (string), enabled (boolean), id (string), name (string), notification_event_id (string), parameters (array[object]), supported_channels (array[string]), updated_at (date-time)
List all Notifications Events
Returns a list of your notifications events.
GET /notification_events
// Automatically fetches more pages as needed.
for await (const notificationEventListResponse of client.notificationEvents.list()) {
console.log(notificationEventListResponse.id);
}
Returns: created_at (date-time), enabled (boolean), id (string), name (string), notification_category (string), updated_at (date-time)
List all Notifications Profiles
Returns a list of your notifications profiles.
GET /notification_profiles
// Automatically fetches more pages as needed.
for await (const notificationProfile of client.notificationProfiles.list()) {
console.log(notificationProfile.id);
}
Returns: created_at (date-time), id (string), name (string), updated_at (date-time)
Create a notification profile
Create a notification profile.
POST /notification_profiles
Optional: created_at (date-time), id (string), name (string), updated_at (date-time)
const notificationProfile = await client.notificationProfiles.create();
console.log(notificationProfile.data);
Returns: created_at (date-time), id (string), name (string), updated_at (date-time)
Get a notification profile
Get a notification profile.
GET /notification_profiles/{id}
const notificationProfile = await client.notificationProfiles.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationProfile.data);
Returns: created_at (date-time), id (string), name (string), updated_at (date-time)
Update a notification profile
Update a notification profile.
PATCH /notification_profiles/{id}
Optional: created_at (date-time), id (string), name (string), updated_at (date-time)
const notificationProfile = await client.notificationProfiles.update(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationProfile.data);
Returns: created_at (date-time), id (string), name (string), updated_at (date-time)
Delete a notification profile
Delete a notification profile.
DELETE /notification_profiles/{id}
const notificationProfile = await client.notificationProfiles.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationProfile.data);
Returns: created_at (date-time), id (string), name (string), updated_at (date-time)
List notification settings
List notification settings.
GET /notification_settings
// Automatically fetches more pages as needed.
for await (const notificationSetting of client.notificationSettings.list()) {
console.log(notificationSetting.id);
}
Returns: associated_record_type (string), associated_record_type_value (string), created_at (date-time), id (string), notification_channel_id (string), notification_event_condition_id (string), notification_profile_id (string), parameters (array[object]), status (enum: enabled, enable-received, enable-pending, enable-submitted, delete-received, delete-pending, delete-submitted, deleted), updated_at (date-time)
Add a Notification Setting
Add a notification setting.
POST /notification_settings
Optional: associated_record_type (string), associated_record_type_value (string), created_at (date-time), id (string), notification_channel_id (string), notification_event_condition_id (string), notification_profile_id (string), parameters (array[object]), status (enum: enabled, enable-received, enable-pending, enable-submitted, delete-received, delete-pending, delete-submitted, deleted), updated_at (date-time)
const notificationSetting = await client.notificationSettings.create();
console.log(notificationSetting.data);
Returns: associated_record_type (string), associated_record_type_value (string), created_at (date-time), id (string), notification_channel_id (string), notification_event_condition_id (string), notification_profile_id (string), parameters (array[object]), status (enum: enabled, enable-received, enable-pending, enable-submitted, delete-received, delete-pending, delete-submitted, deleted), updated_at (date-time)
Get a notification setting
Get a notification setting.
GET /notification_settings/{id}
const notificationSetting = await client.notificationSettings.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationSetting.data);
Returns: associated_record_type (string), associated_record_type_value (string), created_at (date-time), id (string), notification_channel_id (string), notification_event_condition_id (string), notification_profile_id (string), parameters (array[object]), status (enum: enabled, enable-received, enable-pending, enable-submitted, delete-received, delete-pending, delete-submitted, deleted), updated_at (date-time)
Delete a notification setting
Delete a notification setting.
DELETE /notification_settings/{id}
const notificationSetting = await client.notificationSettings.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(notificationSetting.data);
Returns: associated_record_type (string), associated_record_type_value (string), created_at (date-time), id (string), notification_channel_id (string), notification_event_condition_id (string), notification_profile_id (string), parameters (array[object]), status (enum: enabled, enable-received, enable-pending, enable-submitted, delete-received, delete-pending, delete-submitted, deleted), updated_at (date-time)