> ## 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.

# Events

> Track events and list event names with the MailGlyph Go SDK.

Use a **public key** for tracking events, and a **secret key** for listing event names.

## Track an event (`Events.Track`)

```go theme={null}
import (
  "context"

  mailglyph "github.com/MailGlyph/mailglyph-go"
)

ctx := context.Background()
tracker := mailglyph.New("pk_your_public_key")
subscribed := true

result, err := tracker.Events.Track(ctx, &mailglyph.TrackEventParams{
  Email: "user@example.com",
  Event: "purchase",
  Subscribed: &subscribed,
  Data: map[string]interface{}{
    "product": "premium",
    "amount": 99,
  },
})
if err != nil {
  panic(err)
}

println(result.Success, result.Data.Event, result.Data.Timestamp)
```

## List event names (`Events.GetNames`)

```go theme={null}
client := mailglyph.New("sk_your_secret_key")

names, err := client.Events.GetNames(ctx)
if err != nil {
  panic(err)
}

println(len(names.EventNames))
```

## List event names with alias (`Events.ListNames`)

`ListNames()` is an alias for `GetNames()`:

```go theme={null}
names, err := client.Events.ListNames(ctx)
if err != nil {
  panic(err)
}

println(len(names.EventNames))
```

See endpoint details in the [Track event API reference](https://docs.mailglyph.com/api-reference/public-api/trackEvent.md) and [List event names API reference](https://docs.mailglyph.com/api-reference/events/listEventNames.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.