Documentation Index
Fetch the complete documentation index at: https://docs.mailglyph.com/llms.txt
Use this file to discover all available pages before exploring further.
Use a secret key client for contacts methods.
import (
"context"
"os"
mailglyph "github.com/MailGlyph/mailglyph-go"
)
client := mailglyph.New(os.Getenv("MAILGLYPH_SECRET_KEY"))
ctx := context.Background()
Use cursor pagination for large lists:
limit := 50
subscribed := true
search := "john"
page1, err := client.Contacts.List(ctx, &mailglyph.ListContactsParams{
Limit: &limit,
Subscribed: &subscribed,
Search: &search,
})
if err != nil {
panic(err)
}
println(len(page1.Data), page1.HasMore)
Fetch the next page with Cursor:
if page1.HasMore && page1.Cursor != nil {
page2, err := client.Contacts.List(ctx, &mailglyph.ListContactsParams{
Limit: &limit,
Cursor: page1.Cursor,
})
if err != nil {
panic(err)
}
println(len(page2.Data))
}
subscribed := true
created, err := client.Contacts.Create(ctx, &mailglyph.CreateContactParams{
Email: "[email protected]",
Subscribed: &subscribed,
Data: map[string]interface{}{
"firstName": "John",
"plan": "premium",
},
})
if err != nil {
panic(err)
}
println(created.ID, created.Meta.IsNew, created.Meta.IsUpdate)
contact, err := client.Contacts.Get(ctx, created.ID)
if err != nil {
panic(err)
}
println(contact.Email, contact.Subscribed)
Update subscription status
unsubscribed := false
updated, err := client.Contacts.Update(ctx, created.ID, &mailglyph.UpdateContactParams{
Subscribed: &unsubscribed,
})
if err != nil {
panic(err)
}
println(updated.Subscribed)
Update custom data
updated, err := client.Contacts.Update(ctx, created.ID, &mailglyph.UpdateContactParams{
Data: map[string]interface{}{
"plan": "pro",
},
})
if err != nil {
panic(err)
}
println(updated.Data["plan"] == "pro")
count, err := client.Contacts.Count(ctx, nil)
if err != nil {
panic(err)
}
subscribedOnly := true
subscribedCount, err := client.Contacts.Count(ctx, &mailglyph.ListContactsParams{
Subscribed: &subscribedOnly,
})
if err != nil {
panic(err)
}
println(count, subscribedCount)
if err := client.Contacts.Delete(ctx, created.ID); err != nil {
panic(err)
}
See full details in the Contacts API reference.