> ## Documentation Index > Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt > Use this file to discover all available pages before exploring further. # Client SDKs > Lightweight, type-safe clients for the OpenRouter API The Client SDKs give you a thin, type-safe layer over the OpenRouter REST API. It handles authentication, request validation, and response typing so you can call any of 400+ models with a single function call, with no boilerplate and no provider-specific quirks. ## Installation | Language | Package | | ---------- | ------------------------------------------------------------------ | | TypeScript | [`@openrouter/sdk`](https://www.npmjs.com/package/@openrouter/sdk) | | Python | [`openrouter`](https://pypi.org/project/openrouter/) | | Go | [`go-sdk`](https://pkg.go.dev/github.com/OpenRouterTeam/go-sdk) | ```bash title="npm" lines theme={null} npm install @openrouter/sdk ``` ```bash title="pnpm" lines theme={null} pnpm add @openrouter/sdk ``` ```bash title="yarn" lines theme={null} yarn add @openrouter/sdk ``` ```bash title="bun" lines theme={null} bun add @openrouter/sdk ``` ```bash title="deno" lines theme={null} deno add npm:@openrouter/sdk ``` ```bash title="pip" lines theme={null} pip install openrouter ``` ```bash title="go" lines theme={null} go get github.com/OpenRouterTeam/go-sdk ``` All three SDKs are auto-generated from the OpenRouter OpenAPI spec, so new models, parameters, and endpoints appear immediately after each API release. ## When to use the Client SDKs Choose the Client SDKs when you need **direct, efficient access to model inference** and want to manage your own application logic: * **Single-turn completions**, send a prompt, get a response * **Streaming responses**, real-time token-by-token output * **Embeddings, video, and rerank**, generate vector representations, create videos, and rerank results * **API key and credit management**, programmatic control over your account * **Custom orchestration**, you handle conversation loops, tool dispatch, and state yourself The Client SDKs are intentionally lean. It mirrors the OpenRouter API surface 1:1 with full type safety, so there is no abstraction to fight when you need fine-grained control. If you want higher-level primitives for building agents (multi-turn loops, tool definitions, stop conditions, and conversation state management), see the [Agent SDK](/docs/agent-sdk/overview) instead. ## Quick example ```typescript title="TypeScript" lines theme={null} import { OpenRouter } from '@openrouter/sdk'; const client = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY, }); const response = await client.chat.send({ chatRequest: { model: 'openai/gpt-5.2', messages: [ { role: 'user', content: 'Explain quantum computing in one sentence.' }, ], }, }); if (response instanceof ReadableStream) { throw new Error('Expected a non-streaming response'); } console.log(response.choices[0].message.content); ``` ```python title="Python" lines theme={null} from openrouter import OpenRouter import os with OpenRouter(api_key=os.getenv("OPENROUTER_API_KEY")) as client: response = client.chat.send( model="openai/gpt-5.2", messages=[ {"role": "user", "content": "Explain quantum computing in one sentence."} ], ) print(response.choices[0].message.content) ``` ## Client SDKs vs Agent SDK | | Client SDKs | Agent SDK | | ---------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------- | | **Focus** | Lean API client, mirrors the REST API with full type safety | Agentic primitives, multi-turn loops, tools, stop conditions | | **Use when** | You want direct model calls and manage orchestration yourself | You want built-in agent loops, tool execution, and state management | | **Conversation state** | You manage it | Managed for you via `callModel` | | **Tool execution** | You dispatch tool calls | Automatic with the `tool()` helper | | **Languages** | TypeScript, Python, Go | TypeScript | ## Next steps * [TypeScript SDK reference](/docs/client-sdks/typescript) * [Python SDK reference](/docs/client-sdks/python) * [Go SDK reference](/docs/client-sdks/go) * [Agent SDK overview](/docs/agent-sdk/overview), for building agents with multi-turn loops and tools