api/go/telnyx-numbers-services-go/SKILL.md
Configure voicemail, voice channels, and emergency (E911) services for your phone numbers. This skill provides Go SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-numbers-services-goInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
go get github.com/team-telnyx/telnyx-go
import (
"context"
"fmt"
"os"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
client := telnyx.NewClient(
option.WithAPIKey(os.Getenv("TELNYX_API_KEY")),
)
All examples below assume client is already initialized as shown above.
Returns the dynamic emergency addresses according to filters
GET /dynamic_emergency_addresses
page, err := client.DynamicEmergencyAddresses.List(context.TODO(), telnyx.DynamicEmergencyAddressListParams{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
Creates a dynamic emergency address.
POST /dynamic_emergency_addresses — Required: house_number, street_name, locality, administrative_area, postal_code, country_code
dynamicEmergencyAddress, err := client.DynamicEmergencyAddresses.New(context.TODO(), telnyx.DynamicEmergencyAddressNewParams{
DynamicEmergencyAddress: telnyx.DynamicEmergencyAddressParam{
AdministrativeArea: "TX",
CountryCode: telnyx.DynamicEmergencyAddressCountryCodeUs,
HouseNumber: "600",
Locality: "Austin",
PostalCode: "78701",
StreetName: "Congress",
},
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyAddress.Data)
Returns the dynamic emergency address based on the ID provided
GET /dynamic_emergency_addresses/{id}
dynamicEmergencyAddress, err := client.DynamicEmergencyAddresses.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyAddress.Data)
Deletes the dynamic emergency address based on the ID provided
DELETE /dynamic_emergency_addresses/{id}
dynamicEmergencyAddress, err := client.DynamicEmergencyAddresses.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyAddress.Data)
Returns the dynamic emergency endpoints according to filters
GET /dynamic_emergency_endpoints
page, err := client.DynamicEmergencyEndpoints.List(context.TODO(), telnyx.DynamicEmergencyEndpointListParams{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
Creates a dynamic emergency endpoints.
POST /dynamic_emergency_endpoints — Required: dynamic_emergency_address_id, callback_number, caller_name
dynamicEmergencyEndpoint, err := client.DynamicEmergencyEndpoints.New(context.TODO(), telnyx.DynamicEmergencyEndpointNewParams{
DynamicEmergencyEndpoint: telnyx.DynamicEmergencyEndpointParam{
CallbackNumber: "+13125550000",
CallerName: "Jane Doe Desk Phone",
DynamicEmergencyAddressID: "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
},
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyEndpoint.Data)
Returns the dynamic emergency endpoint based on the ID provided
GET /dynamic_emergency_endpoints/{id}
dynamicEmergencyEndpoint, err := client.DynamicEmergencyEndpoints.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyEndpoint.Data)
Deletes the dynamic emergency endpoint based on the ID provided
DELETE /dynamic_emergency_endpoints/{id}
dynamicEmergencyEndpoint, err := client.DynamicEmergencyEndpoints.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", dynamicEmergencyEndpoint.Data)
Returns the non-US voice channels for your account.
GET /channel_zones
page, err := client.ChannelZones.List(context.TODO(), telnyx.ChannelZoneListParams{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
Update the number of Voice Channels for the Non-US Zones.
PUT /channel_zones/{channel_zone_id} — Required: channels
channelZone, err := client.ChannelZones.Update(
context.TODO(),
"channel_zone_id",
telnyx.ChannelZoneUpdateParams{
Channels: 0,
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", channelZone.ID)
Returns the US Zone voice channels for your account.
GET /inbound_channels
inboundChannels, err := client.InboundChannels.List(context.TODO())
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", inboundChannels.Data)
Update the number of Voice Channels for the US Zone.
PATCH /inbound_channels — Required: channels
inboundChannel, err := client.InboundChannels.Update(context.TODO(), telnyx.InboundChannelUpdateParams{
Channels: 7,
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", inboundChannel.Data)
Retrieve a list of all phone numbers using Channel Billing, grouped by Zone.
GET /list
response, err := client.List.GetAll(context.TODO())
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
Retrieve a list of phone numbers using Channel Billing for a specific Zone.
GET /list/{channel_zone_id}
response, err := client.List.GetByZone(context.TODO(), "channel_zone_id")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
Returns the voicemail settings for a phone number
GET /phone_numbers/{phone_number_id}/voicemail
voicemail, err := client.PhoneNumbers.Voicemail.Get(context.TODO(), "123455678900")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", voicemail.Data)
Create voicemail settings for a phone number
POST /phone_numbers/{phone_number_id}/voicemail
voicemail, err := client.PhoneNumbers.Voicemail.New(
context.TODO(),
"123455678900",
telnyx.PhoneNumberVoicemailNewParams{
VoicemailRequest: telnyx.VoicemailRequestParam{},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", voicemail.Data)
Update voicemail settings for a phone number
PATCH /phone_numbers/{phone_number_id}/voicemail
voicemail, err := client.PhoneNumbers.Voicemail.Update(
context.TODO(),
"123455678900",
telnyx.PhoneNumberVoicemailUpdateParams{
VoicemailRequest: telnyx.VoicemailRequestParam{},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", voicemail.Data)
tools
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
tools
Build browser-based VoIP calling apps using Telnyx WebRTC JavaScript SDK. Covers authentication, voice calls, events, debugging, call quality metrics, and AI Agent integration. Use for web-based real-time communication.
tools
Build VoIP calling apps on iOS using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, CallKit integration, PushKit/APNS push notifications, call quality metrics, and AI Agent integration. Use when implementing real-time voice communication on iOS.
tools
Build cross-platform VoIP calling apps with Flutter using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, push notifications (FCM + APNS), call quality metrics, and AI Agent integration. Works on Android, iOS, and Web.