Avnology ID
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@latest

Requires 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

OptionDescription
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

On this page