Go SDK
Stable
Typed client for Go services running at high QPS.
Install
go get github.com/skyaiapp/skyai-goexport 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.