Go SDK

Stable

Typed client for Go services running at high QPS.

Install

go get github.com/skyaiapp/skyai-go
export SKYAIAPP_API_KEY="sk_live_..."

Quickstart

package main

import (
  "context"
  "fmt"
  "os"

  skyai "github.com/skyaiapp/skyai-go"
)

func main() {
  client := skyai.NewClient(skyai.Config{
    APIKey:    os.Getenv("SKYAIAPP_API_KEY"),
    ProjectID: "proj_123",
  })

  res, err := client.Route(context.Background(), skyai.RouteRequest{
    Goal:     "cost",
    Strategy: "balanced",
    Messages: []skyai.Message{
      {Role: "user", Content: "Summarize this document..."},
    },
  })
  if err != nil {
    panic(err)
  }

  fmt.Println(res.Output)
fmt.Println(res.TraceID)
}

Context, timeouts, retries

ctx, cancel := context.WithTimeout(ctx, 2*time.Second)
defer cancel()

res, err := client.Route(ctx, skyai.RouteRequest{
  PolicyID: "pol_latest",
  Messages: messages,
  Retry: &skyai.RetryPolicy{
    MaxAttempts: 2,
    BackoffMs:   200,
  },
})

The beta SDK mirrors server-side retry semantics. For strict idempotency, attach an external request ID in metadata.

Go SDK — SkyAIApp