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

# Synth AI SDK Overview

> Install synth-ai once; use SynthClient for Managed Research, Research Factory, and infrastructure surfaces.

The `synth-ai` package is the **single Python SDK** for Synth. One install, one
`SynthClient`, multiple product surfaces:

| Surface              | Entry                                                 | Use it for                                                     |
| -------------------- | ----------------------------------------------------- | -------------------------------------------------------------- |
| **Managed Research** | `client.research`                                     | Hosted research runs, projects, evidence, MCP workflows        |
| **Research Factory** | `client.research`                                     | Multi-run factory and bench programs on the same control plane |
| **Infrastructure**   | `client.containers`, `client.tunnels`, `client.pools` | Containers, tunnels, pools, rollouts                           |
| **CLI**              | `synth-ai`                                            | Terminal access to the same surfaces                           |

Managed Research and Research Factory are **not separate packages or doc sites**.
They are namespaces on `SynthClient`, with MCP as the agent-client alternative.

## Install

```bash theme={null}
uv add "synth-ai[research]==0.13.0"
export SYNTH_API_KEY="sk_..."
```

```python theme={null}
from synth_ai import SynthClient

client = SynthClient()

# Managed Research + Research Factory
projects = client.research.projects.list()

# Infrastructure (optional)
print(client.containers.list())
print(client.tunnels.list())
print(client.pools.list())
```

## Choose a path

<CardGroup cols={2}>
  <Card title="Managed Research quickstart" icon="flask-conical" href="/managed-research/quickstart">
    Start a hosted run and read back evidence.
  </Card>

  <Card title="Research Factory" icon="factory" href="/managed-research/research-factory">
    Multi-run programs on the same `client.research` surface.
  </Card>

  <Card title="MCP setup" icon="plug" href="/managed-research/get-started">
    Connect Codex, Claude Code, or Cursor to the hosted MCP server.
  </Card>

  <Card title="SynthClient reference" icon="code" href="/sdk/synth-client">
    Namespaces, auth, async client, and configuration.
  </Card>

  <Card title="Tunnels" icon="route" href="/sdk/tunnels">
    Tunnel records and leases for local containers.
  </Card>

  <Card title="Pools" icon="boxes" href="/sdk/pools">
    Rollouts, artifacts, usage, and events.
  </Card>
</CardGroup>

## Auth and base URL

By default the SDK reads `SYNTH_API_KEY` and uses the production backend. Pass
`api_key` and `base_url` when you need explicit control.

```python theme={null}
client = SynthClient(
    api_key="sk_...",
    base_url="https://api.usesynth.ai",
)
```

Next: [Install and Authenticate](/sdk/install-and-auth).
