OPENAPI · CODE-GENERATED · GITHUB
SDKS · OVERVIEW

Native libraries for every runtime your team writes.

All SDKs are generated from the same OpenAPI 3.1 spec and hand-finished for idiomatic ergonomics. They share retry policy, idempotency, webhook verification, and pagination — change a behavior in one, and it ships everywhere.

SDKVERSIONSTATUSLICENSE
Python3.6.1● STABLEApache-2.0
TypeScript / Node3.6.1● STABLEApache-2.0
Go2.4.0● STABLEApache-2.0
Rust0.9.2● BETAApache-2.0
CLI (td)2026.06.20● STABLEApache-2.0
PY
Python● STABLE
threatdefendr · 3.6.1 · Python 3.10+ · async + sync
SHELLinstall
$ pip install threatdefendr
PYTHONtail high-severity events
from threatdefendr import Client td = Client(token=os.environ["TD_TOKEN"], workspace="acme-prod") for ev in td.events.tail(severity="HIGH"): print(ev.ts, ev.id, ev.actor.name, ev.enrichments.get("intel.adversary"))
TS
TypeScript / Node● STABLE
@threatdefendr/sdk · 3.6.1 · Node 20+ · browser-safe
SHELLinstall
$ pnpm add @threatdefendr/sdk
TYPESCRIPTcreate a case
import { Client } from "@threatdefendr/sdk"; const td = new Client({ token: process.env.TD_TOKEN!, workspace: "acme-prod" }); const { id } = await td.cases.create({ severity: "HIGH", title: "Service account from corp egress", detections: ["det_2vK4nT"], owner: "alex@acme.io", }); console.log(`opened ` + id);
GO
Go● STABLE
github.com/threatdefendr/go-sdk · v2.4.0 · Go 1.22+
SHELLinstall
$ go get github.com/threatdefendr/go-sdk/v2
GOisolate a host
import td "github.com/threatdefendr/go-sdk/v2" c := td.NewClient(td.Config{ Token: os.Getenv("TD_TOKEN"), Workspace: "acme-prod" }) resp, err := c.Contain.IsolateHost(ctx, td.IsolateHostInput{ HostID: "h_47193", Reason: "IRONVEIL signed-driver match", RequiresApproval: false, })
RS
Rust● BETA
threatdefendr · 0.9.2 · tokio · zero-cost retries
SHELLadd dep
$ cargo add threatdefendr
RUSTverify a webhook
use threatdefendr::webhooks::verify; fn handle(req: Request) -> Result<(), Error> { verify(&WH_SECRET, req.body(), req.header("X-TD-Signature")?, req.header("X-TD-Timestamp")?)?; Ok(()) }
td
CLI · td● STABLE
macOS · Linux · Windows · single static binary · 18 MB
SHELLinstall
$ brew install threatdefendr/tap/td # macOS · Linuxbrew $ curl -fsSL https://td.sh/install | sh # everywhere else
SHELLcommon commands
$ td events tail --severity=high $ td detect deploy ./detections/ $ td case open --severity=HIGH --title="oncall handoff" $ td contain isolate-host --id=h_47193 $ td adversary show IRONVEIL --iocs

Feature parity

Stable SDKs cover the full surface. Beta SDKs are usable in production but may be missing convenience helpers — the underlying API is identical.

SURFACEPYTSGORSCLI
{{ r.surface }} {{ r.py.mark }} {{ r.ts.mark }} {{ r.go.mark }} {{ r.rs.mark }} {{ r.cli.mark }}
← PREV API reference NEXT → Guides