> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowra.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Official TypeScript and Python clients for the Flowra API — install, auth, namespaces, and when to use MCP instead.

Official Flowra SDKs wrap the **public API-key surface** (the same operations as the [API reference](/api-reference)). Use them from your backend instead of hand-writing HTTP for common flows.

| Package       | Language              | Notes                                            |
| ------------- | --------------------- | ------------------------------------------------ |
| `@flowra/sdk` | TypeScript / Node 18+ | OpenAPI-generated client + product facade        |
| `flowra`      | Python 3.10+          | Hand-written facade (stdlib HTTP, no extra deps) |

## When to use the SDK vs MCP vs curl

| Approach        | Use when                                                                                                   |
| --------------- | ---------------------------------------------------------------------------------------------------------- |
| **SDK**         | Your app/backend calls Flowra (list tools, run workflows, manage skills, knowledge, MCP servers, …)        |
| **MCP**         | An IDE or agent runtime (Cursor, Claude Desktop) should discover and call tools — see [MCP](/guides/mcp)   |
| **HTTP / curl** | Quick checks, languages without an SDK yet — [Quickstart](/quickstart) and [API reference](/api-reference) |

The SDKs are **not** a Composio-style agent framework. For agent-side tool access, prefer MCP.

## Install

**TypeScript**

```bash theme={null}
npm install @flowra/sdk
# or: pnpm add @flowra/sdk
```

If the package is not on the registry yet, install from the Flowra monorepo: `sdks/typescript` (build with `pnpm build`).

**Python**

```bash theme={null}
pip install flowra
# or from the monorepo:
pip install -e sdks/python
```

## Authenticate

Both clients send your **project API key** as `x-api-key`. Optionally set an external user with `username` / `x-username` for [multi-tenancy](/guides/multi-tenancy).

```ts theme={null}
import { Flowra } from '@flowra/sdk';

const flowra = new Flowra({
  apiKey: process.env.FLOWRA_API_KEY!,
  // username: 'customer_alice', // optional
  // baseUrl: 'https://flowra.dev', // default
});
```

```python theme={null}
from flowra import Flowra

flowra = Flowra(api_key="...", username="customer_alice")  # username optional
```

Create keys in the dashboard — [Authentication](/authentication).

## Namespaces

High-level helpers cover the main product areas (names may use camelCase in TypeScript and snake\_case in Python):

`tools`, `toolkits`, `skills`, `workflows`, `connections`, `authConfigs` / `auth_configs`, `users`, `triggers`, `chat`, `files`, `knowledge`, `database`, `sandbox`, `mcp`, `llm`, `browser`

Anything not wrapped on the facade is still available:

* TypeScript: `flowra.raw` (generated OpenAPI operations)
* Python: `flowra.request(method, path, ...)`

## Tutorials

<CardGroup cols={2}>
  <Card title="TypeScript SDK" icon="js" href="/guides/sdk-typescript">
    Install, list tools, run a workflow, skills, and raw client.
  </Card>

  <Card title="Python SDK" icon="python" href="/guides/sdk-python">
    Install, list tools, run a workflow, as\_user, and escape hatch.
  </Card>
</CardGroup>

## Related

* [Quickstart](/quickstart) — First curl request
* [API reference](/api-reference) — Full HTTP schemas
* [Multi-tenancy](/guides/multi-tenancy) — `x-username` scoping
* [MCP](/guides/mcp) — Agent / IDE integration
