> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orcapods.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Go SDK

> Status of the Go client, and how to call the Orca API from Go today.

<Note>
  The Go SDK is not yet published as a public module. It will ship as
  `github.com/okikorg/orca-go` with version tags; this page will be updated with
  install and usage instructions when it is released. Until then, use the
  [TypeScript SDK](/sdk/typescript) (`@orcapods/sdk` on npm), the
  [Python SDK](/sdk/python) (`orcapods` on PyPI), or call the REST API directly
  as shown below.
</Note>

## Calling the API from Go today

The full Conductor surface is a plain REST API documented in the
[API Reference](/api-reference), so the standard library is all you need.
Authenticate with a bearer API key; the tenant is derived from the key.

```go theme={null}
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
	"time"
)

func main() {
	client := &http.Client{Timeout: 120 * time.Second}

	req, _ := http.NewRequest("GET", "https://api.orcapods.ai/api/whoami", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("ORCA_API_KEY"))

	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	var who struct {
		TenantID string `json:"tenantId"`
		Role     string `json:"role"`
		AuthKind string `json:"authKind"`
	}
	if err := json.NewDecoder(resp.Body).Decode(&who); err != nil {
		panic(err)
	}
	fmt.Printf("tenant=%s role=%s via %s\n", who.TenantID, who.Role, who.AuthKind)
}
```

Streaming run events use Server-Sent Events; `GET /api/runs/{id}/events` with
`Accept: text/event-stream` works with any SSE client library.

## What the released SDK will include

The generated client mirrors the TypeScript and Python SDKs: typed request and
response structs for every public operation, per-call request options, retries,
and streaming helpers. Follow the [changelog](https://orcapods.ai/blog) for the
release announcement.
