agent, err := client.Agents.Get(ctx, "agent-id")
if err != nil {
switch e := err.(type) {
case *grantex.AuthError:
// 401 or 403 — invalid or expired API key
log.Printf("Auth failed (%d): %s", e.StatusCode, e.Message)
case *grantex.APIError:
// Other API errors (400, 404, 422, 500, etc.)
log.Printf("API error %d [%s]: %s", e.StatusCode, e.Code, e.Message)
case *grantex.NetworkError:
// Network issues — retry or fail gracefully
log.Printf("Network error: %s (cause: %v)", e.Message, e.Cause)
default:
log.Printf("Unexpected: %v", err)
}
}