Get Contact
Copy
Ask AI
result, err := client.Contacts.Get(context.TODO(), "con_abc123")
if err != nil {
panic(err)
}
fmt.Println(result.ID)
fmt.Println(result.PhoneNumber)
fmt.Println(result.CountryCode)
fmt.Println(result.AvailableChannels)
fmt.Println(result.DefaultChannel)
Get Contact by Phone
Copy
Ask AI
result, err := client.Contacts.GetByPhone(context.TODO(), "+14155551234")
if err != nil {
panic(err)
}
fmt.Println(result.ID)
fmt.Println(result.AvailableChannels) // ["sms", "whatsapp"]
Update Contact
Copy
Ask AI
result, err := client.Contacts.Update(context.TODO(), "con_abc123", zavudev.ContactUpdateParams{
DefaultChannel: zavudev.String("whatsapp"),
Metadata: map[string]string{
"name": "John Doe",
"tier": "premium",
},
})
List Contacts
Copy
Ask AI
result, err := client.Contacts.List(context.TODO(), zavudev.ContactListParams{
Limit: zavudev.Int(50),
})
if err != nil {
panic(err)
}
for _, contact := range result.Items {
fmt.Println(contact.ID, contact.PhoneNumber)
}
// Filter by phone number
result, err := client.Contacts.List(context.TODO(), zavudev.ContactListParams{
PhoneNumber: zavudev.String("+1415"),
})
// Pagination
var cursor *string
for {
result, err := client.Contacts.List(context.TODO(), zavudev.ContactListParams{
Cursor: cursor,
Limit: zavudev.Int(50),
})
if err != nil {
panic(err)
}
for _, contact := range result.Items {
fmt.Println(contact.ID)
}
if result.NextCursor == nil {
break
}
cursor = result.NextCursor
}
Phone Introspection
Validate a phone number and check available channels:Copy
Ask AI
result, err := client.Introspect.Phone(context.TODO(), zavudev.PhoneIntrospectionParams{
PhoneNumber: zavudev.String("+14155551234"),
})
if err != nil {
panic(err)
}
fmt.Println(result.ValidNumber) // true
fmt.Println(result.CountryCode) // "US"
fmt.Println(result.NationalFormat) // "(415) 555-1234"
fmt.Println(result.LineType) // "mobile"
fmt.Println(result.AvailableChannels) // ["sms", "whatsapp"]
if result.Carrier != nil {
fmt.Println(result.Carrier.Name) // "Verizon Wireless"
}
