Go SDK.

The official Go client. Idiomatic, context-aware, zero-allocation on the happy path. Requires Go 1.21+. Source at wrxstack/sdk-go.

Install

go get github.com/wrxstack/sdk-go

Quickstart

package main

import (
  "context"
  "fmt"
  "github.com/wrxstack/sdk-go"
)

func main() {
  client := wrxstack.NewClient()
  ctx := context.Background()

  task, err := client.Tasks.Create(ctx, &wrxstack.TaskCreate{
    Title:    "Review MSA",
    Assignee: "priya@acme.com",
  })
  if err != nil { panic(err) }

  fmt.Println(task.ID, task.URL)
}

Context

Every method takes a context.Context. Use it for timeouts, cancellation, and tracing.

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

task, err := client.Tasks.Get(ctx, "tsk_01HQ3K...")

Method index

Coverage is roughly 80% of the Python and TypeScript SDKs. The high-traffic endpoints (Tasks, Assistants, Documents, Search, Webhooks) are complete; the long tail is a work in progress.

Errors

task, err := client.Tasks.Get(ctx, "tsk_doesnt_exist")
if wrxstack.IsNotFound(err) {
  handleMissing()
}
if wrxstack.IsRateLimited(err) {
  retryAfter := wrxstack.RetryAfter(err)
  time.Sleep(retryAfter)
}