Back to Docs

Go SDK

70 methods for Go backends. Full parity with TypeScript and Python SDKs.

go get github.com/evalguard/evalguard-go

Installation

terminal
go get github.com/evalguard/evalguard-go

Quick Start

main.go
package main

import (
  "context"
  "fmt"
  "log"

  "github.com/evalguard/evalguard-go"
)

func main() {
  client, err := evalguard.NewClient("eg_live_your_key",
    evalguard.WithBaseURL("https://evalguard.ai/api/v1"),
  )
  if err != nil {
    log.Fatal(err)
  }

  // Run an evaluation
  result, err := client.RunEval(context.Background(), &evalguard.RunEvalRequest{
    DatasetID: "ds_abc123",
    Model:     "gpt-4o",
    Metrics:   []string{"accuracy", "relevance", "faithfulness"},
  })
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("Score: %v\n", result.Metrics)
}

Configuration

main.go
// Custom timeout
client, _ := evalguard.NewClient("eg_...",
  evalguard.WithTimeout(60 * time.Second),
)

// Custom HTTP client (for proxies, mTLS, etc.)
client, _ := evalguard.NewClient("eg_...",
  evalguard.WithHTTPClient(&http.Client{
    Transport: customTransport,
  }),
)

All Methods (68)

Evaluations

  • RunEval()
  • GetEval()
  • ListEvals()
  • ListEvalRuns()

Security

  • RunSecurityScan()
  • GetSecurityGraders()
  • GetSecurityEffectiveness()
  • GetSecurityReport()
  • CodeScan()

Shadow AI

  • AnalyzeShadowAI()

AI-SPM

  • GetAIPosture()

Smart Copilot

  • AnalyzeCopilot()

Gateway

  • GetGatewayHealth()
  • GetGatewayStats()

Traces

  • GetTraces()
  • GetTrace()
  • SearchTraces()
  • CreateTrace()
  • IngestOTLP()

Cost / FinOps

  • GetCost()
  • GetCostForecast()
  • GetCostSavings()
  • GetCostBudget()
  • GetCostAnomalies()
  • GetCostRecommendations()

Monitoring

  • GetMonitoringAlerts()
  • GetMonitoringDrift()
  • GetMonitoringAnalytics()
  • GetMonitoringSLA()

Compliance

  • GetCompliance()
  • CheckCompliance()
  • GetComplianceGaps()
  • GetEUAIAct()
  • GetModelCards()

Prompts

  • CreatePrompt()
  • ListPrompts()

Datasets

  • CreateDataset()
  • ListDatasets()

Firewall & Guardrails

  • ListFirewallRules()
  • ListGuardrails()
  • GenerateGuardrails()

Team & Org

  • ListTeam()
  • ListApiKeys()
  • ListWebhooks()
  • GetAuditLogs()

Other

  • Ask()
  • FormalVerify()
  • GetLeaderboard()
  • SubmitTicket()
  • GetThreatIntelligence()
  • GetAISBOM()
  • GenerateAISBOM()
  • GetSIEMConnectors()
  • GetSettings()
  • ListNotifications()
  • ListTemplates()
  • GetMarketplace()
  • ListEvalSchedules()
  • ListIncidents()
  • GetDashboardStats()
  • DetectDrift()
  • SmartRoute()
  • GetAutopilotConfig()
  • ListPipelines()
  • ListAnnotations()
  • CreateAnnotation()
  • Search()
  • ListTickets()

Error Handling

errors.go
// Typed errors for precise handling
result, err := client.RunEval(ctx, req)
if err != nil {
  var authErr *evalguard.AuthError
  var rlErr *evalguard.RateLimitError

  switch {
  case errors.As(err, &authErr):
    log.Fatal("Invalid API key:", authErr.Message)
  case errors.As(err, &rlErr):
    log.Printf("Rate limited, retry after %v", rlErr.RetryAfter)
    time.Sleep(rlErr.RetryAfter)
  default:
    log.Fatal("API error:", err)
  }
}

Shadow AI Detection

shadow.go
result, err := client.AnalyzeShadowAI(ctx, &evalguard.ShadowAIRequest{
  Input:    "My SSN is 123-45-6789 and CC 4111-1111-1111-1111",
  Provider: "openai",
  Model:    "gpt-4o",
})
// result.PIIDetails.Types = ["ssn", "creditCard"]
// result.Event.RiskScore = 25

AI-SPM (Security Posture)

spm.go
posture, err := client.GetAIPosture(ctx, "project-id")
// posture.Posture.OverallScore = 85
// posture.Models[0].Name = "gpt-4o"
// posture.Models[0].Misconfigurations = [...]
// posture.DataFlows[0].CrossBorder = true

Smart Copilot

copilot.go
analysis, err := client.AnalyzeCopilot(ctx, &evalguard.CopilotAnalyzeRequest{
  Type:     "security",
  Model:    "gpt-4o",
  PassRate: 0.6,
  Findings: []map[string]any{
    {"type": "prompt-injection", "severity": "critical", "title": "Injection", "description": "...", "passed": false},
  },
})
// analysis.Analysis["overallRisk"] = "critical"
// analysis.Analysis["immediateActions"] = [...]
// analysis.Analysis["complianceImpact"] = [{framework: "GDPR", status: "at-risk"}]
Documentation | EvalGuard