SDKsGo SDK
Go SDK
Install and use the github.com/avnology/sdk-go package for Go applications.
Go SDK
The github.com/avnology/sdk-go package provides an idiomatic Go client for the Avnology ID API. It uses functional options, returns (result, error) tuples, and supports context-based cancellation.
Installation
go get github.com/avnology/sdk-go@latestRequires Go 1.24 or later.
Quick start
package main
import (
"context"
"fmt"
"log"
avnologyid "github.com/avnology/sdk-go"
)
func main() {
client, err := avnologyid.NewClient(
avnologyid.WithBaseURL("https://api.id.avnology.com"),
avnologyid.WithAPIKey("ak_live_..."),
)
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
// List users
users, err := client.Admin.ListUsers(ctx, &avnologyid.ListUsersParams{
PageSize: 50,
})
if err != nil {
log.Fatal(err)
}
for _, user := range users.Users {
fmt.Printf("%s: %s\n", user.ID, user.Email)
}
}Client initialization
// With API key (service account -- most common for server-side)
client, err := avnologyid.NewClient(
avnologyid.WithBaseURL("https://api.id.avnology.com"),
avnologyid.WithAPIKey("ak_live_..."),
)
// With client credentials (OAuth M2M)
client, err := avnologyid.NewClient(
avnologyid.WithBaseURL("https://api.id.avnology.com"),
avnologyid.WithClientCredentials("app_abc123", "sk_live_..."),
)
// With custom HTTP client
client, err := avnologyid.NewClient(
avnologyid.WithBaseURL("https://api.id.avnology.com"),
avnologyid.WithAPIKey("ak_live_..."),
avnologyid.WithHTTPClient(&http.Client{Timeout: 10 * time.Second}),
)Configuration options
| Option | Description |
|---|---|
WithBaseURL(url) | Avnology ID instance URL (required) |
WithAPIKey(key) | API key for service account auth |
WithClientCredentials(id, secret) | OAuth client credentials |
WithHTTPClient(client) | Custom *http.Client |
WithTimeout(duration) | Request timeout (default: 30s) |
WithRetries(n) | Max retry attempts (default: 3) |
WithUserAgent(ua) | Custom User-Agent header |
Namespace structure
client.Auth // Authentication methods
client.OAuth // OAuth 2.1 methods
client.Permissions // Permission checks
client.Admin // Admin API (users, orgs, groups, webhooks)Next steps
- Configuration -- Advanced client configuration
- Authentication -- Login and session management
- OAuth 2.1 -- Authorization flows
- Admin API -- User and org management
- Type Reference -- Go struct types
- Error Reference -- Error handling patterns