SDK reference
For developers, nothing has to change: the gateway is OpenAI-compatible and Anthropic-compatible, so existing provider SDKs work as-is. For operators automating configuration management, typed Tetrate Agent Router SDKs are published for Go, Python, and TypeScript.
Use an existing provider SDK
The lowest-friction path is to keep the SDK an application already uses. The OpenAI and Anthropic client libraries call the same API shapes the gateway serves, so only two things change: the base URL is set to the gateway endpoint, and the API key is an Agent Router key rather than a provider key. Existing request and response handling is untouched. This approach is covered end to end, with per-language snippets, in Integrate the gateway with an app.
Typed Agent Router SDKs
A typed client for Go, Python, or TypeScript can be downloaded when a generated, strongly typed surface over the management API is preferred. Each artifact is the Agent Router SDK source tree at the release shown above, distributed from https://tare.tetrate.ai/tools/sdks/stable/.
Go
Typed client, source tree.
Download .tar.gz
Python
Typed client, source tree.
Download .tar.gz
TypeScript
Typed client, source tree.
Download .tgz
Verify downloads
| Artifact | Version | Size | SHA-256 |
|---|---|---|---|
agentrouter-go-0.1.1.tar.gz | 0.1.1 | 1.2 MB | 25c9043731cc… |
agentrouter-python-0.1.1.tar.gz | 0.1.1 | 313.8 KB | 030ff480227b… |
agentrouter-typescript-0.1.1.tgz | 0.1.1 | 557.9 KB | 2ce559f9a787… |
Quickstarts
Each quickstart installs the client for one language, then makes a first read-only identity call to confirm the key and base URL are wired correctly. The curl quickstart needs no SDK at all.
Go
Install from the local tarball and run a first whoami call.
Python
Install the sdist and run a first whoami call.
TypeScript
Install the local pack and run a first whoami call.
curl
Make a first whoami call with no SDK, using only an API key.
Clients
Each SDK exposes one client per management API service, reached from the client constructed in the quickstarts. A client's methods are the service's operations, one method per operation: each takes the operation's request message and returns its response, so the service's page in the API reference documents every method's fields and errors. A method is named after its operation in the language's own convention, so ListBudgetPolicies is ListBudgetPolicies in Go, list_budget_policies in Python, and listBudgetPolicies in TypeScript.
| Client | Go | Python | TypeScript | API reference |
|---|---|---|---|---|
| Admin | client.Admin() | client.admin | client.admin | AdminService |
| AI keys | client.AiKeys() | client.ai_keys | client.aiKeys | AiKeysService |
| API keys | client.ApiKeys() | client.api_keys | client.apiKeys | ApiKeysService |
| Auth | client.Auth() | client.auth | client.auth | AuthService |
| Catalog | client.Catalog() | client.catalog | client.catalog | CatalogService |
| Clients | client.Clients() | client.clients | client.clients | ClientsService |
| Customer metrics | client.CustomerMetrics() | client.customer_metrics | client.customerMetrics | CustomerMetricsService |
| Customer request logs | client.CustomerRequestLogs() | client.customer_request_logs | client.customerRequestLogs | CustomerRequestLogsService |
| Gateway authentication policies (from 0.9.0) | client.GatewayAuthPolicy() | client.gateway_auth_policy | client.gatewayAuthPolicy | GatewayAuthPolicyService |
| Identity | client.Identity() | client.identity | client.identity | IdentityService |
| Inference ingress | client.InferenceIngress() | client.inference_ingress | client.inferenceIngress | InferenceIngressService |
| MCP catalog | client.MCPCatalog() | client.mcp_catalog | client.mcpCatalog | MCPCatalogService |
| MCP OAuth clients | client.McpOAuthClients() | client.mcp_oauth_clients | client.mcpOauthClients | McpOAuthClientsService |
| MCP profiles | client.MCPProfiles() | client.mcp_profiles | client.mcpProfiles | MCPProfilesService |
| Me | client.Me() | client.me | client.me | MeService |
| Policies (from 0.9.0) | client.Policy() | client.policy | client.policy | PolicyService |
| Projects | client.Projects() | client.projects | client.projects | ProjectsService |
| Request logs | client.RequestLogs() | client.request_logs | client.requestLogs | RequestLogsService |
| Secrets | client.Secret() | client.secret | client.secret | SecretService |
| Telemetry | client.Telemetry() | client.telemetry | client.telemetry | TelemetryService |
| Tenancy | client.Tenancy() | client.tenancy | client.tenancy | TenancyService |
The request and response messages are generated with each SDK:
- Go: the
genapipackages of the module, for examplegithub.com/tetrateio/agentrouter-go/genapi/api/tars/policy/v1. - Python: importing
agentrouter_sdkmakes the generated modules importable astars.<service>.v1, for examplefrom tars.policy.v1 import policy_pb2. - TypeScript: a method accepts a plain object in the shape of its request message.
The guardrails, RBAC, alert destination, content, and email domain policy services have no SDK client in 0.1.1, and are called through the API directly.
API specifications
Machine-readable descriptions of the management API are available as a combined OpenAPI 3.1 document and a Postman v2.1 collection. The OpenAPI document supports client generation and contract tooling; the Postman collection supports interactive exploration and testing.
OpenAPI spec
OpenAPI 3.1, YAML, current stable release.
Download .yaml
Postman collection
Postman v2.1, JSON, current stable release.
Download .json
Verify downloads
Both files carry the product release version in their info.version field and in their versioned filename. The stable manifest lists every published artifact with its filename, version, size, and full SHA-256 digest, and the tags directory keeps an immutable copy per release.
The Agent Router developer portal renders the same manifest and is the authoritative source for the current release.
Related references