Go SDK
The official Audian SDK for Go.
Installation​
Install the SDK using Go modules:
go get github.com/audian/audian-go
Quick Start​
package main
import (
"fmt"
"log"
audian "github.com/audian/audian-go"
)
func main() {
client := audian.NewClient(
audian.WithAPIKey("YOUR_API_KEY"),
)
// Search for phone numbers
numbers, err := client.Numbers.Search(nil, &audian.SearchNumbersRequest{
Location: "US-CA-415",
Limit: 10,
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d numbers\n", len(numbers.Data.Numbers))
}
Configuration​
Initialize Client​
client := audian.NewClient(
audian.WithAPIKey("sk_live_..."),
audian.WithBaseURL("https://api.audian.com:8443/v2"), // Optional
audian.WithTimeout(30 * time.Second), // Optional
audian.WithMaxRetries(3), // Optional
audian.WithBackoffFactor(2), // Optional
)
Environment Variables​
export AUDIAN_API_KEY='sk_live_...'
apiKey := os.Getenv("AUDIAN_API_KEY")
client := audian.NewClient(
audian.WithAPIKey(apiKey),
)
Phone Numbers API​
Search Numbers​
numbers, err := client.Numbers.Search(nil, &audian.SearchNumbersRequest{
Location: "US-CA-415",
Pattern: "415*",
Features: []string{"sms", "mms"},
Limit: 20,
Offset: 0,
})
if err != nil {
log.Fatal(err)
}
for _, number := range numbers.Data.Numbers {
fmt.Printf("Number: %s\n", number.Number)
}
List Your Numbers​
response, err := client.Numbers.List(nil, &audian.ListNumbersRequest{
Limit: 20,
Offset: 0,
Status: "active",
})
if err != nil {
log.Fatal(err)
}
for _, number := range response.Data.Numbers {
fmt.Printf("Number: %s\n", number.Number)
}
Get Number Details​
number, err := client.Numbers.Get(nil, "num_abc123")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Number: %s\n", number.Data.Number)
Purchase a Number​
purchased, err := client.Numbers.Purchase(nil, &audian.PurchaseNumberRequest{
Number: "+14155551234",
FriendlyName: "Support Line",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Purchased: %s\n", purchased.Data.Number)
Update Number Configuration​
updated, err := client.Numbers.UpdateConfig(nil, "num_abc123", &audian.UpdateNumberConfigRequest{
FriendlyName: "Support Line",
CallForwarding: &audian.CallForwarding{
Enabled: true,
ForwardTo: "+14155559999",
RingsBeforeForward: 4,
},
Voicemail: &audian.Voicemail{
Enabled: true,
Transcription: true,
},
})
if err != nil {
log.Fatal(err)
}
Set Caller ID​
callerId, err := client.Numbers.SetCallerId(nil, "num_abc123", &audian.SetCallerIdRequest{
CallerIdNumber: "+14155551234",
CallerIdName: "Support",
})
if err != nil {
log.Fatal(err)
}
Configure E911​
e911, err := client.Numbers.SetE911(nil, "num_abc123", &audian.SetE911Request{
AddressLine1: "123 Main Street",
AddressLine2: "Suite 100",
City: "San Francisco",
State: "CA",
PostalCode: "94102",
Country: "US",
CustomerName: "Acme Corp",
})
if err != nil {
log.Fatal(err)
}
SMS API​
Send SMS​
response, err := client.SMS.Send(nil, &audian.SendSMSRequest{
To: "+14155551234",
From: "+14155559999",
Message: "Hello, World!",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("SMS ID: %s\n", response.Data.ID)
Send Batch SMS​
response, err := client.SMS.SendBatch(nil, &audian.SendBatchSMSRequest{
Messages: []audian.SMSMessage{
{To: "+14155551234", Message: "Hello 1"},
{To: "+14155551235", Message: "Hello 2"},
{To: "+14155551236", Message: "Hello 3"},
},
})
if err != nil {
log.Fatal(err)
}
Get SMS Details​
sms, err := client.SMS.Get(nil, "sms_abc123")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Status: %s\n", sms.Data.Status)