Pre-GA · package install commands and public sign-up gated until GA. Existing tenants receive prebuilt artifacts and a per-tenant install endpoint.

Python

Async-native. Works under asyncio and inside FastAPI/Starlette. Sync wrappers provided for scripts and notebooks.

pip install {{TBD-install-command-py}}

from deeptap import DeepTap
client = DeepTap(api_key="dt_live_...")

result = await client.search(
    query="What is the EU AI Act enforcement date for general-purpose models?",
    depth=1,
)
for fact in result.facts:
    print(fact.claim, fact.source_url, fact.firewall_verdict)

TypeScript / Node

ESM and CommonJS builds. Works in Node 20+, Bun, Deno. Browser SDK is intentionally not shipped; retrieval should not be exposed to untrusted clients.

npm install {{TBD-install-command-node}}

import { DeepTap } from "deeptap";
const client = new DeepTap({ apiKey: process.env.DEEPTAP_API_KEY });

const result = await client.search({
  query: "...",
  depth: 1,
});
for (const fact of result.facts) {
  console.log(fact.claim, fact.sourceUrl, fact.firewallVerdict);
}

Go

Module path under the RelayOne org. Idiomatic Go: context-aware, no global state, errors returned, no panics on remote failure.

go get {{TBD-install-command-go}}

import "github.com/RelayOne/deeptap-go"

client := deeptap.New(deeptap.WithAPIKey(os.Getenv("DEEPTAP_API_KEY")))
res, err := client.Search(ctx, deeptap.SearchRequest{
    Query: "...",
    Depth: 1,
})
if err != nil { return err }
for _, f := range res.Facts {
    fmt.Println(f.Claim, f.SourceURL, f.FirewallVerdict)
}

Auth across SDKs

Every SDK accepts all four auth modes. Pass an API key for the simplest case; pass an x402 receipt for machine-to-machine commerce; pass an MPP envelope for multi-party flows; pass a TrueCom-signed envelope for signed-receipt agentic commerce. The constructor pattern is the same in every language. See Auth and payment.

Streaming for depth 3

Depth 3 streams partial progress as the stopping AI evaluates saturation. Each SDK exposes an async iterator over progress events. Cancel mid-stream to stop the run; usage is billed for the rounds already executed.

Errors and retries

Transient errors (timeouts, 5xx, rate-limit) are retryable with exponential backoff; SDKs retry by default with a sane policy. Non-retryable errors (auth failure, malformed envelope, unsupported depth) raise immediately. Error envelopes include a request_id that DeepTap support can correlate against the audit log.

What is not in the SDKs

The SDKs are clients, not retrieval engines. They do not run the pipeline locally. They do not cache facts on the client. They do not embed firewall logic. The protocol-side guarantees only hold when the engine evaluates the query; client-side optimizations would invalidate the receipt. Use the engine.